我有一个从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