我只想在yml文件中传递rpm包列表,并在我的任务中的with_items中调用它。 yml文件应该是哪种格式。请帮我。我google了很多,仍然感到困惑。我需要实现,以便我只能更改外部文件中的包名称,而无需更改主文件。
例如: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
=>传递到另一个文件中的with_items
---
- name: List required packages
include_vars:
-files.yml
set_fact: pkglist="{{ item}}"
with_items:
- "{{ modules }}"
register: pkglist_result
Comment:
非常感谢。这有帮助。 我做到这一点终于完成了。我没有尝试过。但我只提到files.yml中包的名称,并将真实包放在tasks目录所在的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
答案 0 :(得分:5)
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 }}"