【发布时间】:2019-06-25 16:21:56
【问题描述】:
我正在尝试使用“delegate_to”从另一个远程主机在远程主机上运行命令,并且两台主机都是 linux。
直接在每台服务器上 ssh 时连接成功,但不是来自 Ansible。这是我目前所拥有的:
- hosts: server1
gather_facts: no
tasks:
- name: test
delegate_to: server2
vars:
ansible_user: "user1"
ansible_ssh_pass: "password"
ansible_ssh_common_args: "-o StricHostKeyChecking=no -o ConnectTimeout=300"
shell: "hostname"
“server2”IP 地址也存储在变量中,在剧本中,而不是在清单中。 增加连接超时不起作用。我来了
[Errno 110] Connection timed out
我还应该检查什么?
【问题讨论】:
-
您是否能够使用 Ansible(例如
ansible all -m ping)单独连接到每个人,或者您是否只是建立了直接的 SSH 连接?如果是这样,您是否检查过您确实使用了相同的凭据,因为您似乎是直接在剧本中设置它们,而不是在配置文件中? -
感谢您的回复。我直接在每台服务器上进行 sshed 和 ping 工作。我正在使用相同的凭据。我直接将变量放入剧本是正确的。 “server2”也存储在一个变量中。我正在尝试从远程远程运行命令。
-
delegate_to并不意味着server1将在server2上运行任务。这意味着控制器(您的本地计算机)将使用server1的事实在server2上运行任务。 -
我明白了。谢谢您的回答。很有帮助。
-
我遇到了完全相同的问题,并通过在任务变量中添加它来解决:
ansible_timeout: 60
标签: ansible