在 ansible 中,变量是从寄存器输出动态获取的,第一个循环将从已注册的输出结果中收集值,一旦它满足 when 条件,下一个循环就应该开始执行。如何在 ansible 中的一个 when 条件中使用两个循环
- name: stop the http service
command: sh http.sh stop {{item}}
args:
chdir: /opt/http/
loop: “{{http.stdout_lines}}”
when: “item.stdout != 0"
loop: “{{wordcount.results}}”
这是代码,但我无法连续使用两个循环,如果一个循环完成,它应该运行下一个循环
答案1
抱歉,但它不会按照您希望的方式工作。您只能为loop
每个任务定义一次;第二个定义将被忽略。您可能需要将其分解为多个任务,但是,我无法提出解决方案,因为从您的示例中无法完全清楚您要完成的任务。更多上下文可能会有所帮助。