【发布时间】:2013-09-27 11:55:55
【问题描述】:
我是 Chef 和 Ruby 的新手,我试图了解如何从特定 Linux/Windows 用户读取环境变量并使用它来放置文件。
我想做的是为客户端和数据库安装更新我们的 Oracle tnsnames.ora 文件。
这些文件可能位于 Windows 中的 C:\oracle 或 C:\Program Files\oracle 或 Linux 中的 /u01/app/oracle/product/11.2/network/admin 或 /u01/app/oracle/producdt/10.2/network/admin 之类的目录中。
如果不将环境变量读入配方并使用它,我不能 100% 确定我会知道确切的位置。
我正在阅读有关 #{ENV['HOME']} 的信息,但我不太清楚这是否是我想要使用的语法类型。
【问题讨论】:
-
使用
ENV['HOME'],而不是#{ENV['HOME']}。第二个仅适用于将其嵌入字符串中。您的代码必须以该用户身份运行才能读取其环境变量。 -
感谢您的反馈。当我在思考这个问题时,我在思考
recipes/default.rb和template代码块。template "#{ENV['ORACLE_HOME']}/network/admin/tnsnames.ora" do source "tnsnames.ora.erb" owner "oracle" group "dba" mode "0644" end虽然这看起来不太对...
标签: ruby environment-variables chef-infra chef-recipe knife