Ansible:如何使用Variable进行过滤

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

我有一本ansible playbook,它给出了
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`事实上,我最初的想法是获得如下问题中的参数。但是我没有解决它,因此我改变了我的过滤方法,就像这样`