Descargo de responsabilidad: solo he probado esto en OSX. Según los diversos documentos, espero que funcione en otras plataformas.
"directorio del proyecto" se refiere al directorio base del proyecto Vagrant, el directorio que contiene Vagrantfile
.
Archivo de inventario Ansible generado automáticamente por Vagrant:
Vagrant crea un archivo de inventario con los valores de conexión Ansible predeterminados. Búscalo en <project directory>/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
.
Vagrant regenerará este archivo según sea necesario, por lo que se sobrescribirán las ediciones manuales. Sin embargo, de acuerdo con los documentos de Vagrant, puede especificar varias máquinas, grupos de variables, etc., Vagrantfile
y se agregarán a este archivo de inventario.
Configure Ansible como predeterminado para este archivo de inventario:
Para hacer que este archivo sea el predeterminado que usa el ansible
comando cuando está en el directorio del proyecto (en el host), agregue un ansible.cfg
archivo en el directorio del proyecto con estos contenidos, cambiando la ruta según sea necesario:
[defaults]
inventory = ./path/to/inventory
Para confirmar que este archivo de inventario se está utilizando, búsquelo como el predeterminado informado por ansible:
(desde dentro del directorio del proyecto)
$ ansible | grep inventory
ERROR! Missing target hosts
-i INVENTORY, --inventory-file=INVENTORY
specify inventory host path (default=./.vagrant/provis
ioners/ansible/inventory/vagrant_ansible_inventory) or
Para confirmar sus anfitriones:
$ ansible all --list-hosts
hosts (2):
master
slave
Usando Ansible con estos hosts:
Desde el directorio del proyecto, debería poder usarlo ansible
normalmente con los hosts que definió Vagrantfile
.
Por ejemplo:
ansible slave -a 'hostname'
~/.ssh/config