16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Foreman で機密な認証キーなど機密な情報を管理する

Posted at

Foremanとは

簡単に言うと、下記のことが出来る

  • バックグラウンドで動くプロセスの管理
  • 必要な環境変数の管理

環境

Ruby 2.0.0-p0
Rails 4.0.0.rc1

インストール

gem 'foreman'
  • bundle install を実行

使い方

  • 必要な環境変数を .env ファイルに
.env
TW_KEY=asdflaksjzxocuv
TW_SECRET=lkzjxcljvoiuqewrnzoixcvulansdflasdljf
  • 起動したいプロセスを設定ファイルに
web: bundle exec rails server thin -p $PORT
  • foreman startで設定したプロセスを起動する

  • .envファイルに書いた内容を環境変数に設定してくれるイメージなので、ソースには、普通にENV['TW_KEY']を書けば値を取得出来る

ハマったこと

foreman start を実行しても、リアルタイムのログが出てこない

現象

  • 11:59:32 web.1 | started with pid 22383以外は、他は何のログ的なものが出てこない

原因

  • Ruby デフォルトが stdout をキャッシュしているせいですって
  • Foreman missing outputを参照

解決方法

  • [Rails.root]/config.ru に上記リンクにオプションを追加すればOK
config.ru
...
# 下記の行を追加
$stdout.sync = true
  • これで、foreman start を実行すると、下記のように、お馴染みの Rails 起動されるログが出てくる
11:59:32 web.1  | started with pid 22383
11:59:36 web.1  | => Booting Thin
11:59:36 web.1  | => Rails 4.0.0.rc1 application starting in development on http://0.0.0.0:3000
11:59:36 web.1  | => Run `rails server -h` for more startup options
11:59:36 web.1  | => Ctrl-C to shutdown server
11:59:36 web.1  | >> Thin web server (v1.5.1 codename Straight Razor)
11:59:36 web.1  | >> Maximum connections set to 1024
11:59:36 web.1  | >> Listening on 0.0.0.0:3000, CTRL+C to stop

!!注意!!

  • .envファイルの内容はgitなどに追加しちゃうのはダメなので、.envgitの無視リストに追加するほうが
  • config.re に追加した1行は、他に影響があるかどうかは調べてないので、自己責任で

補足

  • Procfileについて

    • web: はラベル的なものなので、自分が好きなものでいい
    • Heroku でも使える為に -p $PORT オプションを付いていますが、 Heroku でない場合は、普通に bundle exec rails server 書けばOK。詳細の設定については、参考リンクのHeroku profileを参照
  • foreman checkで設定内容をチェック出来る。valid procfile detected…の文言が出来ればOK

参考

16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?