ansible with_项从外部文件传递变量
我只想传递一个yml文件中的rpm包列表,并在任务中使用_项调用它。 yml文件应为哪种格式。请帮帮我。我在谷歌上搜索了很多,仍然感到困惑。我需要实现,这样我就可以只更改外部文件中的包名,而不更改主文件 例如:ansible with_项从外部文件传递变量,ansible,Ansible,我只想传递一个yml文件中的rpm包列表,并在任务中使用_项调用它。 yml文件应为哪种格式。请帮帮我。我在谷歌上搜索了很多,仍然感到困惑。我需要实现,这样我就可以只更改外部文件中的包名,而不更改主文件 例如:files.yaml --- - vars: modules: - firmware-system-p89-2.56_2018_01_22-1.1.i386.rpm - firmware-smartarray-ea3138d8e8-6.30-1.1.x86_
files.yaml
---
- vars:
modules:
- firmware-system-p89-2.56_2018_01_22-1.1.i386.rpm
- firmware-smartarray-ea3138d8e8-6.30-1.1.x86_64.rpm
=>通过另一个文件中的_项传递到
---
- name: List required packages
include_vars:
-files.yml
set_fact: pkglist="{{ item}}"
with_items:
- "{{ modules }}"
register: pkglist_result
Comment:
非常感谢。这很有帮助。
我这样做就是为了最终完成。我没有试对。但是我在files.yml中只提到了包的名称,并将真正的包放在任务目录所在的files目录中
- name: List required packages
include_vars: files.yml
register: pkglist_result
- name: make a list
set_fact: pkg_list="{{ pkglist_result.ansible_facts.modules}}"
- debug: var=pkg_list
files.yml
:
---
modules:
- firmware-system-p89-2.56_2018_01_22-1.1.i386.rpm
- firmware-smartarray-ea3138d8e8-6.30-1.1.x86_64.rpm
示例剧本:
---
- hosts: my_hosts
vars_files:
- files.yml
tasks:
- name: print module name one by one
debug:
msg: "{{ item }}"
with_items: "{{ modules }}"
所以,这个方法是有效的,但当我试图在任务中使用它时,它会抛出错误,比如:errorvars_files'不是任务的有效属性。因此,我尝试使用include_vars,但它不起作用。我希望它很简单,但我遗漏了一些东西。那太傻了。下面的方法很简单。include_vars:files.yml寄存器:pkglist_结果