PuppetからAnsibleへの移行。エージェントレスでSSH駆動であるという事実のように。 2つのテストVMをセットアップするだけです。 1つはAnsibleサーバーとして(はい、やりすぎ)、もう1つはサンプルクライアントとして(ランダムLinuxサーバー)。すべてのサーバーは、公開秘密鍵ペア認証のみを使用します。これは、最初はAnsibleにとってやや問題があります。私は(ほぼ確実に)Ansibleがキーペアで機能することを確信していますが、その方法の良い例を見つけることができないようです。
Ansible専用のキーペアを作成して、
ssh-keygen -t rsa -b 4096
次に、公開鍵をクライアントにコピーしました。キーペア認証は、標準のSSHでテストしたところ、うまく機能しました。次に、Ansibleをテストします。私はテストクライアントをAnsible hostsファイルに入れ、鍵ペアを機能させるために半分正しく見えた唯一の構文を使用しました。
[TEST]
10.0.0.5 ansible_ssh_private_key_file=~/.ssh/id_rsa
このような基本的なテストモジュールだけを実行しようとすると
Sudo ansible all -m ping
次のエラーメッセージが表示される
10.0.0.5 | FAILED => SSH Error: Permission denied (publickey,password).
while connecting to 10.0.0.5:22
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
明らかに、キーペアを使用するためのAnsibleのセットアップ方法に関する構文または概念の理解に欠陥があります。助言がありますか?ありがとう
ああ!それはansible設定ファイル(/etc/ansible/ansible.cfg)に正しかった
# if set, always use this private key file for authentication, same as
# if passing --private-key to ansible or ansible-playbook
private_key_file = /home/<username>/.ssh/id_rsa
今、すべてがうまくいくようです
10.0.0.5 | success >> {
"changed": false,
"ping": "pong"
}
再びansibleでSSHの問題が発生した場合は、コマンドラインオプションに-vvvを追加すると、問題の原因がわかります。