Wird Ansible zur automatisierten Provisionierung eingesetzt, lässt sich mit Vagrant schnell und einfach eine lokale, konsistente Testumgebung aufbauen. Vagrant besitzt einen eingebauten Ansible-Provider, den wir in folgendem Vagrantfile beispielhaft zusammen mit VirtualBox als Hypervisor aufrufen möchten. Alle drei Werkzeuge sind quelloffen und kostenfrei.
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.provision "shell", inline: <<-SHELL
test -e /usr/bin/python || (apt-get update && apt-get install -y python-minimal build-essential python-pip unzip)
SHELL
config.vm.provision "ansible" do |ansible|
ansible.verbose = "vv"
ansible.playbook = "playbook.yml"
end
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 4
end
end
Vagrant installiert die notwendigen Python-Abhängigkeiten für Ansible. Anschließend wird „playbook.yml“ ausgeführt. Startet man nun Vagrant mit folgendem Befehl
vagrant up --provision
kümmert sich Vagrant um das Erstellen der VM sowie das anschließende Provisionieren mit Ansible.