Ubuntu10.10 自宅サーバ構築手順:継続ビルド環境(Hudson)インストール

Hudson導入手順(apt-getインストール)

  • 更新用のkey情報を取得。
absj31@absj31-MyHomeServer:~$ sudo wget http://hudson-ci.org/debian/hudson-ci.org.key -O- | sudo apt-key add -
  • apt-get更新用のリストを編集。
absj31@absj31-MyHomeServer:~$ sudo vi /etc/apt/sources.list
---------------------------------
※以下の行を末尾に追加
deb http://hudson-ci.org/debian binary/ 
  • apt-getインストール実施。
absj31@absj31-MyHomeServer:~$ sudo apt-get update
absj31@absj31-MyHomeServer:~$ sudo apt-get install -y hudson
  • …と、ここまでは簡単に済んだのですが、今回の端末ではポート80(Apache2)、8080(Tomcat6)をそれぞれ占有していた為、そのどちらのポートでサーバにアクセスしてもhudsonの管理画面は表示されません。(debianパッケージ経由での導入の場合の)起動時のポート番号の変更方法が分からなかったので、起動スクリプトの実行行部分、末尾に『--httpPort=(ポート番号)』と直で埋め込んでしまいました。他により良い方法があれば差し替える方向で。(→追記分の対応を行う事でポート番号衝突は回避可能。詳しくは下記追記参照。)
absj31@absj31-MyHomeServer:~$ sudo vi /etc/init.d/hudson
---------------------------------------------
    $SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -jar $HUDSON_WAR $HUDSON_ARGS --httpPort=8081" || return 2
  • サービスを再起動し、http://(ドメイン):(起動時のポート)/ にブラウザでアクセス。
absj31@absj31-MyHomeServer:~$ sudo service hudson restart


また、導入してから気付いたのですが、apt-getのリストに追加したURLの下位層に当たるURL( http://hudson-ci.org/debian/binary/ )で展開されている最新バージョンは1352。そして、hudson公式で展開されている最新バージョンは1392(2011/01/09現在)。どうやら3月で更新が止まっている模様です…。これはOracleのSun買収も影響している(いた)のでしょうか…。

debianパッケージが更新されないとなると、WARファイルベースの配置〜更新の方が確実なのでしょうか。この辺も個人的には詳しくないのでお勉強・調査が必要ですが…。
(→追記分の対応を行う事でパッケージの問題は解決。詳しくは下記追記参照。)


(追記)
kkawaさんから以下のコメントを頂きました。ありがとうございます。

http://pkg.hudson-labs.org/debian/ に新しいバージョンがあるのでこちらを使ってください。

absj31@absj31-MyHomeServer:/$ sudo wget -q -O - http://pkg.hudson-labs.org/debian/hudson-labs.org.key | sudo apt-key add -
absj31@absj31-MyHomeServer:/$ sudo vi /etc/apt/sources.list
-----------------------------------
※以下の行をファイル末尾に追加
deb http://pkg.hudson-labs.org/debian binary/
-----------------------------------
absj31@absj31-MyHomeServer:/$ sudo apt-get update
absj31@absj31-MyHomeServer:/$ sudo apt-get install -y hudson
  • 起動スクリプトについては、諸々のデフォルト情報が/etc/default/hudson に記載されているので、変更する場合はこのファイル内の要素を修正。(※以下はポート:8081で起動させる場合:下1/3位の所にあるHTTP_PORTの値を書き換えている)
absj31@absj31-MyHomeServer:~$ sudo vi /etc/default/hudson
-----------------------------------
# defaults for hudson continuous integration server

# pulled in from the init script; makes things easier.
NAME=hudson

# location of java
JAVA=/usr/bin/java

# arguments to pass to java
#JAVA_ARGS="-Xmx256m"

PIDFILE=/var/run/hudson/hudson.pid

# user id to be invoked as (otherwise will run as root; not wise!)
HUDSON_USER=hudson

# location of the hudson war file
HUDSON_WAR=/usr/share/hudson/hudson.war

# hudson home location
HUDSON_HOME=/var/lib/hudson

# set this to false if you don't want Hudson to run by itself
# in this set up, you are expected to provide a servlet containr
# to host hudson.
RUN_STANDALONE=true

# log location.  this may be a syslog facility.priority
HUDSON_LOG=/var/log/hudson/$NAME.log
#HUDSON_LOG=daemon.info

# OS LIMITS SETUP
#   comment this out to observe /etc/security/limits.conf
#   this is on by default because http://github.com/feniix/hudson/commit/d13c08ea8f5a3fa730ba174305e6429b74853927
#   reported that Ubuntu's PAM configuration doesn't include pam_limits.so, and as a result the # of file
#   descriptors are forced to 1024 regardless of /etc/security/limits.conf
MAXOPENFILES=8192

# port for HTTP connector (default 8080; disable with -1)
HTTP_PORT=8081

# port for AJP connector (disabled by default)
AJP_PORT=-1

# arguments to pass to hudson.
# --javahome=$JAVA_HOME
# --httpPort=$HTTP_PORT (default 8080; disable with -1)
# --httpsPort=$HTTP_PORT
# --ajp13Port=$AJP_PORT
# --argumentsRealm.passwd.$ADMIN_USER=[password]
# --argumentsRealm.$ADMIN_USER=admin
# --webroot=~/.hudson/war
HUDSON_ARGS="--webroot=/var/run/hudson/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
-----------------------------------

(追記終わり)

とりあえず、WARファイルベースでの導入についても簡単にメモ。

Hudson導入手順(tomcat6サーバへのデプロイ)

  • 配備完了後URLにアクセスしてみると、以下のエラーが発生。ファイルを作れていないらしい。

absj31@absj31-MyHomeServer:/$ sudo chown -R tomcat6:tomcat6 /usr/share/tomcat6/
  • 再デプロイ後、再びアクセス確認。最新バージョンでhudsonが起動している事を確認。



参考URL: