Ansible Playbook を実行していますが、1 台のマシンで正常に動作します。
新しいマシンで初めて試すと、次のエラーが表示されます。
17:04:34 PLAY [appservers] *************************************************************
17:04:34
17:04:34 GATHERING FACTS ***************************************************************
17:04:34 fatal: [server02.cit.product-ref.dev] => {'msg': "FAILED: (22, 'Invalid argument')", 'failed': True}
17:04:34 fatal: [server01.cit.product-ref.dev] => {'msg': "FAILED: (22, 'Invalid argument')", 'failed': True}
17:04:34
17:04:34 TASK: [common | remove old ansible-tmp-*] *************************************
17:04:34 FATAL: no hosts matched or all hosts have already failed -- aborting
17:04:34
17:04:34
17:04:34 PLAY RECAP ********************************************************************
17:04:34 to retry, use: --limit @/var/lib/jenkins/site.retry
17:04:34
17:04:34 server01.cit.product-ref.dev : ok=0 changed=0 unreachable=1 failed=0
17:04:34 server02.cit.product-ref.dev : ok=0 changed=0 unreachable=1 failed=0
17:04:34
17:04:34 Build step 'Execute shell' marked build as failure
17:04:34 Finished: FAILURE
このエラーは、最初に (ansible Playbook を実行している) ソース マシンに移動し、(指定されたユーザーとして) ターゲット マシンに手動で ssh し、known_hosts ファイル エントリに「yes」と入力すると解決できます。
これで、同じ ansible Playbook を 2 回目に実行すると、エラーなしで動作します。
したがって、特定のユーザー (~/.ssh フォルダー、ファイル known_hosts) に対して初めて ssh known_hosts エントリを作成するときに、SSH が提供するプロンプトを抑制するにはどうすればよいですか?
~/.ssh/configファイルで次の構成エントリを使用すると、これを実行できることがわかりました。
~/.ssh/config
# For vapp virtual machines
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
User kobaloki
LogLevel ERROR
つまり、上記のコードをユーザーのリモート マシンの ~/.ssh/config ファイルに配置し、Ansible Playbook を初めて試すと、「はい」と入力するように求められず、Playbook は正常に実行されます (ユーザーは、ソース マシンからターゲット/リモート マシンへの known_hosts ファイル エントリを手動で作成できます)。
私の質問: 1. ~/.ssh/config の方法で注意する必要があるセキュリティの問題は何ですか?新しいマシンで初めて実行されます (プロンプトを表示せずに/ターゲット マシンのソース マシンの known_hosts ファイル エントリに依存しますか?