我只想在yml文件中传递rpm软件包列表,然后在我的任务中的with_items中调用它。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_64.rpm
Run Code Online (Sandbox Code Playgroud)
=>传入with_items另一个文件
---
- name: List required packages
include_vars:
-files.yml
set_fact: pkglist="{{ item}}"
with_items:
- "{{ modules }}"
register: pkglist_result
Comment:
Run Code Online (Sandbox Code Playgroud)
非常感谢。有帮助。我这样做只是为了最终完成。我没有尝试正确。但是我只在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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
示例剧本:
---
- hosts: my_hosts
vars_files:
- files.yml
tasks:
- name: print module name one by one
debug:
msg: "{{ item }}"
with_items: "{{ modules }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6934 次 |
| 最近记录: |