我正在使用 ansible 来配置 10-20 个 linux 系统。我有一组工具,我在我的库存文件中定义了版本,如:
tools:
- tool: ABC
version: 7.8
- tool: XYZ
version: 8.32.1
现在,在我的播放 yml 文件中,我想遍历它们并拥有必要的安装逻辑。如:
调试工具循环
- name: Find installer files
copy:
src=
with_items:
- "{{ tools }}"
when:
tools.tool == "ABC"
在我的情况下,{{tools.tool}}/{{tools.version}} 有一个 tgz 文件,我需要在远程位置取消存档。你知道怎么做吗?我试过这些:
- name: Find installer files
vars:
files: {{ lookup("fileglob",'tools/{{item.tool}}/linux/{{item.version}}/*') }}
unarchive:
src: "{{ files }}"
dest: "tools/{{item.tool}}/{{item.version}}/"
with_items:
- "{{ tools }}"
when:
item.tool == "ABC"
- name: Find installer files
debug:
msg: "{{ item}}"
with_items:
- "{{ tools }}"
with_fileglob:
- "tools/{{item.tool}}/linux/{{item.version}}/*"
when:
item.toolchain == "ABC"
但没有一个奏效。谢谢您的帮助。