模板模块中的 Ansible group_vars
Ansible group_vars in template module
我想在 ansible 中使用 jinja2 模板复制文件。
我在 templates/file.j2 中有一个文件,在该文件中我定义了一个变量
fos.broker.host={{ fos.broker.host }}
在group_vars/stage里面我把这个变量的值设为
fos.broker.host: 'api_vl.vlstage.fidor.de'
最后我通过 main.yml 部署它,它看起来像。
---
- hosts: vlstage
vars_files:
- group_vars/vlstage
tasks:
- name: copy files to host
template: src=templates/file.j2 dest=/opt/tomcat/lib/file.conf
backup=yes owner=zoaib group=zoaib
但是当我运行命令ansible-playbook -i hosts main.yml -u zoaib
我遇到以下错误:
TASK [copy files to host] *************************************************************************************************************************************************************
fatal: [s-vl-idl-app02.fidor.intern]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'fos' is undefined"}
任何解决问题的线索?
不要在变量名中使用点。点符号用于引用字典键。
阅读What Makes A Valid Variable Name:
foo-port
, foo port
, foo.port
and 12
are not valid variable names.
尽管在现实中,可以使用名称中带点的变量并使用 vars
查找插件引用它的值:
fos.broker.host={{ lookup('vars', 'fos.broker.host') }}
我想在 ansible 中使用 jinja2 模板复制文件。
我在 templates/file.j2 中有一个文件,在该文件中我定义了一个变量
fos.broker.host={{ fos.broker.host }}
在group_vars/stage里面我把这个变量的值设为
fos.broker.host: 'api_vl.vlstage.fidor.de'
最后我通过 main.yml 部署它,它看起来像。
---
- hosts: vlstage
vars_files:
- group_vars/vlstage
tasks:
- name: copy files to host
template: src=templates/file.j2 dest=/opt/tomcat/lib/file.conf
backup=yes owner=zoaib group=zoaib
但是当我运行命令ansible-playbook -i hosts main.yml -u zoaib
我遇到以下错误:
TASK [copy files to host] *************************************************************************************************************************************************************
fatal: [s-vl-idl-app02.fidor.intern]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'fos' is undefined"}
任何解决问题的线索?
不要在变量名中使用点。点符号用于引用字典键。
阅读What Makes A Valid Variable Name:
foo-port
,foo port
,foo.port
and12
are not valid variable names.
尽管在现实中,可以使用名称中带点的变量并使用 vars
查找插件引用它的值:
fos.broker.host={{ lookup('vars', 'fos.broker.host') }}