2013-02-13 7 views
11

Chcę zainstalować New Relic na jednej z moich aplikacji szyny open source (v 3.2.12). Nie chcę mieć klucza licencyjnego w repozytorium. Chciałbym załadować go czymś takim jak ENV. Domyślnie jest załadowany do pliku newrelic.yml.Instalowanie nowego reliksu bez dodawania klucza licencyjnego do repo

Gdzie jest załadowany ten plik YAML? Sądzę, że mógłbym ręcznie połączyć go z hashem, który ładuje licencję z hasha ENV.

Jakieś wskazówki, jak to zrobić?

Odpowiedz

14

Używam Figaro gem do obsługi tajnych kluczy ze zmiennymi środowiskowymi ENV, podobnymi do ciebie. Dla New Relic, mam:

config/application.yml (.gitignore D i nie jest wciśnięty do kontroli źródła)

# ... 
NEW_RELIC_LICENSE_KEY: {{MY_KEY}} 

który następnie odwołuje się config/newrelic.yml:

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

Plik o nazwie config/application.example.yml zostaje przekazany do repozytorium kodu źródłowego z instrukcją R własny klucz licencyjny w:

config/application.example.yml

# ... 
NEW_RELIC_LICENSE_KEY: # put your license key here 

zobaczyć także ten StackOverflow Q & A po więcej szczegółów:
What should be removed from public source control in Ruby on Rails?

+0

Czy to ważne, aby zachować tę licencję klucz tajny? Co ludzie mogą zrobić, jeśli dostaną ten klucz, wypełnią New Relic fałszywymi informacjami? – joscarsson

+2

Ponieważ klucz licencyjny ["służy do zlokalizowania właściwego konta do przechowywania danych, gdy agent łączy się z serwerami "] (https://docs.newrelic.com/docs/ruby/ruby-agent-configuration), I Powiedziałbym, że tak, ktoś z twoim kluczem licencyjnym może użyć go do wypełnienia New Relic fałszywymi informacjami, pogarszając jakość twojej usługi. New Relic nie publikuje kluczy licencyjnych, ale utrzymuje je w tajemnicy [na stronie ustawień twojego konta] (https://docs.newrelic.com/docs/subscriptions/license-key) (chronione hasłem twojego konta), więc myślę, że to najlepiej zachować prywatność i wyłączyć ogólnodostępne repozytoria. –

7

Dostałem użyteczną odpowiedź na IRC. newrelic.yml jest interpolowany przez erb. Czy mogę po prostu dodać <%= ENV["NEWRELIC"] %> do pliku yml.

0

To niekoniecznie odpowiada dokładnie na pytanie, które zadajesz, ale może to rozwiązać twój cel końcowy.

Zwykle dla tego typu sytuacji dodam plik newrelic.yml do pliku .gitignore, a następnie utworzę plik newrelic.yml.example z wszystkimi niewiążącymi polami, które są wypełnione, oraz miejscem na klucz.

W ten sposób mogę dodać go do mojego pliku newrelic.yml do programowania, a także mieć szablon zaznaczony do użycia przez innych.

3

Tak, aby powyższych odpowiedzi. także, jeśli jesteś na Heroku. Po zainstalowaniu NewRelic Addon, można pobrać newrelic.yml plik i zmienić license_key: do:

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

ten użyje NEW_RELIC_LICENSE_KEY env zmiennej ustawionej przez dodatek NewRelic

Powiązane problemy