2013-02-13 3 views
11

Я хочу установить новую реликвию на одном из моих приложений с открытым исходным кодом (v 3.2.12). Я не хочу иметь лицензионный ключ в репо. Я хотел бы загрузить его с чем-то вроде ENV.Установка новой реликвии без добавления лицензионного ключа для репо

По умолчанию это загружено в файл newrelic.yml.

Где загружен файл YAML? Я думаю, я мог бы вручную объединить его с хешем, который загружает лицензию из хэша ENV.

Любые подсказки о том, как это сделать?

ответ

14

Я использую Figaro gem для обработки секретных ключей с помощью переменных окружения ENV, похожих на вас. Для Нового Relic, у меня есть:

конфигурация/application.yml (.gitignore d и не скатывались в системе управления версиями)

# ... 
NEW_RELIC_LICENSE_KEY: {{MY_KEY}} 

который затем ссылается в конфигурации/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 & А для получения более подробной информации:
What should be removed from public source control in Ruby on Rails?

+0

Важно сохранить эту лицензию ключевой секрет? Что могут люди делать, если они получают этот ключ, заполняют новую реликвию ложной информацией? – joscarsson

+2

Поскольку лицензионный ключ ["используется для поиска правильной учетной записи для хранения данных, когда агент подключается к серверам "] (https://docs.newrelic.com/docs/ruby/ruby-agent-configuration), я сказал бы, что да, кто-то с вашим лицензионным ключом мог бы использовать его, чтобы заполнить New Relic ложной информацией, ухудшив качество вашего сервиса. Новая Relic не публикует лицензионные ключи, но сохраняет их в тайне [на странице настроек вашего аккаунта] (https://docs.newrelic.com/docs/subscriptions/license-key) (защищена паролем вашей учетной записи), поэтому я думаю, что это лучше сохранить его в частных и открытых публичных хранилищах. –

7

Я получил полезный ответ на IRC. newrelic.yml - интерполяция erb. Значение Я могу просто добавить <%= ENV["NEWRELIC"] %> в yml-файл.

0

Это не обязательно отвечает на точный вопрос, который вы задаете, но это может решить вашу конечную цель.

Обычно для этого типа ситуации я добавляю файл newrelic.yml в .gitignore, а затем создаю newrelic.yml.example со всеми заполненными нечувствительными полями и держателем места для ключа.

Таким образом, я могу добавить его в свой файл newrelic.yml для разработки, а также установить шаблон для других.

3

Да для вышеуказанных ответов. также, если вы на Heroku. После установки NewRelic аддона, вы можете скачать newrelic.yml файл и изменить license_key: на:

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

Это будет использовать NEW_RELIC_LICENSE_KEY переменной ENV установленного аддоном NewRelic

Смежные вопросы