Closed germaaan closed 10 years ago
Te está tratando de conectar a todos los hosts del mundo. Mira a ver qué tienes en el fichero de hosts y pon sólo al host que quieres que te conecte.
El 28 de enero de 2014, 18:50, German Martinez notifications@github.comescribió:
No consigo hacer funcionar Ansible con Vagrant, uso este Vagrantfile:
Vagrant.configure("2") do |config| config.vm.box = "debian" config.vm.network :private_network, ip: "192.168.2.50"
config.vm.provision :ansible do |ansible| ansible.playbook = "playbook.yml" end
end
Y este playbook:
- hosts: all sudo: yes tasks:
- name: Instalar Nginx apt: name=nginx state=present
- name: Comprobar Nginx command: service nginx restart && service nginx status
Pero cuando hago vagrant provision siempre me aparece el mismo error: [image: eje08_img02]https://f.cloud.github.com/assets/5518719/2021805/49b3e002-8844-11e3-8c20-31185cc694a5.png
Se ve que no encuentra el archivo de inventario, en la documentación de Vagrant pone que no es necesario indicarlo, pero aún así, si lo indico con "ansible.inventory_path" el error es el mismo. Además también he comprobado que la máquina es accesible directamente por SSH usando el nombre de usuario y contraseña "vagrant".
Reply to this email directly or view it on GitHubhttps://github.com/IV-GII/GII-2013/issues/137 .
JJ
En el archivo "/etc/hosts" de mi sistema he añadido 192.168.2.50 vagrant
, en el playbook cambio hosts: vagrant
y me dice que no hay hosts que coincidan. En el Vagrantfile justo antes de ansible.playbook = "playbook.yml"
pongo ansible.inventory_path = "ansible_hosts"
, teniendo ese archivo:
[vagrant]
192.168.2.50
Y el resultado sigue siendo el mismo: skipping: no hosts matched
.
Pon el camino completo a ansible_hosts
y haz previamente un ping
a ver si te puedes conectar correctamente. De todas formas, ¿dónde has visto que vagrant se meta en la sección vagrant de ansible_hosts? ¿No será mejor que dejes el fichero con sólo una entrada?
Aquí te viene un ejemplo que es precisamente eso lo que hace.
Lo de meter vagrant en la sección vagrant dentro de ansible_hosts
ha sido por probar, ya que lo otro no funcionaba. Pero que mi archivo ansible_host
es igual al archivo de inventario host al que se hace referencia en el enlace ese.
Por lo que parece poner ansible.inventory_path
para indicar la ruta del archivo de inventario como indican en la documentación de Vagrant no sirve de nada, porque ponerlo o no ponerlo me ha dado el mismo resultado, solo ha cogido el archivo de inventario cuando le dado el valor de la ruta a la variable ANSIBLE_HOSTS
como en el ejercicio de Ansible usando export ANSIBLE_HOSTS=~/ansible_hosts
. La prueba del ping se realiza correctamente si se indica como nombre de usuario y contraseña "vagrant".
Después de eso ya si ha funcionando, dando solo un fallo menor, y es que es necesario añadir una tarea previa a la instalación del paquete, que es actualizar la lista de paquetes con apt: update_cache=yes
.
¿Esto es suficiente para completar el ejercicio 8, no?
Claro.
Ok, pues entonces ya todo problema solucionado.
No consigo hacer funcionar Ansible con Vagrant, uso este Vagrantfile:
Y este playbook:
Pero cuando hago
vagrant provision
siempre me aparece el mismo error:Se ve que no encuentra el archivo de inventario, en la documentación de Vagrant pone que no es necesario indicarlo, pero aún así, si lo indico con "ansible.inventory_path" el error es el mismo. Además también he comprobado que la máquina es accesible directamente por SSH usando el nombre de usuario y contraseña "vagrant".