尝试ping ansible时远程计算机无法访问

时间:2016-11-30 15:12:25

标签: ansible ping

这是我的主人档案:

[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。问题可能是什么?

3 个答案:

答案 0 :(得分:1)

我最后使用以下命令解决了它:

ansible openstack -u ec2-user -m ping

我一直在输入 -u redhat ,但AWS已自动为其命名 ec2-user

答案 1 :(得分:0)

“为用户建立SSH连接:无” - 这意味着它正在尝试使用空白用户名来搜索此主机,这将无效。

两种解决方案:

  1. 编辑hosts文件以包含ansible_user = ubuntu(或您使用的任何用户,即amazon linux的ec2-user)

    [开栈]
    ec2-54-204-230-203.compute-1.amazonaws.com ansibler_user = ubuntu

  2. 在调用剧本时,只需使用-u ubuntu调用它(或者无论你喜欢什么样的话,都可以调用它)。

    ansible openstack -u ubuntu -m ping -vvvv

  3. 希望这有帮助!

    <强> - 编辑 - (这就是帮我做的事情)

    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