【问题标题】:Ansible - 'delegate_to' times out to connect to remote hostAnsible - 'delegate_to' 超时连接到远程主机
【发布时间】: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


【解决方案1】:

"What else should I check?"

您应该检查 server2 的工作情况。将连接属性放入清单中。

- hosts: server2
  tasks:
    - name: test
      shell: "hostname"

【讨论】:

  • 感谢您的回复。但是,我只尝试在远程远程运行命令一次,所以我认为在库存中添加属性不是我所期望的。
  • 最好确定一下。不会吗?没有“远程远程”这样的事情。它总是“在控制器的遥控器上”。
猜你喜欢
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 2015-02-08
  • 2011-02-13
  • 2019-06-27
相关资源
最近更新 更多