刚开始使用Ansible。我像这样配置了hosts文件:
[webserver]
<remote-server-ip> ansible_user=<user> ansible_private_key_file=<full-path-to-private-ssh-key>
当我跑步时:
ansible all -m ping
我明白了:
<remote-server-ip> | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Couldn't read packet: Connection reset by peer\r\n",
"unreachable": true
如果我跑,我可以连接没有问题:
ssh -i <full-path-to-private-ssh-key> <user>@<remote-server-ip>
注意:
~/my_project_name
。ansible_connection=local
,虽然ansible all -m ping
似乎有效,但实际上它所做的只是允许我执行修改Ansible正在运行的主机的任务。 /etc/ansible/ansible.cfg
。答案 0 :(得分:1)
默认情况下,Ansible尝试通过ssh连接到localhost。对于localhost,请在下面显示的hosts文件中将ansible_connection
设置为local。
<remote-server-ip> ansible_connection=local ansible_user=<user> ansible_private_key_file=<full-path-to-private-ssh-key>
有关详细信息,请参阅this文档。
希望这有帮助!
答案 1 :(得分:0)
我想我之前看过这个,您可以尝试在hosts文件中添加以下内容,看看是否有效
ansible_connection=ssh ansible_port=22
答案 2 :(得分:0)
我发现这是我使用的Ansible版本(2.3.1)的问题。使用版本2.2.0.0没有问题。