Ansible が事実収集で行き詰まる

Ansible が事実収集で行き詰まる

他の多くの投稿や質問で読んだように、Ansible プレイブックの実行中に事実を収集するには時間がかかり、いくつかの理由で停止する可能性があります。

私の場合、動作はかなり奇妙です:

サーバーをセットアップするための Ansible プレイブックを入手しました。すべては SSH 経由でアクセス可能で、プレイブックは一度に 1 つのホストでのみ実行する場合 (どのホストかに関係なく)、期待どおりに実行されます。事実の収集は魔法のように機能し、数秒で完了します。

複数のホストに対してプレイブックを実行すると、問題が発生し始めます。ホスト ファイルにセットアップ用のホストを複数入力すると、情報の収集に非常に長い時間がかかります。

誰かがこの動作を経験したことがありますか? この問題を解決するためのヒントを教えてもらえますか?

プレイブックを開始するとき

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

Ansible では、予想どおり sudo パスワードと SSH パスフレーズを入力するように求められます。各サーバーの SSH パスフレーズを要求すると、プロンプト出力が次のように 1 行で表示されます。

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

両方のプロンプトに対してパスワードを 1 回だけ入力できます。これは想定された動作ですか? 何か見落としているのでしょうか?

答え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

これは本当に混乱しました。

ちなみに、私は Ubuntu 16.04 で Python3.7 を使って Ansible 2.8 を使用していました。このバグが他のソフトウェア コンステレーションでも発生するかどうかはテストしていませんが、発生する可能性があります。

関連情報