无法访问 ansible 中带有"includes"的文件的变量



我有一个从yaml文件读取变量所需的剧本。我在剧中使用include_role,所以似乎无法利用vars_files。我也尝试了vars_from,但似乎也不起作用。变量位于~promupdate/vars/hostgroup/templates/test.yaml文件夹中

我试过下面的剧本

- hosts: "{{ test }}"
serial: "100%"
tasks:
- include_role:
name: promethium_update
vars:
name: "{{ item }}"
wrapped: "{{ lookup('file', /promupdate/vars/hostgroup/templates/item.yml) | from_yaml }}"
with_items: {{ templates }}

这就是我得到的错误。

fatal: [prom-test]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'PromUpdater' is undefined"}

有人想出了实现这一目标的方法吗?

我尝试了ansible 2.5和ansible 2.7

您可以试用include_vars

- hosts: "{{ test }}"
serial: "100%"
tasks:
- name: include vars first
include_vars: path_to_var_file

- include_role:
name: promethium_update

最新更新