0

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"

しかし、どれも機能しませんでした。助けてくれてありがとう。

4

2 に答える 2