我无法从ansible获取jinja2模板,以便能够读取group_vars/all.yml
中设置的全局变量。
**我的问题是**:如何让我的j2模板能够在group_vars/all.yml
中看到全局变量?根据我的理解,group_vars/all
应适用于所有群体。
我的ansible项目如下:
group_vars/
all.yml
playbooks/
roles/
some-role/
tasks/
main.yml
templates/
template.conf.j2
my-playbook.yml
---
- name: do it
template:
src: template.conf.j2
dest: ...
The global variable is: {{ GlobalVariable }}
GlobalVariable: something
当我运行playbook时,我在尝试编写该模板时遇到错误。
AnsibleUndefinedVariable: One or more undefined variables: 'GlobalVariable' is undefined
答案 0 :(得分:4)
将group_vars
文件夹放在playbooks
文件夹中,它可以解决您的问题。
类似的东西:
playbooks/
group_vars/
all.yml
roles/
some-role/
tasks/
main.yml
templates/
template.conf.j2
my-playbook.yml
然后无论你在哪里执行ansible-playbook -i hosts my-playbook.yml
命令(在剧本之外或在里面)它都应该工作
以下是关于source-code
的更多解释""" Loads variables from group_vars/<groupname> and host_vars/<hostname> in directories parallel to the inventory base directory or in the same directory as the playbook. Variables in the playbook dir will win over the inventory dir if files are in both. """