ansible - Ansible 重复任务,直到指定字符串出现在输出中
问题描述
我有一个任务需要执行,直到标准输出中有某个字符串。bigip_command 的标准输出是一个列表(https://docs.ansible.com/ansible/latest/modules/bigip_command_module.html#return-values)
- name: Disable pool member
bigip_command:
commands: "tmsh show /sys connection ss-server-addr xx.xx.xx.xx ss-server-port 8080"
provider:
user: "xx"
password: "xxx"
server_port: xx
server: xxx
delegate_to: localhost
register: result
until: "'Total records returned: 0' in result.stdout"<br><br>
输出是:
失败 - 重试:禁用池成员(剩余 3 次重试)
但是返回的总记录数:0 在 result.stdout 中。
使用调试输出为:
- name: debug
debug:
msg: "{{ result.stdout }}"
输出:
ok: [xxx] => {
"msg": [
"Sys::Connections\nTotal records returned: 0"
]
}
解决方案
请参阅重试任务直到满足条件。尝试
- name: Disable pool member
vars:
my_regex: 'Total records returned: 0'
bigip_command:
commands: "yyy"
user: "xx"
password: "xxx"
server_port: xx
server: xxx
delegate_to: localhost
register: result
until: result.stdout is search(my_regex)
retries: 5
delay: 10
(未测试)
推荐阅读
- python - Python next() for 5 examples and store in a Dataframe
- c# - How to use Monitor in threading without exclusive lock?
- javascript - Animation doesn't work when adding a property transition effect
- java - Arguments of methods
- java - How to wrap Jpa @Query placeholder in single quotes
- redux - How to change all hidden values to false in each state object?
- javascript - How to pass the variable in python to the JavaScript
- python - prettier seems to not working in VScode (python)
- python - Wait_for and buttons not working for discord bot
- django - 跨域请求被阻止:同源策略不允许读取远程资源...(原因:CORS 未成功)