Vagrant is a command-line wrapper around VirtualBox and allows setting up one or more virtual machines to test out Ansible playbooks locally.
The repo contains a Vagrantfile (created with
the command vagrant init ubuntu/xenial64
) that
has been modified to work with Ansible.
Start a Vagrant virtual machine using the Vagrantfile
by running the following command in this directory:
vagrant up
This will start a Ubuntu Xenial (16.04) machine.
Ansible can be used to provision the vagrant machine, which is basically a step that gets it ready for the "real" Ansible playbook.
(Specifically, the provision step installs /usr/bin/python
,
which is not included by default in newer versions of
Ubuntu.)
Use the Ansible configuration file that is intended
for use with Vagrant, vagrant.cfg
, when running
the vagrant provision command:
ANSIBLE_CONFIG="vagrant.cfg" vagrant provision
Now get info about how to SSH into the vagrant machines
and provide this information in the vagranthosts
Ansible inventory file:
vagrant ssh-config
Add information about the location of the
private key file, and any other details,
into vagrant.cfg
:
vagrant.cfg
:
[defaults]
inventory = vagranthosts
remote_user = vagrant
private_key_file = ~/.vagrant.d/insecure_private_key
host_key_checking = False
log_path = ansible_vagrant.log
command_warnings=False
vault_password_file = .vault_secret
This example points to a vault secret contained
in the file .vault_secret
as seen in the last line.
See Ansible Vault for more info about vault secrets.