我想在我的一个开源rails应用程序(v 3.2.12)上安装New Relic。我不想在回购中拥有许可证密钥。我想用ENV之类的东西加载它。
默认情况下,它加载在newrelic.yml
文件中。
YAML文件在哪里加载?我想我可以手动将它与从ENV哈希加载许可证的哈希合并。
有关如何做到这一点的任何提示?
答案 0 :(得分:14)
我使用Figaro gem处理带有ENV
环境变量的密钥,与您类似。对于New Relic,我有:
config / application.yml (.gitignore
d并且未推送到源代码管理中)
# ...
NEW_RELIC_LICENSE_KEY: {{MY_KEY}}
然后在 config / newrelic.yml :
中引用# ...
license_key: <%= ENV['NEW_RELIC_LICENSE_KEY'] %>
一个名为 config / application.example.yml 的文件被推送到源代码仓库,其中包含将您自己的许可证密钥放入的说明:
<强>配置/ application.example.yml 强>
# ...
NEW_RELIC_LICENSE_KEY: # put your license key here
有关更多详细信息,请参阅StackOverflow Q&amp; A:
What should be removed from public source control in Ruby on Rails?
答案 1 :(得分:7)
我在IRC上得到了一个有用的答案。 newrelic.yml
是erb插值的。这意味着我可以将<%= ENV["NEWRELIC"] %>
添加到yml文件中。
答案 2 :(得分:0)
这并不一定能回答您提出的确切问题,但这可能会解决您的最终目标。
通常对于这种情况,我将newrelic.yml文件添加到.gitignore,然后创建一个newrelic.yml.example,其中填写了所有非敏感字段,并为该密钥占位。
通过这种方式,我可以将它添加到我的newrelic.yml文件中进行开发,并将模板签入以供其他人使用。