【问题标题】:Accessing a variable from yml file in ansible playbook从 ansible playbook 中的 yml 文件访问变量
【发布时间】:2020-04-28 02:59:09
【问题描述】:

我正在尝试在运行 ansible playbook 时从库存文件 (yml) 访问变量。库存文件的片段格式(仅相关部分)看起来像

        cfgs:
          - name: RCH
            members:
              -  holiday
              -  map
              -  list
              -  network

我希望在我的剧本中将“RCH”作为变量导入。有人可以帮我吗?并且不想修改库存文件 - 这适用于所有其他要求。

我可以使用返回的“{{cfgs}}”访问整个部分:

"“{'name': 'RCH', 'members': ['holiday', 'map', 'list', 'network']}“".

尝试提取“RCH”时,“{{cfgs['name']}}”或“{{cfgs[“name”]}}”或“{{cfgs[1]}}”也不起作用来自剧本。

【问题讨论】:

    标签: ansible yaml


    【解决方案1】:

    cfgs 变量是一个列表,列表中的第一项位于索引 0,而不是索引 1。所以你需要:

    "{{ cfgs[0] }}"
    

    其他一些例子:

    "{{ cfgs[0].name }}"       # "RCH"
    "{{ cfgs[0].members[3] }}" # "network"
    

    【讨论】:

    • 感谢您的快速回复,这正是我想要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2022-01-23
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2017-10-07
    相关资源
    最近更新 更多