以下是一个示例解决方案,展示了如何使用Ansible循环列表项,并将项作为变量传递给'include'任务,并使用'when'条件:
- name: Loop through a list and include tasks
hosts: localhost
gather_facts: false
vars:
my_list:
- item1
- item2
- item3
tasks:
- name: Include task for each item in the list
include_tasks: my_task.yml
loop: "{{ my_list }}"
loop_control:
loop_var: item
在上面的示例中,我们定义了一个名为'my_list'的变量,其中包含要循环的项。然后,我们使用'include_tasks'模块循环遍历列表,并将每个项目作为变量传递给'included'任务。
在'my_task.yml'文件中,我们可以使用'item'变量来访问当前循环的项目,并根据需要执行任务。例如,我们可以使用'when'条件来根据项目的值执行不同的操作:
- name: Task for each item
debug:
msg: "Processing item {{ item }}"
when: item == "item2"
在上面的示例中,我们只在'item'等于'item2'时才会执行任务。您可以根据需要根据项目的值定义更多的条件和任务。
请注意,'include'任务将在每个循环迭代中执行一次,并且可以在循环内部执行其他任务。
上一篇:Ansible循环列表和范围