2016-02-29 9 views
6

Sto rilevando una vecchia app Rails. Nessuno l'ha toccato in un anno. L'ultimo sviluppatore è partito nell'aprile del 2015 e non ho modo di contattarlo. Ho accesso ssh al server, e ho accesso al repository Github.Come vedo le vele ENV in un'app Rails?

Non conosco nomi utente/password.

Se SSH per il server e mi gatto il file database.yml, vedo cose come:

staging: 
     adapter: mysql2 
     encoding: utf8 
     pool: 5 
     socket: /var/lib/mysql/mysql.sock 
     database: o_wawa_stage 
     username: wawa_stage 
     password: <%= ENV['STAGE_DATABASE_PASSWORD'] %> 
     host: access.dmedia.com 

Se corro il "printenv" comando quindi non vedo nessuno di questi Vars. Presumo che vengano caricati solo dall'ambiente Rails.

Credo di poter modificare i modelli per sputare i valori con un mucchio di istruzioni "put", ma penso che ci sia un modo più ovvio per farlo, oltre a stampare i dati dove il pubblico potrebbe Guardalo?

Se provo a fare funzionare "binari console" ottengo:

Rails Error: Unable to access log file. Please ensure that /var/www/haha/production/releases/20150118213616/log/development.log exists and is writable (ie, make it writable for user and group: chmod 0664 /var/www/haha/production/releases/20150118213616/log/development.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed. 

non ho sudo su questa casella, quindi non posso affrontare l'errore.

risposta

5

Supponendo che l'ambiente di staging, come i punti di esempio per. Dovrai caricare la console anteponendo la variabile d'ambiente RAILS_ENV al comando rails console.

RAILS_ENV=staging rails console 

Questo dovrebbe ottenere in. Una volta che siete in, si può solo accedere direttamente alla variabile ENV.

2.2.2 (main):0 > ENV 

E questo scaricherà le variabili di ambiente per voi. Nota, la tua richiesta potrebbe essere diversa. Se si desidera accedere a un valore specifico, ad esempio la password del database, è possibile:

2.2.2 (main):0 > ENV['STAGE_DATABASE_PASSWORD'] 
+0

C'è un modo per dire a "console rails" dove trovare il log? Il log è in "/ var/www/wawa/production/shared/log" ma la console di rails lo sta cercando in "/ var/www/wawa/production/log" e genera un errore perché non riesce a trovarlo . – lorm

+0

Dai uno sguardo all'interno di config/application.rb e config/enivornments/production.rb per qualsiasi riga che assomigli a 'config.logger'.Di solito si trova in uno di questi due file in cui la configurazione di registrazione viene sovrascritta. Anche http://guides.rubyonrails.org/configuring.html potrebbe essere utile. –

0

yourapp/config/env.yml o application.yml ecc ...

Cercare codice simile

AWS_KEY_ID: blahblah23rkjewfojerflbah 
AWS_SECRET_KEY_ID: blahblah2394082fkwejfoblah 
+0

Questo sarebbe vero solo se stessimo utilizzando la gemma Figaro, sì? – lorm

+0

Questo non restituisce nulla: trovare. -name application.yml – lorm

+0

Questo non restituisce nulla: trovare. -name env.yml – lorm