Ansible ～copyモジュール～


Ansible Documentationのcopyモジュールの内容のメモです。

# Ansible Documentation

## 概要
- コピーモジュールはローカルにあるファイルをリモートにコピーする。

## オプション
|頻度|パラメータ     |必須|デフォルト値      |選択肢                                               |説明                                                                      |
|:--:|:--------------|:--:|:----------------:|:---------------------------------------------------:|:-------------------------------------------------------------------------|
|    |backup         |no  |no                |yes<br>no                                            |コピー前に元ファイルのバックアップをタイムスタンプ情報を付加して取得する。|
|    |content        |no  |-                 |-                                                    |"src"の代わりに使われた場合、ファイルに規定値を設定する。(要確認)         |
|※  |dest           |yes |-                 |-                                                    |コピー先の絶対パスの指定。"src"で指定されたのがディレクトリの場合、"dest"もディレクトリにしなければならない。|
|    |directory_mode |no  |-                 |-                                                    |再帰的なコピーをする場合は、ディレクトリモードを設定する。設定されていない場合、システムのデフォルトを使用する。モードは新しく作成されたディレクトリに設定され、既に存在していたものには影響しない。(要確認というかよく分からん) |
|    |follow         |no  |no                |yes<br>no                                            |既にファイルが存在する場合置き換えない。(要確認)                       |
|    |force          |no  |yes               |yes<br>no                                            |デフォルトでyes。コピー先のファイルは置き換えられる。"no"にしたらコピー先にファイルが存在しない場合のみファイルがコピーされる。|
|※  |group          |no  |-                 |-                                                    |chownコマンドで設定できる所有者グループの設定。                        |
|※  |mode           |no  |-                 |-                                                    |chmodコマンドで設定できる権限設定。8進数の指定とシンボリックモード(例を参照)での指定が可能。|
|※  |owner          |no  |-                 |-                                                    |chownコマンドで設定できる所有者ユーザの設定。                          |
|    |selevel        |no  |s0                |-                                                    |selinuxのレベル。                                                      |
|    |serole         |no  |-                 |-                                                    |selinuxのロール。                                                      |
|    |setype         |no  |-                 |-                                                    |selinuxのタイプ。                                                      |
|    |seuser         |no  |-                 |-                                                    |selinuxのユーザ。                                                      |
|※  |src            |no  |-                 |-                                                    |ローカルにあるコピーするファイルのパス。絶対パス、相対パスでの指定が可能。ディレクトリの場合は、再帰的にコピーされる。パスが『/』で終わる場合、そのディレクトリ内のファイルがコピーされる。パスが『/』で終わっていない場合は、ディレクトリ自体がコピーされる。 |
|    |validate       |no  |-                 |-                                                    |コピー前に実行される検証コマンド。検証するファイルのパスは例のように『%s』で指定することが可能。|

## 例
```yaml:example.yml
# Example from Ansible Playbooks
- copy: src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo group=foo mode=0644

# The same example as above, but using a symbolic mode equivalent to 0644
- copy: src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo group=foo mode="u=rw,g=r,o=r"

# Another symbolic mode example, adding some permissions and removing others
- copy: src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo group=foo mode="u+rw,g-wx,o-rwx"

# Copy a new "ntp.conf file into place, backing up the original if it differs from the copied version
- copy: src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes

# Copy a new "sudoers" file into place, after passing validation with visudo
- copy: src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'
```

# 参考
- Ansible Documentation  
http://docs.ansible.com/copy_module.html