【问题标题】:Ansible: Ping from remote hostAnsible:从远程主机 Ping
【发布时间】:2016-05-30 12:31:05
【问题描述】:
我使用 Ansible 管理主机 A。我有主机 B(主机 B 在库存中不可用),我正在执行一些带有“delegate_to”的命令。主机 C 是我的 ansible 控制器。我正在尝试使用“delegate_to”从主机 B ping 一个 IP 地址。这个 ipaddress 在主机 D 上的某个地方(主机 D 在库存中不可用),但是我不知道如何使用 ping 模块来实现这一点。所以我正在使用命令模块。
- name: Ping net1
command: 'ping -c 4 10.17.12.2'
delegate_to: 10.17.10.85
如何以更好的方式实现相同的功能?
【问题讨论】:
标签:
ansible
ansible-playbook
【解决方案1】:
Ansible“ping”实际上是在检查 ssh,据我所知,没有用于检查主机之间网络连接的 Ansible 模块(可能使用 wait_for?)所以这可能是最好的方法,虽然我会添加一个changed_when: false 以正确反映这个命令永远不会改变任何东西的事实:
- name: Ping net1
command: 'ping -c 4 10.17.12.2'
delegate_to: 10.17.10.85
changed_when: false
【解决方案2】:
wait_for 似乎是标准的做法。
例如(假设端口 22 将打开)
wait_for:
host: 10.17.12.2
port: 22
delay: 5
state: started
timeout: 10
delegate_to: 10.17.10.85