在Ansible中,可以使用debug
模块来输出变量的值,并使用with_items
来循环遍历列表。
以下是一个示例代码,演示如何调试输出with_items
的过滤结果:
- name: Example playbook
hosts: localhost
gather_facts: false
vars:
my_list:
- item1
- item2
- item3
tasks:
- name: Debug filtered items
debug:
var: item
with_items: "{{ my_list }}"
when: "item.startswith('item')"
- name: Debug all items
debug:
var: item
with_items: "{{ my_list }}"
在这个示例中,我们定义了一个名为my_list
的变量,其中包含三个字符串元素。
然后,我们使用debug
模块两次输出变量item
的值。第一次我们加入了一个条件when
来过滤只输出以item
开头的元素。第二次我们没有加入条件,输出所有的元素。
运行这个Playbook,我们会得到类似以下的输出:
TASK [Debug filtered items] ****************************************************
ok: [localhost] => (item=item1) => {
"item": "item1"
}
ok: [localhost] => (item=item2) => {
"item": "item2"
}
ok: [localhost] => (item=item3) => {
"item": "item3"
}
TASK [Debug all items] ********************************************************
ok: [localhost] => (item=item1) => {
"item": "item1"
}
ok: [localhost] => (item=item2) => {
"item": "item2"
}
ok: [localhost] => (item=item3) => {
"item": "item3"
}
可以看到,第一个任务只输出了以item
开头的元素,而第二个任务输出了所有的元素。
通过这种方式,我们可以在Ansible的调试输出中过滤和输出with_items
的结果。