Ansible Playbook中的变量变量

时间:2014-04-07 06:57:09

标签: ansible ansible-playbook

我正在尝试访问group_vars

中定义的变量

group_vars /所有

parent1:
  child1: somevalue1
  child2: somevalue2

parent2:
  child1: somevalue1
  child2: somevalue2

现在我正在传递parent详细信息来自ansible playbook extra vars  此

ansible-playbook playbook.yml -e "parent=parent1"

现在如何在parent1.child1 vars中parent1附近{{ parent }}访问- hosts: local user: roop gather_facts: no connection: local vars: parent: "" tasks: #get parent value - debug: msg={{ parent }} #trying to access parent1.child1 value here - debug: msg={{ {{ parent }}.child1 }} 值?

我的剧本如下: -

playbook.yml

PLAY [local] ******************************************************************

TASK: [debug msg=local] *******************************************************
ok: [127.0.0.1] => {
    "msg": "parent1"
}

TASK: [debug msg={{{{parent}}.child1}}] ***************************************
ok: [127.0.0.1] => {
    "msg": "{{{{parent}}.child1}}"
}

PLAY RECAP ********************************************************************
127.0.0.1                  : ok=2    changed=0    unreachable=0    failed=0

Playbook输出: -

{{1}}

任何人都可以指导我如何实现这个或任何替代解决方案。

1 个答案:

答案 0 :(得分:3)

我是怎么做到的

更改group_vars / all如下: -

data:
    parent1:
      child1: somevalue1
      child2: somevalue2

    parent2:
      child1: somevalue1
      child2: somevalue2

playbook.yml的变化: -

 - debug: msg={{ data[parent].child1 }}

如果您有更好的解决方案,请分享:)