在Ansible中使用循环遍历时,有时需要将遍历的结果格式化为可读性强的格式,例如将列表中的元素依次展示。在这种情况下,需要进行STDOUT格式化。可以使用jinja2模板作为格式化方式,以下是代码示例:
- hosts: localhost
gather_facts: no
vars:
my_list:
- item1
- item2
- item3
tasks:
- name: Loop Formatting Example
debug:
msg: "{{ item }}"
loop: "{{ my_list }}"
loop_control:
label: "{{ loop.index }}: {{ item }}"
run_once: true
在上述示例中,我们将my_list中的三个元素循环遍历,并将每个元素通过debug模块输出,其中{{ item }}表示当前循环到的元素,{{ loop.index }}表示当前循环的索引值。通过设置loop_control的label属性,我们将输出格式化为“索引值:元素”的格式,输出结果如下:
TASK [Loop Formatting Example] *************************************************
ok: [localhost] => (item=item1) => {
"msg": "1: item1"
}
ok: [localhost] => (item=item2) => {
"msg": "2: item2"
}
ok: [localhost] => (item=item3) => {
"msg": "3: item3"
}
通过这种方式,我们可以自由地格式化循环遍历输出,使输出结果更易读。