¿Cómo habilito la salida de depuración adicional de Ansible y Vagrant?

43

Estoy investigando Ansible para el aprovisionamiento de servidores y aplicaciones. Mi aplicación está aprovisionada actualmente con scripts de shell en Vagrant. En lugar de reescribir mis guiones, tomé una muestra e intenté implementarla.

Parece desplegarse bien, pero he visto un mensaje de error después de lo que parece una serie de pasos exitosos:

» vagrant provision                                       ~/vm/blvagrant 1 ↵
[default] Running provisioner: ansible...

PLAY [web-servers] ************************************************************

GATHERING FACTS ***************************************************************
ok: [192.168.9.149]

TASK: [install python-software-properties] ************************************
ok: [192.168.9.149] => {"changed": false, "item": ""}

TASK: [add nginx ppa if it ubuntu 10.04 and up] *******************************
ok: [192.168.9.149] => {"changed": false, "item": "", "repo": "ppa:nginx/stable", "state": "present"}

TASK: [update apt repo] *******************************************************
ok: [192.168.9.149] => {"changed": false, "item": ""}

TASK: [install nginx] *********************************************************
ok: [192.168.9.149] => {"changed": false, "item": ""}

TASK: [copy fixed init for nginx] *********************************************
ok: [192.168.9.149] => {"changed": false, "gid": 0, "group": "root", "item": "", "mode": "0755", "owner": "root", "path": "/etc/init.d/nginx", "size": 2321, "state": "file", "uid": 0}

TASK: [service nginx] *********************************************************
ok: [192.168.9.149] => {"changed": false, "item": "", "name": "nginx", "state": "started"}

TASK: [write nginx.conf] ******************************************************
ok: [192.168.9.149] => {"changed": false, "gid": 0, "group": "root", "item": "", "mode": "0644", "owner": "root", "path": "/etc/nginx/nginx.conf", "size": 1067, "state": "file", "uid": 0}

PLAY RECAP ********************************************************************
192.168.9.149              : ok=8    changed=0    unreachable=0    failed=0

Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

¿Cómo hago para obtener información adicional de depuración? Ya he agregado ansible.verbose = truea mi configuración vagabunda que da como resultado que los diccionarios se muestren dentro de la salida anterior.

Brian Lyttle
fuente
1
Según github.com/mitchellh/vagrant/issues/2004, este es un error con la versión actual de Vagrant. Pude parchear manualmente /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/provisioners/ansible/provisioner.rb basado en github.com/mitchellh/vagrant/commit/… .
Brian Lyttle

Respuestas:

59

También puede agregar esto a su Vagrantfile:

ansible.verbose = "vvv"

esto tendría que ir a donde está iniciando el aprovisionamiento, así:

config.vm.provision "ansible" do |ansible|
    ansible.verbose = "vvv"
end

Esto establece la opción detallada de ansible:

-v, --verbose         verbose mode (-vvv for more, -vvvv to enable
                        connection debugging)

Establecer esto en vvvv(cuatro v) es útil para depurar errores de conexión SSH, pero crea una gran cantidad de salida de depuración, por lo que solo debe usar cuatro v si tiene problemas de conexión.

Duncan Lock
fuente
10

Pude obtener resultados como este:

tasks:
- name: Run puppet
  command: /root/puppet/run_puppet --noop
  register: puppet_output

- name: Show puppet output
  debug: msg="{{ puppet_output.stdout_lines }}"

Eso al menos me muestra el resultado, pero desafortunadamente todavía no está formateado de una manera muy legible.

usuario132837
fuente