Templates Ansible-在模板中呈现嵌套变量
我正在尝试使用ansible中的模板将一些嵌套变量呈现到文件中 管理剧本如下所示:Templates Ansible-在模板中呈现嵌套变量,templates,variables,ansible,Templates,Variables,Ansible,我正在尝试使用ansible中的模板将一些嵌套变量呈现到文件中 管理剧本如下所示: --- - hosts: tag_Cluster_restore vars: pg_password: qa: blah staging: blahblah production: blahblahblah roles: - role: psql_helper 为简单起见,我的角色的tasks/main.yml如下所示: --- - debug: m
---
- hosts: tag_Cluster_restore
vars:
pg_password:
qa: blah
staging: blahblah
production: blahblahblah
roles:
- role: psql_helper
为简单起见,我的角色的tasks/main.yml如下所示:
---
- debug: msg="Password is {{ pg_password.[env] }}"
ansible-playbook playbook.yml -e "env=qa"
我想在命令行上指定env
变量,如下所示:
---
- debug: msg="Password is {{ pg_password.[env] }}"
ansible-playbook playbook.yml -e "env=qa"
…并让它提供qa密码。然而,目前我得到了fatal:[1.1.1.1]:失败!=>{“failed”:true,“msg”:“错误!模板字符串时模板错误:预期名称或编号”}
很明显,我的语法有错误,或者我指定的东西不正确。有人能帮忙吗
请注意,我不想循环使用pg_password
变量-我搜索过的大多数内容都指出了如何实现这一点,我想“深入”到我需要的嵌套变量,如果这实际上是可能的
谢谢您的调试任务在调用时不应具有
:
- debug: msg="Password is {{ pg_password[env] }}"
这仅仅意味着您正在从字典
pg_password
获取密钥env
,您的调试任务在调用时不应具有
:
- debug: msg="Password is {{ pg_password[env] }}"
这仅仅意味着您正在从字典pg_password