如何在厨师中使用用户定义的环境变量

how to use user defined environment variables in chef

我正在尝试在我的模板资源路径中使用用户定义的变量,如下所示。但我不确定如何在 chef 中检索用户定义的环境变量。请帮忙。

template "#{user_env_variable}/sys/test.xml" do  
  source "test.xml.erb"  
  owner user1  
  group user1  
  mode '0644'  
end  

user_env_variable.bashrc中用户定义的环境变量。

您可以使用 ENV 访问 ruby 中的环境变量,例如 ENV['PATH']。翻译成您的代码,这将是:

template "#{ENV['user_env_variable']}/sys/test.xml" do  
  source "test.xml.erb"  
  owner user1  
  group user1  
  mode '0644'  
end

请注意:我认为这样做是一种不好的做法。如果 chef-client 现在作为系统服务运行,或者如果未定义环境变量怎么办?可能有更简洁的方法来实现您的目标(如果我们知道的话......)。