はじめに
Annsibleでターゲットサーバフォルダ配下のファイルをまとめて取得(fetch)したいときの方法です。findでファイルの一覧を取得してその結果をwith_items
で読み込ませることで纏めてfetchできます。with_fileglob
やwith_filetree
で出来そうに思えたのですが、やってみるとできませんでした。調べるとどうやらcopyやtemplateモジュールでは使えるのですがfetchでは使えないみたいです。
play-book
以下は/etc/sysconfig/network-scripts/配下にあるファイルを纏めて取得するプレイブックタスクです。
tasks: - name: 現在時刻セット set_fact: datetime: "{{ lookup('pipe','date +%Y%m%d') }}" - name: ファイル一覧取得 shell: find /etc/sysconfig/network-scripts/ -type f register: list - name: ファイル取得 fetch: src: "{{ item }}" dest: /tmp/{{ datetime }}/ become: yes with_items: "{{ list.stdout_lines }}"
以上