Ansible - 在模板中渲染嵌套变量

时间:2016-05-17 15:20:28

标签: 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: 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变量 - 我搜索过的大多数内容指出了如何执行此操作,我想“深入”到我需要的嵌套变量,如果这实际上是可能的......

由于

1 个答案:

答案 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; } }