2013-02-13 11 views
11

Voglio installare New Relic su una delle mie applicazioni open source rails (v 3.2.12). Non voglio avere la chiave di licenza nel repository. Mi piacerebbe caricarlo con qualcosa come ENV.Installazione di New Relic senza aggiungere la chiave di licenza per repo

Per impostazione predefinita viene caricato nel file newrelic.yml.

Dove viene caricato il file YAML? Immagino di poterlo unire manualmente con un hash che carica la licenza dall'hash ENV.

Eventuali suggerimenti su come farlo?

risposta

14

Uso lo Figaro gem per gestire le chiavi segrete con le variabili di ambiente ENV simili a voi. Per New Relic, ho:

config/application.yml (.gitignore D e non spinto a controllo del codice sorgente)

# ... 
NEW_RELIC_LICENSE_KEY: {{MY_KEY}} 

che viene poi fatto riferimento nel config/newrelic.yml:

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

Un file chiamato config/application.example.yml viene inviato al repository del codice sorgente con le istruzioni per inserirvi r proprio codice di licenza:

config/application.example.yml

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

Vedi anche StackOverflow Q & A per maggiori dettagli:
What should be removed from public source control in Ruby on Rails?

+0

E 'importante mantenere questa licenza segreto chiave? Cosa possono fare le persone se ottengono questa chiave, riempiono New Relic con informazioni false? – joscarsson

+2

Poiché la chiave di licenza ["viene utilizzata per individuare l'account corretto in cui archiviare i dati in quando l'agente si connette ai server "] (https://docs.newrelic.com/docs/ruby/ruby-agent-configuration), I direi che sì, qualcuno con la tua chiave di licenza potrebbe usarlo per riempire New Relic con informazioni false, degradando la qualità del tuo servizio. New Relic non pubblica le chiavi di licenza ma le mantiene segrete [nella pagina delle impostazioni dell'account] (https://docs.newrelic.com/docs/subscriptions/license-key) (protetto dalla password dell'account), quindi penso che sia meglio tenerlo privato e fuori dai repository pubblici. –

7

Ho ottenuto una risposta utile su IRC. newrelic.yml è interpolato erb. Significato Posso solo aggiungere <%= ENV["NEWRELIC"] %> al file yml.

0

Questo non risponde necessariamente alla domanda esatta che stai chiedendo, ma questo potrebbe risolvere il tuo obiettivo finale.

In genere per questo tipo di situazione, aggiungo il file newrelic.yml a .gitignore e quindi creo un newrelic.yml.example con tutti i campi non sensibili compilati e un segnaposto per la chiave.

In questo modo posso aggiungerlo nel mio file newrelic.yml per lo sviluppo e avere il modello archiviato per altri utenti.

3

Sì per le risposte di cui sopra. Inoltre, se sei su Heroku. Dopo aver installato il NewRelic Addon, è possibile scaricare newrelic.yml di file e cambiare license_key: a:

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

Questa utilizzerà il NEW_RELIC_LICENSE_KEY variabile ENV stabilito dal addon NewRelic

Problemi correlati