我在attributes/default.rb
中有一个属性:
default["host_name"] = "domain.com"
并希望使用该属性的主机名创建NGINX的配置:
...
template "/etc/nginx/conf.d/#{@host_name}.conf" do
source 'domain.conf.erb'
owner 'root'
group 'root'
mode '0644'
end
...
但在构建过程中 - Chef无法看到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}}。
答案 0 :(得分:2)
您需要使用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