ab’s blog

インフラの呟きです。

Ansible 構成管理 ディレクトリ単位でファイルを取得する

hahahahahaha

はじめに

Annsibleでターゲットサーバフォルダ配下のファイルをまとめて取得(fetch)したいときの方法です。findでファイルの一覧を取得してその結果をwith_itemsで読み込ませることで纏めてfetchできます。with_fileglobwith_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 }}"
                   

以上