我试图在元素包含字符串时在Jinja2中的ansible中过滤列表,但Jinja文档看起来不够清晰,不足以让我弄清楚。Jinja2使用字符串的过滤器列表包含测试
这是我到目前为止有:
- name: run script
command: /usr/tmp/run_script.py
register: script_results
- name: display run info
debug:
var: "{{script_results.stdout_lines | select(\"'running script' in script_results.stdout_lines\") }}"
但我得到的是错误:
"<generator object _select_or_reject at 0x13851e0>": "VARIABLE IS NOT DEFINED!"
因此,举例来说,如果stdout_lines
包含["apples","running script one","oranges","running script two"]
,我想打印
running script one
running script two
他们有documentation for select和documentation for built-in-tests,但他们没有展示“in”测试,我不知道他们是如何在这个变量的背景下工作的。
我试图解决这样的:
- name: display run info
debug:
var: item
with_items: "{{script_results.stdout_lines}}"
when: "'running script' in item"
但是,这显示“退出”,每行未通过测试......还挺击败宗旨!
此打印一行,每跳过项目,不幸失败的目的。 – CorayThan