在Ansible中实现重复任务直到输出中出现指定的字符串,可以使用until关键字结合register和debug模块。下面是一个示例代码:
- name: Repeat task until specified string appears in output
hosts: your_hosts
gather_facts: false
tasks:
- name: Run the task and register the output
command: your_command
register: command_output
ignore_errors: true
- name: Debug the output
debug:
msg: "{{ command_output.stdout }}"
- name: Repeat the task until specified string appears in output
command: your_command
register: command_output
ignore_errors: true
until: command_output.stdout.find('specified_string') != -1
retries: 10
delay: 10
- name: Debug the final output
debug:
msg: "{{ command_output.stdout }}"
这个示例中,首先运行一个命令并将输出注册到变量command_output中。然后使用debug模块打印输出,以便查看结果。接下来使用until关键字重复运行命令,直到输出中出现指定的字符串为止。重复的次数由retries参数指定,每次重复之间的延迟由delay参数指定。最后使用debug模块打印最终的输出。
将上述代码保存为一个Ansible playbook文件,并根据实际情况修改your_hosts为主机名或组名,your_command为要执行的命令,以及specified_string为要匹配的字符串。然后使用ansible-playbook命令运行该playbook即可。