僕も簡単にですが環境を構築してみました。
その時のメモを載せておきます。
内容は、
- Jenkinsをインストールする
- J2EEアプリケーションを載せるJbossのインストールと環境設定をする
です。
その後の作業として挙がるJenkinsの具体的な設定については、
プロジェクトの内容やビルドツールの種類等にもよりますのでここでは割愛させていただきます。
そもそものJenkins+Jbossの目的として、ここでは以下2点を掲げさせて頂きます:
- プロジェクトの継続的な監視・改善のため
- 開発者以外のメンバーが利用できるJ2EE提供するため
環境構築
では早速構築していきましょう。
テスト用のホストマシンに仮想マシンをのせ、では早速構築していきましょう。
そこにJenkinsを構築しているという環境とします。
Jenkinsによって自動ビルドし、
生成されたwarファイルをJBossにホットデプロイするというのが一連の流れです。
TEST環境インテグレーションツールの運用をVMで行います。
JenkinsやJbossによって新しく設定が発生するが、それらはまとめて次項で述べます。
OS : Ubuntu Server 12.04.1 LTS 64bit (Virtual Machine)
ソフトウェア :
- DK 7 (Oracle製 JDK)
- Nginx (HTTPサーバ)
- Jenkins 1.4 (CIツール)
- JBoss 6 (APサーバ)
OSインストール
OSは Ubuntu Server 12.04.1 LTS 64bit でVMと同じです。VMware Player インストール
latestで問題ないと思います。Ubuntu Server 12.04.1 LTS 64bit の仮想マシン設定
ディスク:20GBCPU:2コア
RAM:2GB
ネットワーク:ブリッジ接続
以上の構成でインストール。ここから先の設定はすべて仮想マシン上で行うものとします。
ソフトウェアのアップデート
sudo aptitude updatesudo aptitude safe-upgrade
ネットワークの設定・再起動
固定IP or DHCPによる設定を行います。今回は固定IP+ネームサーバ登録だったため以下のようにしました。
sudo vim /etc/network/interfaces
-------------
auto eth0
iface eth0 inet static
address *****
netmask *****
gateway *****
dns-nameservers *****
-------------
CI(継続的インテグレーションツール)
以下では、CIを行うためのソフトウェアインストール・それに付随する設定手順を示します。
JDK7 のインストール
javaは/usr/lib/jvm/にインストールし、latestのシンボリックリンクを作成。y-wada@localhost:/usr/lib/jvm$ ls -la
-----------------
drwxr-xr-x 8 root root 4096 10月 12 16:06 java-7-oracle
lrwxrwxrwx 1 root root 14 10月 12 16:18 latest -> java-7-oracle/
-----------------
maven2のインストール
JenkinsはAntやMavenといったビルドツールと組み合わせることでより大きなチカラを発揮していくれます。
mavenの場合は/usr/share/にインストールし、maven2へリネームします。
Jenkins(+Nginx)のインストール
本家にUbunuへのインストール手順があったので基本的にはそれに従いました。https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
HTTPサーバはNginxを選択。
プロキシ設定は以下のようにしています。
y-wada$ vim /etc/nginx/sites-available/jenkins
------------------------
upstream app_server {
server 127.0.0.1:8081 fail_timeout=0;
}
server {
listen 80;
listen [::]:80 default ipv6only=on;
server_name server-name;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
}
------------------------
JBoss6のインストール
http://www.caseyfulton.com/installing-jboss-as-6-0-final-on-ubuntu-server-11-04-for-mere-mortals/ここを参考にインストールを行いました。
JBoss6 HTTPポートの書き換え
HTTPサーバのポートを8080 -> 8085とします。y-wada~$ vim /usr/local/jboss/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
--------------------------
<bean class="org.jboss.services.binding.ServiceBindingMetadata">
<property name="serviceName">jboss.web:service=WebServer</property>
<property name="bindingName">HttpConnector</property>
<property name="port">8085</property>
<property name="description">JBoss Web HTTP connector socket; also drives the values for the HTTPS and AJP sockets</property>
</bean>
---------------------------
JBOSSにデプロイするアプリケーションの設定
デプロイしたアプリケーションを実行する際の設定をここで行います。変更点は、
- PermSizeを増やす(OutOfMemory対策)
- Javaのオプション設定(アプリケーションをテストモードで実行させるため)
y-wada:~$ vim /usr/local/jboss/bin/run.conf
-------------------
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms128m -Xmx1024m -XX:MaxPermSize=1024m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" (書き換え)
fi
JAVA_OPTS="${JAVA_OPTS} -Djboss.bind.address=0.0.0.0 -Denvironment.level=test" (ファイルの末尾に追加)
--------------------
ホットデプロイ用ディレクトリのパーミッション変更
Jenkinsは /usr/local/jboss/server/default/deployにwarファイルを書き込むことによってデプロイします。
ただし元がdrwxr-xr-xのため、
+w して jenkinsユーザがwarを置けるようにしておきます。
JBoss設定用アプリケーションのリネーム
${JBOSS_HOME}/server/default/deploy/ROOT.warがいるとデプロイに失敗するので、適当にROOT.war.bakなどとリネームしておく 。
以上です。最低限の設定で、
ここからプロジェクトごとにさらにJenkinsの設定が必要となりますが、
CIのための土台はできました。
0 件のコメント:
コメントを投稿