Ansibleテンプレートでシェルワイルドカードを使用する

Ansibleテンプレートでシェルワイルドカードを使用する

srcシェルグローブを使用してテンプレートモジュールに複数のファイルを割り当てる方法はありますか?

- name: Copy keys    
  template:    
    src: "{{ item }}"/RPM-*     
    dest: /etc/pki/{{ item }}/
  loop:
    - gf

答え1

Ansibleを使用できますfileglob探す行ってこれをやってみてください。パターンをモジュールのパラメータwith_fileglobに入れる代わりに、次のようにパターンをパラメータリストに渡すことができます。srctemplate

- hosts: localhost
  gather_facts: false
  tasks:
    - name: Copy keys
      template:
        src: "{{ item }}"
        dest: "./pki/{{ '/'.join(item.split('/')[-2:]) }}"
      with_fileglob:
        - "gf/RPM-*"
        - "xz/RPM-*"

これにより、ファイルがからコピーされ./pki/gf/RPM-...ます./pki/xz/RPM-...。この式は'/'.join(item.split('/')[-2:])同様のパス名/some/path/to/gf/RPM-fooを取得しますgf/RPM-foo

まず、ターゲットディレクトリが存在することを確認し、その前にディレクトリを作成するために別のタスクを実行する必要があります。

関連情報