🍎
Ansibleでリモート先からローカルにファイルを取得する
リモート先でファイルを検索して、ローカルにコピーするためのプレイブックです。(Roleのみ)
簡単かと思ったら割と作るのに困ったので、残しておきます。
まずファイルを検索しにいって
- name: find files.
find:
paths: "{{ item }}"
recurse: no
patterns: "*.log" #正規表現で検索条件をかく
register: files_to_copy
with_items:
- /tmp/ #任意のパスにする
- /var/log/
検索に引っかかったファイルをローカルからリモートへコピーする
- name: fetch file.
fetch:
src: "{{ item.path }}"
dest: "{{ playbook_dir }}/files/{{ inventory_hostname }}/{{ item.path }}" #ローカルのファイルを持ってきたいパスを記載する
flat: yes
with_items: "{{ files_to_copy.results | map(attribute='files') | list }}"
fetchとwith_fileglobを組み合わせればまとめてかけるんじゃないかと思いましたが、
withモジュール系はリモート先でしか使えないためできませんでした。。。
何か別でいい方法があれば教えて欲しいです。
Discussion