src
シェルグローブを使用してテンプレートモジュールに複数のファイルを割り当てる方法はありますか?
- name: Copy keys
template:
src: "{{ item }}"/RPM-*
dest: /etc/pki/{{ item }}/
loop:
- gf
答え1
Ansibleを使用できますfileglob
探す行ってこれをやってみてください。パターンをモジュールのパラメータwith_fileglob
に入れる代わりに、次のようにパターンをパラメータリストに渡すことができます。src
template
- 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
。
まず、ターゲットディレクトリが存在することを確認し、その前にディレクトリを作成するために別のタスクを実行する必要があります。