0

我正在尝试访问在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"

现在我如何访问vars中的parent1.child1值?parent1{{ parent }}

我的剧本看起来像这样:-

剧本.yml

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

剧本输出: -

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

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

4

1 回答 1

3

我是怎么做到的

更改 group_vars/all 如下所示:-

data:
    parent1:
      child1: somevalue1
      child2: somevalue2

    parent2:
      child1: somevalue1
      child2: somevalue2

playbook.yml 中的更改:-

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

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

于 2014-04-08T05:02:41.363 回答