Como habilito a saída de depuração adicional do Ansible e Vagrant?

43

Estou investigando o Ansible para provisionamento de servidores e aplicativos. Atualmente, meu aplicativo é provisionado com scripts de shell no Vagrant. Em vez de reescrever meus scripts, peguei uma amostra e tentei implantá-la.

Parece implantar bem, mas vi uma mensagem de falha após o que parece ser uma série de etapas bem-sucedidas:

» 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.

Como faço para obter informações adicionais sobre depuração? Eu já adicionei ansible.verbose = trueà minha configuração vagrant que resulta nos dicionários sendo exibidos na saída acima.

Brian Lyttle
fonte
1
De acordo com github.com/mitchellh/vagrant/issues/2004, esse é um erro da versão atual do Vagrant. Consegui corrigir manualmente /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/provisioners/ansible/provisioner.rb com base no github.com/mitchellh/vagrant/commit/… .
precisa saber é o seguinte

Respostas:

59

Você também pode adicionar isso ao seu Vagrantfile:

ansible.verbose = "vvv"

isso precisa ir aonde você está iniciando o provisionamento, assim:

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

Isso define a opção detalhada de ansible:

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

Definir isso como vvvv(quatro v) é útil para depurar erros de conexão SSH - mas cria uma quantidade enorme de saída de depuração, portanto, use apenas quatro v se estiver com problemas de conexão.

Duncan Lock
fonte
10

Consegui obter uma saída como esta:

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

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

Isso pelo menos me mostra a saída, mas infelizmente ainda não está formatado de uma maneira muito legível.

user132837
fonte