I'm a big fan of the DevOps attitude of "cattle" versus "pets": machines should
be built in a repeatable, automated and consistent way. If there's something
wrong, don't be afraid to replace a sick "cow" instead of trying to revive your
This Zen mindset also helps when preparing for demos, trainings and workshops:
Usually I need a number of machines, and what better way than create them by
using automation ? For that I'm using the tools Ansible, Packer, Vagrant and
VirtualBox - they are all Open Source and can be used on a number of platforms
(e.g. Windows, Linux and Mac OS X).
Ansible is a tool for managing systems and deploying applications,
licensed under the GNU General Public License version 3 (my personal
Vagrant is a tool for managing virtual machines and is licensed
under the MIT license.
VirtualBox is a virtualization environment for local use, licensed
under the GNU General Public License version 2.
Packer creates a machine image by installing an operating system to
a multitude of local and cloud platforms, for example VMWare, VirtualBox
as well as Docker, Amazon EC2 and DigitalOcean. Packer is licensed under
the Mozilla Public License Version 2.0.