2017-07-07 91 views
0

我正在爲自己開發一個小型項目。YAML/ANSIBLE - >將變量鍵和值保存到新變量

我在我的角色的默認文件夾中有一個main.yml

結構:

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

現在... 在我some_variables.yml我有2個瓦爾字典。

parent_var: 
    child_var: bob 
    child_two_var: bobby 

在我main.yml 任務我想要得到鍵和值左右(child_var: bob),並將其寫入到另一個文件。

我需要幫助的是,從main.yml獲取密鑰和值在默認文件夾中。

回答

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 %}