Play Framework2 on JavaをJenkins.warとGitでCIする その①(サーバ準備編)
概要
CentOS上に、Play Framework2 on JavaのCI環境を構築していきます。
長くなるので分割で。
もくじ
登場人物
- Play Framework 2.2
- Jenkins(Jenkins.war)
- Git
- CentOS 6.4 i386
コンセプト
- ポータブルに!
- 拡張性を持たせる!
構成、アーキテクチャ
構成
公式ドキュメントhttp://www.playframework-ja.org/documentation/2.1.5/HTTPServerにある、Apacheを使用した構成にします。
作成するサーバ群
- webサーバ・・・Apacheを使用。VirtualHost機能を使って内部サーバを公開。
- ポート転送設定
- 80 ← 9001(Play 本番)
- 50080 ← 8080(Jenkins)
- 50081 ← 9011(Play リハーサル環境)
- 50082 ← 9012(Play 開発環境)
- ポート転送設定
- 内部サーーバ
- APサーバ(Play 本番環境)・・・Playをprodモードで起動する。ポートは9001。
- APサーバ(Play リハーサル環境)・・・Playをprodモードで起動する。ポートは9011。
- APサーバ(Play 開発環境)・・・Playをprodモードで起動する。ポートは9012。
- Jenkins ・・・jenkins.war を起動。ポートはデフォルトの8080。
- Gitサーバ(git+ssh) ・・・Gitコマンドのみ。ポートは22。
手順その①:サーバ準備
今回はまず、ユーザアカウントの作成~httpdの設定まで。Git・Play・Jenkinsの設定は次回以降。
CentOSのインストール
CentOS-6.4-i386-minimal.iso からセットアップしました。最小構成。
ユーザの作成
作りたてなのでrootで入り、以下のユーザを作成。
- 管理用アカウント( -G wheel)
- playapp (本番アプリケーション起動ユーザ)
- playapp.master (リハーサルアプリケーション起動ユーザ)
- playapp.develop (開発アプリケーション起動ユーザ)
- ciuser (Jenkins用ユーザ)
- gituser (Gitサーバ用ユーザ)
|
|
※後で、機能単位で別サーバへ分割できるようにユーザを分けています
SSHの設定
以下の設定にしておく。細かい手順や設定内容は省略。
- 公開鍵認証のみ可能
- パスワード認証不可
- ルートログイン不可
今回必要なソフトのインストール
|
|
httpdの設定
テスト用のAPサーバとJenkinsへのポートをListenするようにする
|
|
※「Listen 80」の下に、下記3行を追加
- Listen 50080
- Listen 50081
- Listen 50082
各APサーバのVirtualHostの設定
|
|
JenkinsのVirtualHostの設定
|
|
※「RequestHeader unset Authorization」の記述を抜かすとJenkinsのリモートホスト側でBasic認証が発生してハマるので注意。(ハマりました・・・)
参考:http://d.hatena.ne.jp/akuwano/20130128/1359373111
全体的にベーシック認証する場合は、以下のファイルも
|
|
サービス再起動
|
|
iptablesの設定
設定ファイルの編集
|
|
以下の行を、設定ファイルの真ん中あたりに追加(ポート22用の行をコピーしてポート番号のみ変更)
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 50080 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 50081 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 50082 -j ACCEPT
サービス再起動
|
|
SELinuxの設定
リバースプロキシの許可
httpd_can_network_connect を on に変更する
|
|
ひとまずサーバの準備はここまで。次回へ続きます。
参考URL
- VirtualHost設定関連