torutkのブログ

ソフトウェア・エンジニアのブログ

HudsonのRPMパッケージをCentOS 5にインストール

「継続的ビルド」ツールの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_HOME="/var/lib/hudson"
  • Hudsonを実行するJavaVMの定義です。空欄だと、たぶんPATHで定義した順番で見つかったjavaコマンドになります。Hudsonは、Javaのバージョンが1.5以上でないとエラーになるので、標準のCentOS 5.2ではGCC 4.1のGCJJava 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コマンドで自動起動の有効・無効を切り替えます。

# chkconfig hudson on
# 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 は停止しています