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

时间:2016-04-26 10:08:27

标签: ruby 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中用户定义的环境变量。

1 个答案:

答案 0 :(得分:0)

您可以使用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现在作为系统服务运行,或者如果没有定义环境变量怎么办?也许,有一种更清洁的方式来实现你的目标(如果我们知道的话......)。