templateモジュール自体はファイルコピーとほぼ同じなのだが、変数部分を置換後にコピーするというのが違い。
templateタスクの記載例はあるのだが、置換元のファイルの記載方法についてはあまりなかったようなのであげてみた。
下記例は/etc/hostsに変数hostnameに定義した値を展開してから、コピーするタスク。実施条件としてhostname変数があることも入れている。
# hosts - name: /etc/hosts setup template: src=hosts.j2 dest=/etc/hosts when: hostname is defined
hosts.j2の記載は置換部分をansibleと同じように{{ 変数名 }} で記載しておく。
127.0.0.1 {{ hostname }}.localdomain {{ hostname }} localhost localhost.localdomain
上記の場合はhostname変数が展開される。