как можно прочитать во многих других сообщениях и вопросах, сбор фактов во время выполнения 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. Я не проверял, возникает ли этот баг в других программных созвездиях, но это может быть!