我正在尝试使用ansible中的模板将一些嵌套变量渲染到文件中。
管理剧本看起来像:
---
- 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] }}"
我想在命令行中指定env
变量,如下所示:
ansible-playbook playbook.yml -e "env=qa"
...让它呈现qa密码。但是,目前我得到fatal: [1.1.1.1]: FAILED! => {"failed": true, "msg": "ERROR! template error while templating string: expected name or number"}
显然我的语法有错误,或者我指的是错误的。有人可以帮忙吗?
请注意,我不想循环遍历pg_password
变量 - 我搜索过的大多数内容指出了如何执行此操作,我想“深入”到我需要的嵌套变量,如果这实际上是可能的......
由于
答案 0 :(得分:2)
您的调试任务不应该有- debug: msg="Password is {{ pg_password[env] }}"
调用:
env
这仅表示您从字典pg_password
public class MyClass
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
}