「継続的ビルド」ツールのHudsonについてのメモです。
以前、自動ビルド環境とHudson - torutkのブログで、Hudsonの最初の一歩について書きました。その後、Red Hat系OS向けにRPMパッケージ形式で提供されるようになり、今回RPMパッケージを入れて稼動させるメモを残します。
RPMパッケージの入手とインストール
HudsonのWebサイト上に、yumリポジトリが提供されています。
http://hudson-ci.org/redhat/
今回は、日本的IT産業土方開発環境の特徴たる非インターネット接続においてHudsonを利用できるよう、オンラインではなくインストールした方法を記述しています。
まず、上記yumリポジトリからRPMファイルをダウンロードします。
- hudson-1.335-1.1.noarch.rpm
これをインストールします。
# rpm -ivh hudson-1.335-1.1.noarch.rpm 警告: hudson-1.335-1.1.noarch.rpm: ヘッダ V4 DSA signature: NOKEY, key ID d50582e6 準備中... ########################################### [100%] 1:hudson ########################################### [100%] #
RPMパッケージでインストールされるファイルは以下です。
[toru@enoteca ~]$ rpm -ql hudson -v -rwxr-xr-x 1 root root 5360 11月 21 16:53 /etc/init.d/hudson -rw-r--r-- 1 root root 256 11月 21 16:53 /etc/logrotate.d/hudson -rw------- 1 root root 1707 11月 21 16:53 /etc/sysconfig/hudson drwxr-xr-x 2 root root 0 11月 21 16:53 /usr/lib/hudson -rw-r--r-- 1 root root 27735969 11月 21 16:53 /usr/lib/hudson/hudson.war lrwxrwxrwx 1 root root 23 11月 21 16:53 /usr/sbin/rchudson -> ../../etc/init.d/hudson drwxr-xr-x 2 hudson hudson 0 11月 21 16:53 /var/lib/hudson drwxr-x--- 2 hudson hudson 0 11月 21 16:53 /var/log/hudson ~$
また、hudsonユーザが作成されます。
~$ grep hudson /etc/passwd hudson:x:102:106:Hudson Continuous Build server:/var/lib/hudson:/bin/false
Hudsonの設定
環境設定
まず、設定ファイルが/etc/sysconfig/hudsonにあります。通常変更しそうな項目を抜粋します。
- Hudsonの作業ディレクトリ
Hudsonのプロジェクト(ビルド)定義、ビルドログなどが作成される場所です。
HUDSON_HOME="/var/lib/hudson"
- Hudsonを実行するJavaVMの定義です。空欄だと、たぶんPATHで定義した順番で見つかったjavaコマンドになります。Hudsonは、Javaのバージョンが1.5以上でないとエラーになるので、標準のCentOS 5.2ではGCC 4.1のGCJ(Java 1.4相当)が入っているため、エラーになります。CentOS 5.3以降からは、OpenJDKが標準で用意されるので、Javaの1.6が利用できますが、インストールしてなければGCC 4.1のGCJが実行され、エラーとなります。SunのJDKを入れた場合でも、環境変数定義によって先にGCJが実行されるとエラーとなります。環境設定でうまく制御できない場合、この設定でバージョン1.5以上のjavaコマンドへのパスを記述します。
HUDSON_JAVA_CMD=""
- Hudson実行ユーザ
RPMパッケージをインストールすると、hudsonユーザが作成され、そのユーザで実行する想定がなされます。ただし、別ユーザで実行したいこともあるので、そのときにこの設定を変更します。
ただし、変更時は、ログ出力ディレクトリ(/var/log/hudson)・HUDSON_HOMEのディレクトリのユーザ権限を合わせて変更する必要があります。
HUDSON_USER="hudson"
- Hudsonへアクセスするポート番号
Hudsonはそれ自身でWebサーバ機能を持ちます。root以外のユーザで実行する場合(デフォルト)、1024以上のポート番号を指定する必要があります。
HUDSON_PORT="8080"
自動起動設定
計算機の起動時にHudsonを稼動させるための仕組みが用意されています。/etc/init.d/hudsonに自動起動スクリプトがインストールされるので、chkconfigコマンドで自動起動の有効・無効を切り替えます。
- Hudsonの自動起動を有効にする
# chkconfig hudson on
- Hudsonの自動起動を無効にする
# chkconfig hudson off
手動起動・停止
- Hudsonの手動起動
# service hudson start
- Hudsonの手動停止
# service hudson stop
- Hudsonの手動再起動
# service hudson restart
- Hudsonの起動状態確認
# service hudson status hudson (pid 1861) を実行中... # service hudson stop Shutting down Hudson [ OK ] # service hudson status hudson は停止しています