web-dev-qa-db-ja.com

Ansible pingが失敗する-ホストに到達できない

私は、Ansibleの基本を学び始め、上記のエラーが発生する理由を調べましたが、それを解決する方法がわかりません。これはトレースです:

Me-Air:ansible me$ ansible all -m ping -vvv
Using /private/etc/ansible/ansible.cfg as config file
<Public_IP> ESTABLISH SSH CONNECTION FOR USER: [my_user_name_on_EC2_instance]
<Public_IP> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r -tt [Public_IP] '/bin/sh -c '"'"'( umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-... `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-... `" )'"'"''
Public_IP | UNREACHABLE! => {
    "changed": false,
    "msg": "SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue",
    "unreachable": true
}

------

私は以前に尋ねられました:

The authenticity of Host 'public IP' can't be established.
RSA key fingerprint is ...[key].
Are you sure you want to continue connecting (yes/no)? yes

これは私がhostsファイルに持っているものです:

[name_of_the_EC2_instance]
Public_IP 

そして設定ファイルで:

[defaults]
Host_key_checking = False

何か不足しています。何か案は?

前もって感謝します。

6
David B.

コメントで説明したように、秘密鍵ファイルは指定されていませんでした。デフォルトのファイル(.ssh/id_dsa.ssh/id_dsa)が試行されましたが見つかりませんでした。

秘密鍵ファイルは、いくつかの方法で追加できます。

(1)sshエージェントの使用:ssh-add ~/.ssh/my-key.pem

(2)ansible.cfgのデフォルト:

[defaults]
private_key_file=~/.ssh/my-key.pem

(3)インベントリ内のホストごとに指定:

my-Host-ip ansible_ssh_private_key_file=~/.ssh/my-key.pem
8
tedder42