2013-02-13 6 views
11

Ich möchte New Relic auf einer meiner Open-Source-Rails-Anwendungen installieren (v 3.2.12). Ich möchte den Lizenzschlüssel nicht im Repo haben. Ich möchte es mit etwas wie ENV laden.Installation von New Relic ohne Hinzufügen eines Lizenzschlüssels zum Repo

Standardmäßig wird diese Datei in die Datei newrelic.yml geladen.

Wo wird die YAML-Datei geladen? Ich denke, ich könnte es manuell mit einem Hash zusammenführen, der die Lizenz aus dem ENV-Hash lädt.

Irgendwelche Hinweise, wie man das macht?

Antwort

14

Ich verwende die Figaro gem, um geheime Schlüssel mit ENV Umgebungsvariablen zu behandeln, die Ihnen ähnlich sind. Für New Relic, ich habe:

config/application.yml (.gitignore d und nicht zur Quellcodeverwaltung geschoben)

# ... 
NEW_RELIC_LICENSE_KEY: {{MY_KEY}} 

, die dann in config/newrelic.yml verwiesen wird:

Eine Datei mit dem Namen config/application.example.yml wird in den Quellcode Repo mit Anweisungen gebracht, um Sie zu setzen r eigene Lizenzschlüssel in:

config/application.example.yml

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

Siehe auch diese Stackoverflow Q & A für weitere Informationen:
What should be removed from public source control in Ruby on Rails?

+0

Ist es wichtig, diese Lizenz zu halten setzen verwenden Schlüssel Geheimnis? Was können Menschen tun, wenn sie diesen Schlüssel erhalten, New Relic mit falschen Informationen füllen? – joscarsson

+2

Da der Lizenzschlüssel ["verwendet wird, um das korrekte Konto zum Speichern von Daten zu finden, wenn der Agent eine Verbindung zu Servern herstellt"] (https://docs.newrelic.com/docs/ruby/ruby-agent-configuration), I würde sagen, dass jemand mit Ihrem Lizenzschlüssel diese verwenden könnte, um New Relic mit falschen Informationen zu füllen, was die Qualität Ihres Dienstes verschlechtert. New Relic veröffentlicht keine Lizenzschlüssel, sondern hält sie geheim [auf der Seite mit den Kontoeinstellungen] (https://docs.newrelic.com/docs/subscriptions/license-key) (geschützt durch Ihr Kontopasswort), also denke ich, dass es das ist am besten halten Sie es privat und aus öffentlichen Repositories. –

7

Ich habe eine nützliche Antwort auf IRC erhalten. newrelic.yml ist erb interpoliert. Bedeutung Ich kann einfach <%= ENV["NEWRELIC"] %> der Yml-Datei hinzufügen.

0

Dies beantwortet nicht unbedingt die genaue Frage, die Sie stellen, aber dies kann Ihr Endziel lösen.

Normalerweise für diese Art von Situation Ich füge die newrelic.yml-Datei zu .gitignore und dann ein newrelic.yml.example mit allen nicht-sensiblen Felder ausgefüllt und einen Platzhalter für den Schlüssel.

Auf diese Weise kann ich es in meine newrelic.yml-Datei für die Entwicklung hinzufügen und auch die Vorlage für andere Benutzer eingecheckt haben.

3

Ja zu den oben genannten Antworten. auch, wenn Sie auf Heroku sind. Nach dem NewRelic Addon installieren, können Sie newrelic.yml Datei herunterladen und license_key: ändern:

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

Das den NEW_RELIC_LICENSE_KEY env Variable vom NewRelic addon

Verwandte Themen