我想知道如何循环多个任务直到满足条件。
#main.yml
- set_fact:
num: 1
req_num: 10
- name: Start to unregister entities
include_tasks: output.yml
loop: "{{ range(num, req_num + 1)|list }}"
#output.yml
- name: get status
raw: cat /tmp/output
register: rawoutput
- name: copy to localhost
copy:
content: "{{rawoutput.stdout}}"
dest: /tmp/output1
delegate_to: localhost
- name: reg output2
shell: awk something /tmp/output1 |awk '/something/,0' |head -n something |tail -n something > /tmp/output2 ; cat /tmp/output2
register: output2
delegate_to: localhost
- name: compare output2
debug:
msg: "{{item}}"
with_items: "{{ output2.stdout_lines }}"
until: item == "Synced"
retries: 2
delay: 2
#cat /tmp/output2
Synced
Syncing
Synced
Failed
我正在使用这个,但是当子任务失败时剧本会退出。
我的目标是确保 output2 中的所有内容都是“同步的”,循环output.yml
直到结果为“同步”,或者在 x 次尝试后失败。
欣赏是否有更好的方法来做到这一点。谢谢,谢谢