安装New Relic而不向repo添加许可证密钥

Cyr*_*rus 11 ruby ruby-on-rails ruby-on-rails-3 newrelic

我想在我的一个开源rails应用程序上安装New Relic(v 3.2.12).我不想在回购中拥有许可证密钥.我想用ENV之类的东西加载它.

默认情况下,它已加载到newrelic.yml文件中.

YAML文件在哪里加载?我想我可以手动将它与从ENV哈希加载许可证的哈希合并.

有关如何做到这一点的任何提示?

Pau*_*nti 14

我使用Figaro gem来处理带有ENV环境变量的密钥,类似于你.对于New Relic,我有:

config/application.yml(.gitignored而不是推送到源代码控制)

# ...
NEW_RELIC_LICENSE_KEY: {{MY_KEY}}
Run Code Online (Sandbox Code Playgroud)

然后在config/newrelic.yml中引用:

# ...
license_key: <%= ENV['NEW_RELIC_LICENSE_KEY'] %>
Run Code Online (Sandbox Code Playgroud)

一个名为config/application.example.yml的文件被推送到源代码仓库,其中包含将您自己的许可证密钥放入以下内容的说明:

配置/ application.example.yml

# ...
NEW_RELIC_LICENSE_KEY: # put your license key here
Run Code Online (Sandbox Code Playgroud)

另请参阅StackOverflow问答以获取更多详细信息:Ruby on Rails中应从公共源代码控制中删除哪些内容

  • 由于许可证密钥["用于在代理连接到<New Relic>服务器时找到正确的帐户以存储数据"](https://docs.newrelic.com/docs/ruby/ruby-agent-configuration) ,我会说是的,有你的许可证密钥的人可以使用它来填充虚假信息的New Relic,从而降低服务质量.New Relic不会发布许可证密钥,但会[在您的帐户设置页面](https://docs.newrelic.com/docs/subscriptions/license-key)保密[(受您的帐户密码保护),所以我认为这是最好保持私密和公共存储库. (2认同)

Cyr*_*rus 7

我在IRC上得到了一个有用的答案.newrelic.yml是插值的.意思是我可以添加<%= ENV["NEWRELIC"] %>到yml文件.