【问题标题】:how to read each element of an yaml map如何读取 yaml 映射的每个元素
【发布时间】:2015-06-03 09:29:04
【问题描述】:

我正在尝试访问 yaml 对象的所有元素,任何建议都会有所帮助:

object:
  element1: "value1"
  element2: "value2"
  element3: "value3"

上面的对象定义在 group_vars/all 文件中,以便其他任务可以访问。

- name: pass values to script
  debug: "msg={{ item }}"
  with_items:
    - "{{ object.element1 }}"
    - "{{ object.element2 }}"

现在这个方法允许我接受每个元素,但我想完成这个,以便对象中的所有元素(不管对象的数量)都被 with_items 读取。我尝试了以下方法:

- name: pass values to script
  debug: "msg={{ item }}"
  with_items:
    - "{{ object }}"

但这会将整个对象视为一个项目。关于如何将所有元素放入列表 with_items 的任何建议:

【问题讨论】:

    标签: yaml ansible


    【解决方案1】:

    您可以尝试使用:
    with_items: 对象

    它适用于库存定义。

    【讨论】:

    • 这并不能解决我的问题,建议的解决方案只是打印单词 object,它不会识别出它是一个 yaml 对象。
    【解决方案2】:

    问题的解决方案是使用 with_dict。

    - name: pass values to script
      debug: "msg={{ item.value }}"
      with_dict:
        - "{{ object }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-19
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2017-11-17
      相关资源
      最近更新 更多