2017-07-07 7 views
0

私は自分自身のために小さな安全なプロジェクトに取り組んでいます。YAML/ANSIBLE - >変数のキーと値を新しい変数に保存

私のロールのdefaultsフォルダにmain.ymlがあります。

構造:

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

は今... 私some_variables.ymlでは、私は2 VARSと辞書を持っています。私はそうキーと値child_var: bob)を取得し、別のファイルにそれを書きたい私のmain.yml タスク

parent_var: 
    child_var: bob 
    child_two_var: bobby 

私が助けが必要なのは、デフォルトのフォルダの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 }}" 

テンプレートをループする必要がある場合は、{% for %}がjinja2にあります。

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