automation - Ansible - 使用循环“直到”时如何检查特定的子字符串?
问题描述
我有一个任务要检查我的交换机是否已重新启动,并且我想运行该任务,直到它返回成功的 ping。我拥有的交换机是 Aruba 2530,当我手动对其进行 ping 操作时,我得到以下字符串作为回报:
192.168.12.200 存活,时间 = 2 ms
我的想法是从返回字符串中检查单词“alive”以查看 ping 是否成功。这甚至是一种理想的方式吗?哦,我正在使用来自https://github.com/aruba/aruba-switch-ansible的模块
我的任务如下所示:
arubaos_switch_ssh_cli:
ip: "{{ ansible_host }}"
user: "{{ ansible_user }}"
password: "{{ ansible_password }}"
show_command: "ping 192.168.12.200"
register: ping_result
retries: 12
delay: 5
until: ???"
我试过用谷歌搜索答案并尝试了几种不同的语法。我发现的大多数东西都在考虑条件“何时”,所以我不确定“何时”和“直到”在查看它们的语法时如何相互比较。
我试过以下:
"'alive' in ping_result.cli_output"
"ping_result.cli_output | search('alive')
"{{ 'alive' in ping_result.cli_output }}"
和其他几个没有工作的...
提前感谢大家!
解决方案
推荐阅读
- python - 如何捕获被QWebEngineUrlRequestInterceptor拦截的请求的响应?
- http - Is the cookie dependent on the browser?
- flutter - 用颤振画布在形状上切一个洞
- bash - How to iteratively rename files in Bash
- django - 如何根据 forms.py 中的初始值验证字段?
- java - 运行应用程序时创建字符串
- build - Auto increment build number using PlatformIO
- c# - Base method without `virtual` vs. base method with `virtual` and derived method with `new`?
- java - 为什么广播接收器不能动态工作?
- karate - java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 同时作为 Junit 运行