如何让Ansible任务仅执行一次并传递整个列表参数?
解决Ansible任务仅执行一次并传递整个列表参数的问题
直接将完整列表赋值给some_attribute即可,不需要使用loop——你的需求是一次性传递整个列表,而非遍历列表逐个执行任务。
正确写法
- name: Create something that has an attribute with more than one values some_module: some_attribute: - a - b run_once: true
如果列表是通过变量定义的,直接引用变量即可:
- name: Create something with list variable some_module: some_attribute: "{{ my_list_variable }}" run_once: true
原写法问题说明
你之前用loop配合run_once的写法会执行两次,是因为run_once的作用范围是每个循环迭代,而非整个任务。循环里的每个item都会触发一次带run_once: true的任务执行,最终变成两次独立的任务调用。
内容的提问来源于stack exchange,提问作者reisub83
相关产品推荐
相关产品推荐

