【发布时间】:2020-05-21 18:41:32
【问题描述】:
当我看到某个节点启动时,我在剧本中有一个场景,它应该失败向用户发出警告消息“关闭节点正在尝试重新运行”。我使用了失败模块但不确定哪个条件添加。
- command: ping -c3 {{ server1-ip }}
tags: cluster
- command: ping -c3 {{ server2-ip }}
tags: cluster
- debug:
msg: "The nodes {{ server1-ip }} and {{ server2-ip }} are pingable, please make sure to turn off the node before re-run else cluster fails"
verbosity: 1
tags: cluster
- name: Fail if servers are pingable
fail:
msg: "{{ server1-ip }} and {{ server2-ip }} are ON , make sure to turn off all nodes
before deployment"
when: << >> #what conditional fits better here?
tags: cluster
现在,我正在考虑使用 command 模块的 o/p,这意味着如果我得到 0% 的损失,这意味着它的 ping。所以想到包括
- name: Test the connectivity for Servers
command: ping -c3 {{ server1-ip }}
register: ping_results
failed_when: "0% packet loss in ping_results"
tags: cluster
感谢帮助
【问题讨论】:
-
请向我们展示您到目前为止所做的尝试。
-
首先,将
ping模块与failed_when: false一起使用。然后将when: ping_results.rc == 0放入你的失败模块中。 -
@Jack 谢谢,是的,这是另一种测试方式,当你说
failed_when: false时,这意味着ping结果是成功的,接下来你使用另一个模块来说明它失败的原因。 -
对。在您的情况下,您实际上希望
ping模块失败,因此失败实际上就是成功! -
是的,这正是我的用例。