2016-04-03 9 views
0

私はattributes/default.rb内の属性があります。シェフ:変数からテンプレート '名前'を入力しますか?

default["host_name"] = "domain.com" 

を、その属性からホスト名を持つnginxののconfigを作成したい:

... 
template "/etc/nginx/conf.d/#{@host_name}.conf" do 
    source 'domain.conf.erb' 
    owner 'root' 
    group 'root' 
    mode '0644' 
end 
... 

しかし、ビルド時に - シェフはhost_nameを見ることができない。

... 
[14:18:28][Step 1/1] Recipe: nginx_proxy::default 
[14:18:28][Step 1/1] * template[/etc/nginx/conf.d/.conf] action create 
[14:18:28][Step 1/1]  - create new file /etc/nginx/conf.d/.conf 
[14:18:28][Step 1/1]  - update content in file /etc/nginx/conf.d/.conf rom none to cc9a26 
... 

ここで何が間違っていますか?それはまったく達成できますか?

のシェフのドキュメントでは、「ダイナミック」については何も言わないnameです。

答えて

1

nodeオブジェクトをaccess its attributesにする必要があります。 @host_nameでアクセスしようとしているのはローカル変数です。

次のように動作するはずです:

template "/etc/nginx/conf.d/#{node['host_name']}.conf" do 
    source 'domain.conf.erb' 
    owner 'root' 
    group 'root' 
    mode '0644' 
end 
関連する問題