代码之家  ›  专栏  ›  技术社区  ›  shedd

Rails-基于主机名为插件提供许可证密钥

  •  3
  • shedd  · 技术社区  · 16 年前

    New Relic接受许可证密钥的环境变量:

    license_key: <%= ENV['NEWRELIC_ACCOUNT_KEY'] %>
    

    这两个环境都是从相同的Git存储库、相同的源代码库中部署的,因此我无法在每次部署的代码中真正更改它——最好能够以某种方式动态定义环境变量。

    任何想法都将不胜感激!谢谢!

    3 回复  |  直到 14 年前
        1
  •  4
  •   rkb    14 年前

    New Relic Ruby代理将解析 newrelic.yml 在将配置文件解析为YAML之前,将其命名为ERB。因此,您可以使用许多巧妙的技巧,例如:

    production:
      license_key: <%= Socket.gethostname == 'mission-critical.example.com' ? 'PAID_ACCOUNT_LICENSE_KEY' : 'FREE_LITE_ACCOUNT_LICENSE_KEY' %>
    

        2
  •  2
  •   Steve Graham    16 年前

    您是否为登台创建了单独的环境?i、 e.开发、测试、生产和分期? See here 请示

    这样做之后,可以在中指定该环境的行为 config/newrelic.yml

    common: &default_settings
      license_key: 'PASTE_YOUR_KEY_HERE'
      …
    
    development:
      enabled: false
      …
    
    test:
      enabled: false
      …
    
    production:
      enabled: true
      …
    
    staging: 
      enabled: false
      …
    

        3
  •  0
  •   BJ Clark    16 年前

    主机名仅在请求对象中可用,因此不,在rails构建环境时它不可用。

    我只需要设置您的staging部署脚本,将production.rb复制到staging.rb,然后在“staging”中启动应用程序。另一种技术是不将newrelic.yml保留在scm中,而是将其从其他地方复制或链接到当前部署目录。