【问题标题】:Ansible Nested Variable Regex searchAnsible 嵌套变量正则表达式搜索
【发布时间】:2019-05-09 16:35:29
【问题描述】:

我们如何使用 Ansible 嵌套变量进行通配符搜索?

YAML

test:
  name:
    address:
         zipcode: 12345

Ansible 模板变量

{{ test[name][addre*].zipcode }}

【问题讨论】:

    标签: ansible jinja2 ansible-template


    【解决方案1】:

    我们如何使用 Ansible 嵌套变量进行通配符搜索?

    - debug:
        msg: >-
          {{ test.name
          | dict2items
          | selectattr("key", "match", "addr.*")
          | map(attribute="value.zipcode")
          | list }}
    

    dict2items 爆炸了name 的子代,允许一个基于dictkey 的模式匹配——或任何其他有趣的技巧,通常——你已经看到了——不可能

    然后我们现在有一个匹配的{"key": "address1234", "value": {"zipcode": "11111"}} 结构列表,所以如果你想要所有这些结构的zipcode 字段,只需进入value 字典并拉出它的zipcode 字段。

    最后的list 是一个让步,因为map 生成一个python 生成器,而不是一个实际的列表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2013-12-05
      • 2015-08-31
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      相关资源
      最近更新 更多