[英]Chef: template 'name' from variable?
我在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
...
但是在構建過程中host_name
看不到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
...
怎么了 可以實現嗎?
Chef的文檔沒有提及template
“動態” name
。
您需要使用node
對象來訪問其屬性 。 您嘗試使用@host_name
訪問的是本地變量。
以下應該工作:
template "/etc/nginx/conf.d/#{node['host_name']}.conf" do
source 'domain.conf.erb'
owner 'root'
group 'root'
mode '0644'
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.