簡體   English   中英

Chef:來自變量的模板“名稱”?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM