Ansible:如何使用Variable进行过滤
我有一本ansible playbook,它给出了Ansible:如何使用Variable进行过滤,ansible,Ansible,我有一本ansible playbook,它给出了debug输出中的行列表。 我能够使用字符串(exp:CUST)过滤调试输出,但我很难使用变量过滤列表 - debug: msg: "{{ List.msg | select('match', '^(CUST)[0-9]+') | list }}" 列出消息输出: CUST1 CUST2 NEW1 NEW2 通过上面的调试命令,我在过滤输出中获得了CUST1、CUST2 - set_fact: filter: "{{ file
debug
输出中的行列表。
我能够使用字符串
(exp:CUST)过滤调试输出,但我很难使用变量过滤列表
- debug:
msg: "{{ List.msg | select('match', '^(CUST)[0-9]+') | list }}"
列出消息输出:
CUST1
CUST2
NEW1
NEW2
通过上面的调试命令,我在过滤输出中获得了CUST1、CUST2
- set_fact:
filter: "{{ fileout.results[0].content }}"
上面的filter
生成“CUST”,我想在上面的调试命令中使用这个filter
变量
使用下面的语法我一无所获,可能是ansible没有把它作为合适的变量
- debug:
msg: "{{ List.msg | select('match', '^("{{ filter }}")[0-9]+') | list }}"
请帮忙
提前感谢。可以隔离regex
过滤器的声明并简化报价。比如说
vars:
List:
msg: ['CUST1','CUST2','NEW1','NEW2']
Patterns: ['CUST','NEW']
tasks:
- debug:
msg: "{{ List.msg | select('match', filter) | list }}"
vars:
filter: '^{{ item }}[0-9]+'
loop: "{{ Patterns }}"
给予
可以隔离regex过滤器的声明并简化引用。比如说
vars:
List:
msg: ['CUST1','CUST2','NEW1','NEW2']
Patterns: ['CUST','NEW']
tasks:
- debug:
msg: "{{ List.msg | select('match', filter) | list }}"
vars:
filter: '^{{ item }}[0-9]+'
loop: "{{ Patterns }}"
给予
嗨,弗拉基米尔,非常感谢你的帮助。。上述解决方案非常有效。。我所做的唯一更改是使用模式作为列表<代码>循环:“{{[Patterns]}
。这是因为在我的任务中,filter参数是一个动态值,它可以是CUST或任何东西。因此,我在vars\u提示符
中定义了模式
`vars\u提示符:``-name:Patterns``提示符:“请键入输入:“`private:no`事实上,我最初的想法是获得如下问题中的参数。但是我没有解决它,因此我改变了我的过滤方法,就像这样`嗨,弗拉基米尔,非常感谢你的帮助。。上述解决方案非常有效。。我所做的唯一更改是使用模式作为列表<代码>循环:“{{[Patterns]}
。这是因为在我的任务中,filter参数是一个动态值,它可以是CUST或任何东西。因此,我在vars\u提示符
中定义了模式
`vars\u提示符:``-name:Patterns``提示符:“请键入输入:“`private:no`事实上,我最初的想法是获得如下问题中的参数。但是我没有解决它,因此我改变了我的过滤方法,就像这样`