Ansible застрял на сборе фактов

Ansible застрял на сборе фактов

как можно прочитать во многих других сообщениях и вопросах, сбор фактов во время выполнения ansible-playbook может занять некоторое время и может застрять по нескольким причинам.

В моем случае поведение довольно странное:

Я получил ansible playbook для настройки своих серверов. Все доступно через SSH, и playbook работает так, как и ожидалось, если запустить его только на одном хосте за раз (независимо от того, на каком хосте). Сбор фактов работает как по маслу и выполняется за считанные секунды.

Проблема начинает возникать при запуске playbook против нескольких хостов. Как только я ввожу более одного хоста для настройки в файле hosts, сбор фактов занимает бесконечное количество времени.

Кто-нибудь сталкивался с таким поведением и может дать мне несколько советов, как решить эту проблему?

При запуске пьесы типа

ansible-playbook frontend_rollout.yml -i hosts -K -vvv

Ansible хочет, чтобы я ввел пароль sudo и парольную фразу SSH, как и ожидалось. При запросе пароля SSH для каждого сервера вывод приглашения отображается в одной строке, как показано ниже:

Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh': Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh':

и я могу ввести пароль только один раз для обоих запросов. Это ожидаемое поведение? Я что-то пропустил?

решение1

Возможно, кому-то это будет интересно, поэтому я не стал удалять вопрос прямо сейчас.

Причиной бесконечного сбора фактов стало описанное поведение запроса парольной фразы ssh.

Как нормальный человек, мы ожидаем, что поведение будет:

[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]

НО как это было на самом деле:

[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

это было действительно запутанно.

Кстати, я использовал Ansible 2.8 на Ubuntu 16.04 с python3.7. Я не проверял, возникает ли этот баг в других программных созвездиях, но это может быть!

Связанный контент