【问题标题】:Ansible Variable Filters and ExpansionAnsible 变量过滤器和扩展
【发布时间】:2018-02-22 22:01:38
【问题描述】:

我正在尝试调试正在过滤的变量,并且我的调试语句包含第二个嵌套变量。我似乎找不到正确的格式来进行调试。

例如:

  vars:
    - bw_type: as
    - patches: [
        PB.ps.21.sp1.551.pb2017091592773,
        PB.as.21.sp1.551.pb2017091555706,
        PB.as.21.sp1.551.pb2017091555707,
        PB.xsp.21.sp1.551.pb2017091891314 ]

- debug: msg="Deployments - {{ patches|select('match','PB.{{ bw_type }}.')|list }}"

我知道我可以简单地删除调试消息并针对 var 执行,并且效果很好。示例 -

- debug: var=patches|select('match','PB.{{ bw_type }}.')|list

但我不能在 with_items 场景中做同样的事情,因为需要外胡须,因此我试图让这个工作。

我在这里阅读过之前的帖子How can I use Ansible nested variable?

但我不确定如何通过我已有的过滤来应用它。根据那篇文章,我还尝试了以下方法,但均未成功。

- debug: msg=" Deployments - {{ vars[patches|select('match','PB.'+ bw_type +'.')|list] }}"

我做错了什么?

【问题讨论】:

    标签: ansible


    【解决方案1】:

    你可以使用 Jinja2 语法:

    - debug:
        msg: "Deployments - {{ patches | select('match', 'PB.' + bw_type + '.') | list }}"
    

    您引用的帖子是关于在另一个变量的名称中使用一个变量。这和你的问题不同。

    【讨论】:

    • 很好,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    相关资源
    最近更新 更多