Apache Continuum をインストールしてみる
いまや id:cactusman らの尽力により、日本では CI (Continuous Integration: 継続的インテグレーション) ツールといえば Hudson が有名かと存じますが、もっと CI を利用することを広めたいと思い、比較対象として皆さんも Apache Commons 等でお世話になっているかと思われる Apache が作っている Apache Continuum を紹介したいと思います。
といっても、自分も CI ツールとしては Hudson の方がいいんじゃないかと思ってるので途中で Continuum の紹介を投げ出すかもしれませんが、できる限り最後まで書きたいと思いますw
そもそも CI って何だよ、と思ってる人は id:cactusman のブログ読んでみてください。たぶん このへん やっぱりこのへん とかが参考になるんじゃないかと丸投げしてみる :-p
とにかく、今回は最初のインストールからやってみたいと思います。というか、自分も初めて Continuum を触るので実は Continuum のことよくわかってないw
環境
まずは Continuum をインストールする環境から。ご存じの通り私は FreeBSD が好きなので環境は自重せずに FreeBSD を前提に書きますが、ベースとなる部分は Apache Tomcat なので OS の違いは関係ないかと思われます。
環境は下記の通り。
- FreeBSD 7.0
- 現在リリースされている FreeBSD の最新版。そういえば FreeBSD 7.1 っていつ出るんでしょうね。今 RC1 までは出てるそうですが。
- The FreeBSD Project
- JDK 6
- Apache httpd 2.2
- ports からインストール。バージョンは 2.2.9_5 となってます。
- Welcome! - The Apache HTTP Server Project
- Apache Tomcat 6.0
- これも ports からインストール。バージョンは 6.0.16 となってます。
- httpd との通信に mod_jk を利用。これも ports からインストール。バージョンは 1.2.26,1
- Apache Tomcat® - Welcome!
- Apache Continuum 1.2.2
- 今回紹介する大本命。現在はバージョンが 1.2.2 だそうです。
- Continuum - Welcome to Apache Continuum
環境を見るとわかるとおり、通常の httpd - mod_jk - Tomcat 構成です。ports とかを使わずに、公式サイトからダウンロードしてきて make するのも良いですね。何はともあれ、使用するのは Apache Tomcat の 6.0 系列を前提に書くってことです。
ちなみに、Continuum は Tomcat 等の AP サーバがなくてもスタンドアロンで立ち上がることには立ち上がるんですが、実運用も見据えて今回は AP サーバ上で動かします。
ダウンロード
何はともあれ、Continuum をダウンロードしてこなくちゃいけません。さくっと下記の URL からダウンロードしてきてください。なお、今回は Tomcat 上で動かすことを前提にしているので war 版をダウンロードします。
ダウンロードし終えたら、適当な場所においてください。ただし、後々の設定があるので $CATALINA_HOME/webapps に置いちゃうと言う手抜きはやめてください :-p
ここでは、/opt/continuum に置いたと仮定します。
初期設定
さて、面倒な初期設定を行います。
基本的には ここ に書いてある内容をそのまま実行するだけですが、英語ばっかりで読みにくいので日本語化もかねて実際にやってみたいと思います。
JNDI リソースの設定
Contiuum を使うためには、Tomcat にいくつかの JNDI リソースを定義する必要があるそうです。具体的にはデータソースとメールセッションの JNDI リソースとなります。では、/usr/local/apache-tomcat6.0/conf/Catalina/localhost に continuum.xml というコンテキストファイルを用意し、下記のような設定を行いましょう。ちなみに、通常は $CATALINA_HOME/conf/Catalina/localhost 配下となります。
<Context path="/continuum" docBase="/opt/continuum/apache-continuum-1.2.2.war"> <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource" username="sa" password="" driverClassName="org.apache.derby.jdbc.EmbeddedDriver" url="jdbc:derby:/usr/local/apache-tomcat6.0/work/database/users;create=true" /> <Resource name="jdbc/continuum" auth="Container" type="javax.sql.DataSource" username="sa" password="" driverClassName="org.apache.derby.jdbc.EmbeddedDriver" url="jdbc:derby:/usr/local/apache-tomcat6.0/work/database/continuum;create=true" /> <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="localhost" /> </Context>
必要な JAR のダウンロード
次は、Continuum を動かすために必要な JAR のダウンロードです。具体的には上で設定したデータソースとメールセッションを見ればわかるとおり、Apache Derby と JavaMail、そのほかに JavaBeans Activation Framework が必要となります。
ダウンロードはそれぞれ下記の場所から。
- JavaMail http://java.sun.com/products/javamail/downloads/
- ダウンロードした zip ファイルの中にある mail.jar が対象。
- JavaBeans Activation Framework http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/
- ダウンロードした zip ファイルの中にある activation.jar が対象。
- Apache Derby http://db.apache.org/derby/derby_downloads.html
- 公式の手順には「10.1.3.1 でテストされてます」と書いてますが、私は最新厨なので 10.4.2.0 を使います。ダウンロードして展開した中にある derby.jar と derbytools.jar が対象。
それぞれの JAR を /usr/local/apache-tomcat6.0/lib に配置します。なお、通常は $CATALINA_HOME/lib に置きます。
システムプロパティの定義
Continuum は appserver.home と appserver.base、plexus.home という3つのシステムプロパティを使うようです。これは /etc/rc.conf に次の内容を追記すれば OK です。
tomcat60_java_opts="-Dappserver.home=/usr/local/apache-tomcat6.0 -Dappserver.base=/usr/local/apache-tomcat6.0 -Dplexus.home=/usr/local/apache-tomcat6.0"
ただし、FreeBSD 以外だと /etc/rc.conf とかに記述しても意味がないので、$CATALINA_HOME/bin に setenv.sh というファイルを作り、内容は下記の通りとします。
#!/bin/sh export CATALINA_OPTS="-Dappserver.home=$CATALINA_HOME -Dappserver.base=$CATALINA_HOME -Dplexus.home=$CATALINA_HOME"
mod_jk の設定
今回は Apache httpd 経由でアクセスするので mod_jk の設定を行います。mod_jk を ports からインストールしている場合は、/usr/local/etc/apache22/Includes にある mod_jk.conf.sample を mod_jk.conf にリネームした上で、下記の通り修正します。
<IfModule mod_jk.c> JkWorkersFile etc/apache22/workers.properties JkLogFile /var/log/jk.log JkShmFile /var/log/jk-runtime-status JkLogLevel error JkMount /continuum tomcat JkMount /continuum/* tomcat </IfModule>
ついでに、/usr/local/etc/apache22 にある workers.properties.sample も workers.properties にリネームの上、下記の通り修正します。
worker.list=tomcat worker.tomcat.port=8009 worker.tomcat.host=localhost worker.tomcat.type=ajp13
起動
初期設定が終わったら、いよいよ起動してみます。
`/usr/local/etc/rc.d/tomcat6 start` で Tomcat を起動してみます。ただし、FreeBSD 以外だと $CATALINA_HOME/bin/startup.sh とするように!
Tomcat の起動後、Apache も起動しておきましょう。`/usr/local/etc/rc.d/apache22 start` ですね。FreeBSD 以外は `apachectl start` になるでしょうか。
起動が終わったら http://localhost/continuum/ にアクセスします。アクセスしたら、下のような画面が出てくると思います。管理ユーザの作成画面のようです。求められているとおりにさくさくっと登録しちゃいましょう。
- Full Name: 管理者のフルネーム。なんでもおk。
- Email Address: 管理者のメールアドレス。
- Password: 管理者のパスワード。
- Confirm Password: パスワードを再入力。
登録が完了したらログイン画面が出てきたので、さっき登録したとおりにログインを行います。ユーザ名は "admin" で、パスワードはさっき自分で登録したパスワードですね。
次に、下のような画面が現れます。基本的にそのままでいいと思いますが、気になる項目があれば適宜修正してください。
以上で、Continuum のインストールは完了です。