我有以下任务,我的目标是将大于 5 的值放入新列表 (new_list) 中:
- name: Run with items greater than 5
ansible.builtin.command: echo {{ item }}
loop: [ 0, 2, 4, 6, 8, 10 ]
when: item > 5
register: new_list
- debug:
var: new_list
但是我得到以下输出,
这里的实际输出https://anotepad.com/notes/iqrpfkxk(输出太大无法发布)
我希望得到 [ 6, 8, 10 ],基本上是如何摆脱所有额外的输出。
答案 0 :(得分:0)
您可以使用 set_fact
将大于 5 的值存储到新数组 (new_list
) 中。为此,可以有条件地执行任务。
示例:
tasks:
- set_fact:
new_list: "{{ new_list|default([]) + [item] }}"
when: item > 5
loop: [ 0, 2, 4, 6, 8, 10 ]
- debug:
var: new_list
产生:
"new_list": [
6,
8,
10
]
更新:
虽然对于上面的例子不是必需的。有一些关于如何限制循环输出 here 的文档。
答案 1 :(得分:0)
Select 项。例如
<target name="test">
<echo>Hello,</echo>
</target>
给出(删减)
- debug:
var: item
loop: "{{ [ 0, 2, 4, 6, 8, 10 ]|select('gt', 5)|list }}"