LoginSignup
7
7

More than 5 years have passed since last update.

シンプルにファイルをとってくるAnsible Role

Last updated at Posted at 2016-10-26

その名の通り、ターゲットとなるサーバ上のファイルをとってくるRole "fetch-files" を作ってみました。
通常少なからずAnsibleのコードを書かなければなりませんが、取得に必要なファイルが決まってさえいれば直ぐに使えるようにしています。

fetch-files Role

Ansible Galaxy に上げています。
https://galaxy.ansible.com/tksarah/fetch-files/

Linux/Unix , Windows に対応

準備

  • Ansible 2.X 以上の入ったホスト(v2.1.2でテスト済み)
  • とってきたいファイルのリスト
sample_filelist.txt
/etc/ssh/sshd_config
/var/log/syslog
/etc/nsswitch.conf

使い方例

対象となるサーバのインベントリファイルを用意します。

hosts
[hoge]
192.168.0.1
[fuga]
192.168.0.2

Ansible Galaxy からロールをダウンロードします。

# ansible-galaxy install --roles-path ./roles tksarah.fetch-files

プレイブックを用意します。(以下そのまま使っていただくと便利です。)

site.yml
- name: Playbook for fetching files
  hosts: "{{ target }}"
  gather_facts: no

  vars_prompt:
    - { name: "target" , prompt: "Input target host" ,  default: all , private: no }
    - { name: "inputfile" , prompt: "Input your file list" , default: sample_filelist.txt , private: no }
    - { name: "savedir" , prompt: "Input a save directory" , default: fetched , private: no }

  roles:
    - tksarah.fetch-files

実行します。

# ansible-playbook -i hosts site.yml
Input target host [all]:(ターゲットホストを指定します。デフォルトはall)
Input your file list [sample_filelist.txt]:(取得したいファイルが書かれているファイルを指定します。)
Input a save directory [fetched]:(取得したファイルを保存するディレクトリを指定します。デフォルトはカレントのfetched)
PLAY [Playbook for fetching files] *********************************************
                           :
                           :
                           :
                           :
PLAY RECAP *********************************************************************
192.168.0.1            : ok=19   changed=6    unreachable=0    failed=0
192.168.0.2            : ok=17   changed=6    unreachable=0    failed=0

上記サンプルのプレイブックを使った時、とってきたファイルはカレントの「fetched」ディレクトリに格納されます。

# tree fetched
fetched
|-- 192.168.0.1
|   |-- etc
|   |   |-- nsswitch.conf
|   |   `-- ssh
|   |       `-- sshd_config
|   `-- var
|       `-- log
|           `-- syslog
|-- 192.168.0.2
|   |-- etc

以下も合わせて使うと効果的です。
シンプルにコマンド出力をとってくるAnsible Role(Unix/Linux版)
シンプルにコマンド出力をとってくるAnsible Role(Windows版)

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7