@ -33,19 +33,13 @@ Ansible provisioner to manage a single machine:
.. code-block :: ruby
# This guide is optimized for Vagrant 1.7 and above.
# Although versions 1.6.x should behave very similarly, it is recommended
# to upgrade instead of disabling the requirement below.
Vagrant.require_version ">= 1.7.0"
# This guide is optimized for Vagrant 1.8 and above.
# Older versions of Vagrant put less info in the inventory they generate.
Vagrant.require_version ">= 1.8.0"
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
# Disable the new default behavior introduced in Vagrant 1.7, to
# ensure that all Vagrant machines will use the same SSH key pair.
# See https://github.com/hashicorp/vagrant/issues/5005
config.ssh.insert_key = false
config.vm.box = "ubuntu/bionic64"
config.vm.provision "ansible" do |ansible|
ansible.verbose = "v"
@ -85,7 +79,7 @@ illustrated by this example:
.. code-block :: bash
$ PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --private-key=/home/someone/.vagrant.d/insecure_private_key --user=vagrant --connection=ssh --limit='machine1' --inventory-file=/home/someone/coding-in-a-project/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml
$ PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --limit="default" --inventory-file=/home/someone/coding-in-a-project/.vagrant/provisioners/ansible/inventory -v playbook.yml
This information can be quite useful to debug integration issues and can also
be used to manually execute Ansible from a shell, as explained in the next
@ -109,26 +103,15 @@ single machine environment may look something like this:
# Generated by Vagrant
default ansible_ssh_ host=127.0.0.1 ansible_ssh_ port=2222
default ansible_host=127.0.0.1 ansible_port=2222 ansible_user='vagrant' ansible_ssh_private_key_file='/home/someone/coding-in-a-project/.vagrant/machines/default/virtualbox/private_key'
If you want to run Ansible manually, you will want to make sure to pass
`` ansible `` or `` ansible-playbook `` commands the correct arguments, at least
for the *username* , the *SSH private key* and the *inventory* .
Here is an example using the Vagrant global insecure key (`` config.ssh.insert_key ``
must be set to `` false `` in your `` Vagrantfile `` ):
.. code-block :: bash
$ ansible-playbook --private-key=~/.vagrant.d/insecure_private_key -u vagrant -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml
Here is a second example using the random private key that Vagrant 1.7+
automatically configures for each new VM (each key is stored in a path like
`` .vagrant/machines/[machine name]/[provider]/private_key `` ):
for the *inventory* .
.. code-block :: bash
$ ansible-playbook --private-key=.vagrant/machines/default/virtualbox/private_key -u vagrant - i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml
$ ansible-playbook -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml
Advanced Usages
`` ` ` ` ` ` ` ` ` ` ` ` ``