template モジュール

2019/03/18

Ansible

 Ansible Documentation

template – Templates a file out to a remote server

 機能

  • 管理サーバーから対象ホストへファイル(テンプレートファイル)をコピーする
  • テンプレートファイルは jinja2 形式で記述し、ファイル拡張子は .j2 にする
  • テンプレートファイルに変数を埋め込むことができ、埋め込んだ変数はコピー時に展開される

 パラメータ

パラメータ選択肢/
Default
説明
backupno
・ 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]#

カテゴリー

目次

QooQ