chefでレシピ中の変数をtemplateで展開する
chefでレシピ中の変数をtemplateで展開する
複数のにたような仮想ホスト(apacheの)を作成する用事。eachで回して、その変数をtemplate中でも利用する。
variablesを利用するといいみたい。
レシピ中でvariableで変数を設定する
%w(a b c d e}.each do |item| template #{item}.conf path "/usr/local/apache2/conf/#{item}.conf source "temp.conf.erb" owner "root" group "root" variables ({ :item => item }) end end
:item => itemってところが変数をいれているところです。このケースだとループで作成している変数を格納していますが、node値も当然設定可能。
テンプレート
テンプレート側でこんなふうに展開。
<VirtualHost *:443> ServerName <%= @item %>.example.com
<%= @item %>のところに展開されます。
variableで複数設定可能。その場合はコンマで分割する。