ChefのRecipeでよく使う機能 その2
前回に引き続きChefでよく使う機能についての使い方を説明します。
今回説明する機能は「template」についてです。
templeteはファイルをリモートサーバに配置する機能になります。
前回説明したcookbook_fileと似た機能になります。
templeteはファイルを配置に加えて、ファイルの中身に変数を埋め込むことができます。
どのように埋め込むかはテンプレートを使って定義します。
テンプレートは「templates」に配置します。
まずはレシピの書き方です。
template "{配置先のパス}" do owner "{ユーザー}" group "{グループ}" mode "{パーミッション}" source "{テンプレートのパス}" variables({ :{変数名} => {値} }) end
続いてテンプレートの書き方です。
<%= @{変数名} %>
使用例は下記のようになります。
下記の例ではテンプレートに変数を埋め込みリモートサーバに配置しています。
テンプレートは「templates/wildfly/standalone.xml.erb」を使用しています。
template "/opt/wildfly10/standalone/configuration/standalone.xml" do owner "wildfly" group "wildfly" mode 0644 source "wildfly/standalone.xml.erb" variables({ :min_pool_size => 20, :max_pool_size => 50 }) end
上記のレシピから呼び出すテンプレートの例です。
<min-pool-size><%= @min_pool_size %></min-pool-size> <max-pool-size><%= @max_pool_size %></max-pool-size>
通常、テンプレートを使用する場合は動的変数を使用します。
動的変数は「attributes」や「environments」で宣言します。
これらの機能についてはまた別の機会に説明します。