0
シェフを使用して、デフォルトの属性ファイルからテンプレートに情報を取得しようとしています。現在、私はこれを持っています:シェフテンプレートで属性を使用しようとしています
# attributes/default.rb
default['environment']['extrahosts'] = [ 'hostname1:address1', 'hostname2:address2' ]
#recipes/default.rb
extra_hosts = node[:environment][:extrahosts]
...
...
template '/blahblah' do
source 'blahblah.erb'
variables(:extra_hosts => extra_hosts)
end
#templates/blahblah.erb
<% for @item in @extra_hosts %>
- <%= @item %>
<% end %>
これは動作しません。私は何を得て、私のテンプレートに追加します:
- hostname1:address1
- hostname2:address2
ご返信ありがとうございます。 :)それは動作します。しかし、それは私が追加する場合にのみ動作します: <%node [:environment] [:extrahosts] .each do | item | %> extra_hosts = node [:environment] [:extrahosts] ...アトリビュートの内容を取得して配列として入れるのではないのですか? マイテンプレート部分は、読み取ります テンプレート「/ blahblahは」 ソース「blahblah.erb」 変数ん(:extra_hosts => extra_hosts)あなたが持っている何 エンド –
は(タイプミスのためのダブルチェックが)全体的に正しいですが、あなたはしている場合何らかの収束時間を経てノード属性を設定すると、問題が発生する可能性があります。 – coderanger
'extra_hosts'の値をログリソース経由でレシピコードに記録することができます。 – coderanger