我有一个主管A管理Ansible。我有主机B(主机B在库存中不可用),我用" delegate_to"执行几个命令。主机C是我的安慰控制器。我试图用" delegate_to"来ping主机B的ipaddress。这个ipaddress是主机D上的某个地方(主机D在库存中不可用),但是我不知道如何使用ping模块来实现这一点。所以我正在使用命令模块。
- name: Ping net1
command: 'ping -c 4 10.17.12.2'
delegate_to: 10.17.10.85
如何以更好的方式实现相同的功能?
答案 0 :(得分:1)
An Ansible" ping"实际上是在检查ssh,据我所知,没有一个Ansible模块来检查主机之间的网络连接(可能使用wait_for吗?)所以这可能是最好的方法,虽然我会添加一个{ {1}}正确地反映了这个命令永远不会改变的事实:
- name: Ping net1
command: 'ping -c 4 10.17.12.2'
delegate_to: 10.17.10.85
changed_when: false
答案 1 :(得分:0)
wait_for
似乎是标准方法。
例如(假设端口22将打开)
wait_for:
host: 10.17.12.2
port: 22
delay: 5
state: started
timeout: 10
delegate_to: 10.17.10.85