【问题标题】:Ansible: Read a single value with key from YAML fileAnsible:使用 YAML 文件中的键读取单个值
【发布时间】:2021-04-12 07:58:53
【问题描述】:

我有一个包含如下内容的 yaml 文件

abc: 123
def: 456
ddd: {{ eee }}
xyz: 789

我尽量避免将整个文件加载到 vars 空间中,但我需要在我的剧本中使用 'def' 的值。我想我可以使用查找来解决问题。但是之后

lookup('file', 'path/to/file.yaml')

我不知道如何使用 Ansible 解析文件的内容以获取带有其键的值。 我尝试了 include_vars,但那个迫使我将 yaml 文件值修改为 {{ eee }} 到“{{ eee }}”,这修改了实际值。 有没有一种简单的方法来读取 YAML 文件键值?

【问题讨论】:

    标签: ansible


    【解决方案1】:

    使用模板读取文件,例如

        - set_fact:
            _def: "{{ (lookup('template', 'path/to/file.yaml')|from_yaml).def }}"
          vars:
            eee: 'default'
    

    给予

      _def: '456'
    

    必须定义变量eee。请参阅thread。


    您可能想先设置字典,例如

        - set_fact:
            d1: "{{ lookup('template', 'path/to/file.yaml')|from_yaml }}"
          vars:
            eee: 'default'
        - set_fact:
            _def: d1.def
    

    【讨论】:

      猜你喜欢
      • 2019-01-24
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2015-10-19
      相关资源
      最近更新 更多