模板模块中的Ansible group_变量

模板模块中的Ansible group_变量,ansible,ansible-template,Ansible,Ansible Template,我想在ansible中使用jinja2模板复制文件 我在templates/file.j2中有一个文件,在该文件中定义了一个变量 fos.broker.host={{ fos.broker.host }} 在组_变量/stage I中,此变量的值为 fos.broker.host: 'api_vl.vlstage.fidor.de' 最后,我通过main.yml部署它,它看起来像 --- - hosts: vlstage vars_files: - group_vars/vlst

我想在ansible中使用jinja2模板复制文件

我在templates/file.j2中有一个文件,在该文件中定义了一个变量

fos.broker.host={{ fos.broker.host }}
在组_变量/stage I中,此变量的值为

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时,我托管main.yml-u zoaib

我得到以下错误:

TASK [copy files to host] *************************************************************************************************************************************************************
fatal: [s-vl-idl-app02.fidor.intern]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'fos' is undefined"}

有解决问题的线索吗?

不要在变量名中使用点。点符号用于指代字典键

阅读:

foo-port
foo-port
foo.port
12
都是无效的变量名


尽管在现实中,可以使用名称中带有点的变量,并使用
vars
lookup插件引用其值:

fos.broker.host={{ lookup('vars', 'fos.broker.host') }}