Ansible提供了循环列表和范围的功能,可以通过循环操作对列表中的每个元素进行处理。
以下是一个示例,展示了如何使用循环列表和范围来迭代并打印列表中的每个元素:
- name: Loop through a list
hosts: localhost
gather_facts: false
vars:
my_list:
- item1
- item2
- item3
tasks:
- name: Loop through a list using with_items
debug:
msg: "Item: {{ item }}"
with_items: "{{ my_list }}"
- name: Loop through a range of numbers
debug:
msg: "Number: {{ item }}"
with_sequence: start=1 end=5
在上面的示例中,首先定义了一个名为my_list
的变量,其中包含了三个字符串元素。
接下来,使用with_items
关键字来循环遍历my_list
中的每个元素,并使用debug
模块打印出每个元素的值。
另外,还使用with_sequence
关键字来循环遍历一个范围内的数字,从1到5,然后使用debug
模块打印出每个数字的值。
运行以上的Ansible playbook,输出结果如下:
TASK [Loop through a list using with_items] ************************************
ok: [localhost] => (item=item1) => {
"msg": "Item: item1"
}
ok: [localhost] => (item=item2) => {
"msg": "Item: item2"
}
ok: [localhost] => (item=item3) => {
"msg": "Item: item3"
}
TASK [Loop through a range of numbers] *****************************************
ok: [localhost] => (item=1) => {
"msg": "Number: 1"
}
ok: [localhost] => (item=2) => {
"msg": "Number: 2"
}
ok: [localhost] => (item=3) => {
"msg": "Number: 3"
}
ok: [localhost] => (item=4) => {
"msg": "Number: 4"
}
ok: [localhost] => (item=5) => {
"msg": "Number: 5"
}
从输出结果可以看到,循环遍历列表和范围的操作都成功执行,并且打印出了每个元素的值。