可以在 Ansible playbook 中使用 "until:" 关键字和 register 变量来控制一些循环任务。
例如,下面的示例演示了如何使用与 "until:" 结合的 register 变量来等待某个服务启动:
- name: Wait for the service to start
become: yes
shell: systemctl status myservice
register: myservice_status
until: myservice_status.stdout_lines[2] is search("active \(running\)")
retries: 10
delay: 10
在上面的示例中,shell 模块用于检查 myservice 服务的状态,并将 stdout 存储在 myservice_status 变量中。然后,使用 until 关键字和注册的 myservice_status 变量来检查服务的状态,并在服务变为 "active (running)" 后继续执行任务。如果服务状态不是预期的状态,将等待 10 秒后重试。
这是一个基本的示例,您可以根据需要调整参数和条件语句。