在Chef中读取特定于用户的环境变量

时间:2013-06-21 04:30:00

标签: ruby environment-variables chef chef-recipe knife

我是Chef和Ruby的新手,并试图了解如何从特定的Linux / Windows用户读取环境变量并使用它来放置文件。

我想要做的是更新我们的Oracle tnsnames.ora文件以进行客户端和数据库安装。

这些文件可能位于Windows中的C:\oracleC:\Program Files\oracle或Linux中的/u01/app/oracle/product/11.2/network/admin/u01/app/oracle/producdt/10.2/network/admin之类的目录中。

我无法100%确定如果没有将环境变量读入配方并使用它,我将知道确切的位置。

我正在阅读有关#{ENV['HOME']}但我无法弄清楚这是否是我想要使用的语法类型。

1 个答案:

答案 0 :(得分:0)

Ruby has a native method for doing this。我怀疑

template "#{Dir.home("oracle")}/network/admin/tnsnames.ora" do
    source "tnsnames.ora.erb"
    [...]
end

将大致做你想要的。这只有当除了主目录的位置之外的操作系统之间没有区别时才有效。