スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

puppet の templateで奇妙な挙動

puppetのtemplateで奇妙な挙動を発見。
テンプレート中で
<% name ||= 'default_name' %>

などと、変数のデフォルト値を設定しようとすると、manifestでどう書いてもdefault_nameが代入されてしまう。
しかも、
<%=name%>
<% name ||= 'default_name' -%>
<%=name%>
class xxx{
$name = 'true_name'
file{
content => template('test.erb')
}
}

とすると、
true_name
default_name

なんて生成される。(erbを直接rubyから実行するとtrue_nameが2回生成される)
puppet wikiを参考に
<% name = 'aaa' unless has_variable?('name') 

とすると、なぜかnameがnilになってしまう。

なぜ???
とりあえず、
<%
if has_variable?('name')
name2 = name
else
name2 = 'default_name'
end
%>
とし、name2を使えば問題が回避できた。
スポンサーサイト

コメント

非公開コメント

プロフィール

fchiba

Author:fchiba
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。