ChefのRecipeでよく使う機能 その2

投稿者: | 2016年5月23日

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」で宣言します。
これらの機能についてはまた別の機会に説明します。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA