如何在Ansible模板中引用主变量?

时间:2014-09-03 16:46:01

标签: jinja2 ansible

我有以下Ansible项目结构:

├── demo.yml
├── hosts
├── group_vars
│   └── all
└── roles
    ├── common
    │   ├── tasks
    │   │   └── main.yml
    │   └── templates
    │       └── init.j2

Inside' hosts',我有:

[primary]
server1
[secondary]
server2

在roles / common / templates / init.j2中,我希望能够引用 [primary] 组变量。因为Ansible使用Jinja2作为其template module。我被引导到this Jinja2 doc

我试过了:

print("{{ group['primary'] }}")

但它会回来:

['server1']

现在我只能在循环中得到它:

{% for host in groups['primary'] %}
    print("{{ host }}")
{% endfor %}

它会返回我想要的东西:

server1

但是如何在不使用循环的情况下获得此结果?

1 个答案:

答案 0 :(得分:4)

试试这个......

groups['primary'][0]

或只是打印组,您应该能够看到数据的存储方式。

希望这有帮助!