Ansible ficou preso na coleta de fatos

Ansible ficou preso na coleta de fatos

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!

informação relacionada