web-dev-qa-db-ja.com

RailsアプリでENV変数を確認するにはどうすればよいですか?

私は古いRailsアプリを引き継いでいます。1年で誰もそれに触れていません。最後の開発者は2015年4月に去り、彼に連絡する方法がありません。私はsshアクセスを持っていますサーバー、そして私はGithubリポジトリにアクセスできます。

ユーザー名/パスワードがわかりません。

サーバーにsshしてdatabase.ymlファイルをcatすると、次のようになります。

  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

「printenv」コマンドを実行すると、これらの変数が表示されません。私はそれらがRails環境によってのみロードされると思います。

テンプレートを編集して一連の「put」ステートメントで値を吐き出すことができると思いますが、これを行うには、一般の人が見ることができるデータを印刷する以外に、もっと明白な方法が必要だと思いますか?

「Railsコンソール」を実行しようとすると、次のようになります。

  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.

このボックスにはSudoがないので、エラーに対処できません。

15
lorm

例が示すように、ステージング環境を想定しています。 Rails_ENV環境変数をRails consoleコマンドの前に追加して、コンソールをロードします。

Rails_ENV=staging Rails console

これであなたは理解できるはずです。いったん入ったら、ENV変数に直接アクセスできます。

2.2.2 (main):0 > ENV

そして、それはあなたのために環境変数をダンプします。注:プロンプトが異なる場合があります。データベースパスワードなどの特定の値にアクセスする場合は、次のことができます。

2.2.2 (main):0 > ENV['STAGE_DATABASE_PASSWORD']
15
Josh Deeden

アプリディレクトリ内で、Rails Console:

Rails c

次にプロンプ​​トで:

2.3.0 :001 > ENV

これにより、最後にエクスポートした環境のすべてのロード済み環境変数がリストされます。

申し訳ありませんが、これを投稿した後、著者はすでにRails console with errors ...を使用しようとしたことがわかりました...しかし、これは常に機能するはずです。printenvを要求したり、コンソール内の環境、あなたmustすべて大文字の「ENV」を使用

2
mr_soapdish

yourapp/config/env.ymlまたはapplication.ymlなど...

次のようなコードを探します

AWS_KEY_ID: blahblah23rkjewfojerflbah
AWS_SECRET_KEY_ID: blahblah2394082fkwejfoblah
0
Julian Guterman