ansible を使用して 10 ~ 20 の Linux システムを構成しています。次のように、バージョンを含むインベントリ ファイルで定義する一連のツールがあります。
tools:
- tool: ABC
version: 7.8
- tool: XYZ
version: 8.32.1
ここで、再生 yml ファイルで、それらをループして、必要なインストール ロジックを取得したいと考えています。そのような:
DEBUG ツール ループ
- 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"
しかし、どれも機能しませんでした。助けてくれてありがとう。