Ansibleが接続できるインスタンスをpingできないのはなぜですか?

Ansibleが接続できるインスタンスをpingできないのはなぜですか?

AWS EC2 インスタンスに接続できます。

ssh -i "pizdform.pem" [email protected]

Last login: Tue Feb 21 12:36:50 2023 from ...

Ansible pingを試しました。

cat test-project/hosts.ini
[web]
52.206.23.6

ansible -i test-project/hosts.ini web -m ping -u ec2-user

ping失敗

52.206.23.6 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: [email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
    "unreachable": true
}

なぜ?

答え1

エラーメッセージには「権限が拒否されました」と表示されます。これは、ターゲットに接続するために正しいSSH IDファイルを使用していないことを示します(ファイルはデフォルトのSSHコマンドのオプションpizdform.pemに引数として渡されます)。 PEMファイルを使用するオプションを-i使用すると、正しくリンクできます。メモリにIDを保存するオプションを使用する必要はありません。--private-key PRIVATE_KEY_FILEansiblessh-agent--private-keyansible

答え2

私はansibleを学び始め、最近この問題に直面しました。ansible_user=usernameマニフェストファイルにホスト名を追加してソリューションを見つけました。その後、SUCCESS出力を受け取りました。これが役に立つことを願っています。

関連情報