这是我的主人档案:
[openstack]
ec2-54-152-162-0.compute-1.amazonaws.com
我正在尝试使用以下命令ping它:
ansible openstack -u redhat -m ping -vvvv
我收到了以下回复:
Loaded callback minimal of type stdout, v2.0
Using module file /usr/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/ping.py
<ec2-54-152-162-0.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: redhat
<ec2-54-152-162-0.compute-1.amazonaws.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o 'IdentityFile="/home/centos/AnsibleKeyPair.pem"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=redhat -o ConnectTimeout=10 -o ControlPath=/home/centos/.ansible/cp/ansible-ssh-%h-%p-%r ec2-54-152-162-0.compute-1.amazonaws.com '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1480529571.83-128837972481874 `" && echo ansible-tmp-1480529571.83-128837972481874="` echo $HOME/.ansible/tmp/ansible-tmp-1480529571.83-128837972481874 `" ) && sleep 0'"'"''
ec2-54-152-162-0.compute-1.amazonaws.com | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
注意:我可以正确连接到centos机器。但是,我不能ping Ubuntu和Redhat机器。我的控制器机器是Centos。问题可能是什么?
答案 0 :(得分:1)
我最后使用以下命令解决了它:
ansible openstack -u ec2-user -m ping
我一直在输入 -u redhat ,但AWS已自动为其命名 ec2-user
答案 1 :(得分:0)
“为用户建立SSH连接:无” - 这意味着它正在尝试使用空白用户名来搜索此主机,这将无效。
两种解决方案:
编辑hosts文件以包含ansible_user = ubuntu(或您使用的任何用户,即amazon linux的ec2-user)
[开栈]
ec2-54-204-230-203.compute-1.amazonaws.com ansibler_user = ubuntu
在调用剧本时,只需使用-u ubuntu调用它(或者无论你喜欢什么样的话,都可以调用它)。
ansible openstack -u ubuntu -m ping -vvvv
希望这有帮助!
<强> - 编辑 - 强> (这就是帮我做的事情)
1。)将ssh密钥添加到〜/ .ssh目录
touch ~/.ssh/mykey.pem
2.。)输入ssh-agent bash模式
ssh-agent bash
3。)改变其权限模式
chmod 600 ~/.ssh/mykey.pem
4。)为ansible创建一条使用权限的路径
ssh-add ~/.ssh/mykey.pem
答案 2 :(得分:0)
在命令行中,使用参数-k
来询问ssh passwork:
ansible openstack -u redhat -m ping -k