Ubuntu10.10 自宅サーバ構築手順:継続ビルド環境(Hudson)インストール
- Tomcat上にデプロイしちゃえば一発で済んじゃうんですが、ここはパッケージ管理もされているようなのでそちらの方式で導入してみます。
Hudson導入手順(apt-getインストール)
- JDK6を事前に導入している事を確認。
- 更新用の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
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/ に新しいバージョンがあるのでこちらを使ってください。
- 頂いた情報を元に、hudsonをパッケージ更新経由で入れ直してみます。
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サーバへのデプロイ)
- こちらの手順の場合、事前にjdk6及びtomcat6の導入が済んでいる事が前提となる。
- Tomcat6導入後、管理ツール(manager webapp)にてWARファイル(公式から入手可能な最新アーカイブファイル)を配備。
- 配備完了後URLにアクセスしてみると、以下のエラーが発生。ファイルを作れていないらしい。
- 以下の記事によると、所有者権限を変えれば良いらしい。chownコマンドにて所有者をtomcat6に変更。
absj31@absj31-MyHomeServer:/$ sudo chown -R tomcat6:tomcat6 /usr/share/tomcat6/
- 再デプロイ後、再びアクセス確認。最新バージョンでhudsonが起動している事を確認。
参考URL:
- UbuntuでHudsonをパッケージ管理する : Everyday FunkiEE!!
- Hudson環境のバックアップ - ふぞろいのGENGOたち
- Hudson環境のバックアップ - ふぞろいのGENGOたち
- Hudsonのアップグレード - ふぞろいのGENGOたち
- プラグインのインストール/アップデート/無効化 - ふぞろいのGENGOたち
- Hudsonのホームディレクトリを変更する - ふぞろいのGENGOたち
- Hudsonのセットアップ(Tomcatに配備して起動) - ふぞろいのGENGOたち
- Installing Hudson on Ubuntu - hudson - Hudson Wiki
- Ubuntu 10.04LTSにTomcat6をいれてHudsonを使う方法 - Ubuntuスタイル
- Debian Repository for Hudson
- Installing Hudson on Ubuntu - hudson - Hudson Wiki