Mik*_*gin 6 ssh amazon-ec2 ansible
我有一个 ec2 amazon linux 正在运行,我可以通过 ssh 来使用:
ssh -i "keypair.pem" ec2-user@some-ip.eu-west-1.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 ansible ping 服务器时,我得到:
testserver | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
Run Code Online (Sandbox Code Playgroud)
我正在使用以下主机文件:
testserver ansible_ssh_host=some-ip.eu-west-1.compute.amazonaws.com ansible_ssh_user=ec2-user ansible_ssh_private_key_file=/Users/me/playbook/key-pair.pem
Run Code Online (Sandbox Code Playgroud)
并运行以下命令来运行 ansible:
ansible testserver -i hosts -m ping -vvvvv
Run Code Online (Sandbox Code Playgroud)
输出是:
<some-ip.eu-west-1.compute.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: ec2-user
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ansible.cfg set ssh_args: (-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: (-o)(IdentityFile="/Users/me/playbook/key-pair.pem")
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ansible_password/ansible_ssh_pass not set: (-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u set: (-o)(User=ec2-user)
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<some-ip.eu-west-1.compute.amazonaws.com> SSH: PlayContext set ssh_common_args: ()
<some-ip.eu-west-1.compute.amazonaws.com> SSH: PlayContext set ssh_extra_args: ()
<some-ip.eu-west-1.compute.amazonaws.com> SSH: found only ControlPersist; added ControlPath: (-o)(ControlPath=/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r)
<some-ip.eu-west-1.compute.amazonaws.com> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/me/playbook/key-pair.pem"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ec2-user -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r ec2-52-18-106-35.eu-west-1.compute.amazonaws.com '/bin/sh -c '"'"'( umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1462096401.65-214839021792201 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1462096401.65-214839021792201 `" )'"'"''
testserver | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
小智 5
尝试这个解决方案,它对我来说效果很好
ansible ipaddress -m ping -i inventory -u ec2-user
Run Code Online (Sandbox Code Playgroud)
其中 inventory 是主机文件名。
inventory :
[host]
xx.xx.xx.xx
[host:vars]
ansible_user=ec2-user
ansible_ssh_private_key_file=/location of your pem file/filename.pem
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题,因为我没有给出我所指的主机文件的位置。
小智 0
我遇到了类似的问题,阅读连接到您的实例的故障排除对我有所帮助。具体来说,我从 Amazon-Linux 实例 ping 一个 Ubuntu 实例,但忘记将连接用户名从“ec2-user”更改为“ubuntu”!
| 归档时间: |
|
| 查看次数: |
5044 次 |
| 最近记录: |