我正在尝试在模板资源路径中使用用户定义的变量,如下所示。但我不知道如何在chef中检索用户定义的环境变量。请帮忙。
template "#{user_env_variable}/sys/test.xml" do
source "test.xml.erb"
owner user1
group user1
mode '0644'
end
user_env_variable
是.bashrc
中用户定义的环境变量。
答案 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现在作为系统服务运行,或者如果没有定义环境变量怎么办?也许,有一种更清洁的方式来实现你的目标(如果我们知道的话......)。