Ansible Documentation
template – Templates a file out to a remote server機能
- 管理サーバーから対象ホストへファイル(テンプレートファイル)をコピーする
- テンプレートファイルは jinja2 形式で記述し、ファイル拡張子は .j2 にする
- テンプレートファイルに変数を埋め込むことができ、埋め込んだ変数はコピー時に展開される
パラメータ
パラメータ | 選択肢/ Default | 説明 |
---|---|---|
backup | ・ no ・ yes | コピー先に dest: で指定したファイルが存在するとき、コピー前にそのファイルのバックアップを作成するかどうか指定する ・ no : 作成しない ・ yes : 作成する |
dest ※必須※ | - | コピー先のファイル名 |
force | ・ no ・ yes | コピー先に dest: で指定したファイルが存在する場合、上書きするかどうか指定する ・ no : 上書きしない(コピーしない) ・ yes : 内容が異なる場合に上書きする |
group | - | コピー後のファイルのグループを指定 |
mode | - | コピー後のファイルのパーミッションを指定する。パーミッションは先頭に 0 を付けた 8 進数で 0644 や 01777 のように指定する。先頭に 0 を付けない場合 '644' や '1777' のようにシングルクォートでくくる。 u+rwx や u=rw,g=r,o=r のようなシンボリックモードで指定することもできる |
owner | - | コピー後のファイルのオーナーを指定 |
src ※必須※ | - | 絶対パスまたは相対パスで指定したコピー元のファイル名 |
validate | - | コピーする前にファイルの内容を検証するコマンド。ファイル名は引数 %s に設定されてコマンドに渡される |
例
playbook- name: ユーザーごとの sudoers ファイルを作成する。作成前にファイルの内容が正しいかチェックする template: src: ./sample.j2 dest: /etc/sudoers.d/{{ item }} mode: 0440 owner: root group: root validate: '/usr/sbin/visudo -cf %s' loop: - maeda - hattori - sanadaテンプレートファイル : sample.j2
{{ item }} ALL=(ALL:ALL) NOPASSWD: ALL実行結果
[root@node1 sudoers.d]# ls -al
total 24
drwxr-x---. 2 root root 48 Mar 18 21:00 .
drwxr-xr-x. 74 root root 8192 Mar 18 20:30 ..
-r--r-----. 1 root root 36 Mar 18 21:00 hattori
-r--r-----. 1 root root 34 Mar 18 21:00 maeda
-r--r-----. 1 root root 35 Mar 18 21:00 sanada
[root@node1 sudoers.d]# cat hattori
hattori ALL=(ALL:ALL) NOPASSWD: ALL
[root@node1 sudoers.d]# cat maeda
maeda ALL=(ALL:ALL) NOPASSWD: ALL
[root@node1 sudoers.d]# cat sanada
sanada ALL=(ALL:ALL) NOPASSWD: ALL
[root@node1 sudoers.d]#