2016-05-17 302 views
1

我想呈现一些嵌套变量在模板中使用ansible。Ansible - 在模板中呈现嵌套变量

理事剧本是这样的:

--- 

- hosts: tag_Cluster_restore 
    vars: 
    pg_password: 
     qa: blah 
     staging: blahblah 
     production: blahblahblah 
    roles: 
    - role: psql_helper 

为了简单起见,我的角色的任务/ main.yml看起来是这样的:

--- 
- debug: msg="Password is {{ pg_password.[env] }}" 

而且我想指定的命令env变量线条是这样的:

ansible-playbook playbook.yml -e "env=qa" 

...并让它呈现qa pa提供ssword。然而,目前我得到fatal: [1.1.1.1]: FAILED! => {"failed": true, "msg": "ERROR! template error while templating string: expected name or number"}

很明显,我的语法错了,或者我指定了一些不正确的东西。谁能帮忙?

请注意,我不想循环使用变量 - 我用Google搜索的大多数内容都指出了如何做到这一点,我想“钻取”到我需要的嵌套变量,如果这样事实上,可以...

感谢

回答

1

你的调试任务应该不会有.上调用:

- debug: msg="Password is {{ pg_password[env] }}" 

这只是意味着你是从字典0123拿到钥匙env