Como se lee en muchas otras publicaciones y preguntas, la recopilación de datos durante la ejecución de un libro de jugadas ansible puede llevar algún tiempo y puede bloquearse por varias razones.
En mi caso el comportamiento es bastante extraño:
Obtuve un libro de jugadas ansible para configurar mis servidores. Se puede acceder a todo a través de SSH y el libro de jugadas se ejecuta como se esperaba cuando se ejecuta en un solo host a la vez (independientemente de qué host). La recopilación de datos funciona de maravilla y se realiza en segundos.
El problema comienza a ocurrir cuando se ejecuta el libro de estrategias en varios hosts. Tan pronto como ingreso más de un host para configurar en mi archivo de hosts, recopilar datos lleva una cantidad infinita de tiempo.
¿Alguien también experimentó este comportamiento y puede darme algunos consejos sobre cómo resolver este problema?
Al iniciar el libro de jugadas como
ansible-playbook frontend_rollout.yml -i hosts -K -vvv
Ansible quiere que escriba la contraseña sudo y la frase de contraseña SSH como se esperaba. Al solicitar la frase de contraseña SSH para cada servidor, el resultado del mensaje aparece en una línea como se muestra a continuación:
Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh': Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh':
y puedo escribir la contraseña solo una vez para ambas indicaciones. Es este el comportamiento esperado ? Me he perdido algo ?
Respuesta1
Algunas personas pueden estar interesadas, por eso no eliminé la pregunta en este momento.
El motivo de la interminable recopilación de datos fue el comportamiento descrito de la solicitud de frase de contraseña ssh.
Como un ser humano normal esperaría que el comportamiento fuera:
[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]
PERO cómo fue en realidad:
[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
Esto fue realmente confuso.
Por cierto, estaba usando Ansible 2.8 en Ubuntu 16.04 con python3.7. No probé si este error ocurre también en otras constelaciones de software, ¡pero podría ocurrir!