HEARTBEATS

セキュリティテストプラットフォームMinion最速ガイド4

   

前回はこちら→セキュリティテストプラットフォームMinion最速ガイド3

こんにちは。こんばんは。CTOの馬場です。

OSSのセキュリティテストプラットフォームのガイドの第4回です。

マニアックなのは自覚しています。

今回はProduction環境の設定をしてみましょう。

環境は nginx(https) + supervisord

minion標準の環境は nginx(https) + supervisord です。
supervisord + virtualenv + gunicorn/celery で動かします。

なお、あらかじめnginx, supervisord用の設定ファイルが用意されているので、それをもとに構築してみます。

段取りとしては

  1. nginxをインストールして自己証明書を発行
  2. supervisordをインストール
  3. minion用設定ファイルを用意

その他検証環境はこんな感じ。

  • Ubuntu 12.04 Server LTS 64bit
  • minion起動ユーザ: minion
  • minionインストールディレクトリ: /home/minion/minion/{minion-frontend,minion-backend}
  • minion設定ディレクトリ: /etc/minion

nginxをインストールして自己証明書を発行

↓でできます。

sudo apt-get -y install nginx
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl genrsa -des3 -out server.key 1024

sudo openssl req -new -key server.key -out server.csr

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
sudo mv server.key /etc/ssl/private/${MINION_FRONTEND_HOST:?}.key
sudo mv server.crt /etc/ssl/private/${MINION_FRONTEND_HOST:?}.crt

これができたら

service nginx restart

してHTTPSアクセスできるようになればok! 簡単ですね!

※nginxよくわからん、という方はこちらもどうぞ
 →nginx連載1回目: nginxの紹介 - インフラエンジニアway - Powered by HEARTBEATS

supervisordをインストール

↓これだけ

sudo apt-get -y install supervisor

簡単ですね!

設定ファイルの用意

nginxは設定ファイルのサンプルが ${MINION_HOME:?}/minion-frontend/etc/minion-dev-server.nginx.conf にあるので、これを参考に自分用のものを作ります。

supervisordは設定ファイルのサンプルが ${MINION_HOME}/{minion-frontend,minion-backend}/etc/*.supervisor.conf にあります。
これをもとに下記の変更を実施してます。

  • 実行ユーザをminionに変更
  • 作業ディレクトリを ${MINION_HOME}/minion-{frontend,backend} に変更
  • minion-frontendの設定ファイル( frontend.json )を用意
  • gunicornとceleryをvirtualenv環境下で実行できるようにラッパーを用意
  • supervisordから直接gunicorn、celeryを起動するようにする
    • ${MINION_HOME}/env/bin/minion-*-worker 経由だとsupervisordとの親子関係が切れてしまうので

具体的な手順はこちら
mozilla minion production config files

あと、この手順で生成したファイルをgistに貼っておきました。

簡単ですね!ぜひ使ってください!!誰か!!!

株式会社ハートビーツの技術情報やイベント情報などをお届けする公式ブログです。



ハートビーツをフォロー

  • Twitter:HEARTBEATS
  • Facebook:HEARTBEATS
  • HATENA:HEARTBEATS
  • RSS:HEARTBEATS

殿堂入り記事