conforme lido em muitas outras postagens e perguntas, a coleta de fatos durante a execução de um manual ansible pode levar algum tempo e pode travar por vários motivos.
No meu caso, o comportamento é bem estranho:
Recebi um manual ansible para configurar meus servidores. Tudo pode ser acessado via SSH e o manual é executado conforme esperado ao ser executado em apenas um host por vez (independentemente de qual host). A coleta de fatos funciona perfeitamente e é feita em segundos.
O problema começa a ocorrer ao executar o manual em vários hosts. Assim que eu insiro mais de um host para configuração em meu arquivo de hosts, a coleta de fatos leva um tempo infinito.
Alguém também experimentou esse comportamento e pode me dar algumas dicas de como resolver esse problema?
Ao iniciar o manual como
ansible-playbook frontend_rollout.yml -i hosts -K -vvv
Ansible quer que eu digite a senha sudo e a senha SSH conforme o esperado. Ao solicitar a senha SSH para cada servidor, a saída do prompt aparece em uma linha, conforme mostrado abaixo:
Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh': Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh':
e posso digitar a senha apenas uma vez para ambos os prompts. Este é o comportamento esperado ? Perdi algo ?
Responder1
Algumas pessoas podem estar interessadas, então não excluí a pergunta agora.
A razão para a interminável coleta de fatos foi o comportamento descrito da solicitação da senha ssh.
Como um ser humano normal esperaria que o comportamento fosse:
[Pre fact gathering phase]
- prompt for ssh passphrase for host 1
- input for host 1
- prompt ssh passphrase for host 2
- input for host 2
[fact gathering phase]
MAS como realmente foi:
[Pre fact gathering phase]
- prompt ssh passphrase for host 1 AND host 2 in buggy output
- input for host 1
[fact gathering phase]
- host 1 fact gathering ok
- waiting for input for host 2 without any prompting
isso foi realmente confuso.
A propósito, eu estava usando o Ansible 2.8 no Ubuntu 16.04 com python3.7. Não testei se esse bug também ocorre em outras constelações de software, mas pode acontecer!