YAML / ANSIBLE - >将变量键和值保存到新变量

时间:2017-07-07 13:00:58

标签: ansible ansible-inventory ansible-facts

我正在为自己做一个小型的ansible项目。

我的角色默认文件夹中有main.yml

结构:

master-folder
 `- roles
     `- some_role
         |- tasks
         |   `- main.yml
         `- defaults
             `- main.yml

现在... 在我的some_variables.yml我有一个有2个vars的字典。

parent_var:
  child_var: bob
  child_two_var: bobby

在我的main.yml 任务中我想获取键和值所以(child_var: bob)并将其写入另一个文件。

我需要帮助的是从默认文件夹中的main.yml获取密钥和值。

1 个答案:

答案 0 :(得分:0)

defaults/*.yml中定义的任何变量均可通过{{tree.to.variable}}角色的任何任务访问。

因此,在您的情况下,您只需访问{{parent_var}}

如果要循环键和值,可以使用with_dict loop

- lineinfile:
    line: "Value for '{{ item.key }}' is '{{ item.value }}'"
    dest: /tmp/test/file1
  with_dict: "{{ parent_var }}"

如果你需要在模板中循环,那么jinja2中就会有{% for %}

- copy:
    dest: /tmp/test/file
    content: |
      {% for k,v in parent_var.iteritems() %}
      Value for '{{ k }}' is '{{ v }}'
      {% endfor %}