ansible ping模块无法连接

时间:2015-02-06 16:35:48

标签: bash ansible ansible-playbook

我的广告资源文件

bash ~ cat inventory 

输出

[webservers]
testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222

当我尝试连接时

bash ~ ansible 127.0.0.1  -i inventory -m ping

成功了

127.0.0.1 | success >> {
    "changed": false, 
    "ping": "pong"
}

当我使用inventory file

中的网络服务器时
bash ~ ansible webservers   -i inventory -m ping

失败并出现以下错误

    testserver | FAILED => 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

我可以弄清楚这个问题

2 个答案:

答案 0 :(得分:1)

您是否在端口2222上侦听ssh服务器?你的第一个例子......

ansible 127.0.0.1  -i inventory -m ping

...将在端口22上连接,因为这是默认设置,而库存文件中的任何内容都不会覆盖它。

你的第二个例子......

ansible webservers   -i inventory -m ping

...在您的广告资源文件中使用以下条目:

[webservers]
testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222

它为ansible_ssh_port提供了显式值,导致Ansible尝试在端口2222上进行连接。

答案 1 :(得分:0)

即使使用localhost,您也必须创建和交换密钥才能成功进行ssh连接,并使用将启动该剧本的同一用户。

步骤1 - 在控制节点上与将要启动playbook的用户生成SSH密钥

ssh-keygen -t rsa -b 4096 -C“您的电子邮件地址”

第2步 - 复​​制目标主机上的密钥

ssh-copy-id username @ hostname

步骤3 - 通过ansible ping测试成功连接

ansible all -m ping

让我知道任何问题