Posts

Showing posts from November, 2019

Validating ansible playbooks with Vagrant in open source projects

At AdoptOpenJDK we do everything we can in the open. The source code is in the open, all of the testing we run is in the open, and the machine configuration is all performed via Ansible. We let anyone contribute to any part of this. While this is a great way to work it can cause some issues. Notably we have had situations where changes have been made but they have had undesirable side effects. For example if a change is put in on one platform (e.g.  one particular Linux distribution) it may cause unintended side effects on others. In order to fully mitigate these possibilities we have implemented a Vagrant-based solution for validating playbooks on Linux and Windows. If you're not familiar with it, Vagrant is a command-line based solution which utilises virtualisation software on your machine (VirtualBox, KVM, Parallels, Hyper-V, VMware) to create and manage VMs. We use this to create virtual machines of varying distributions, run the playbooks on  them, then run a java build an