HudsonをJenkinsにupgradeしてみた。

下調べ

Jenkins公式サイトのドキュメントに詳しく載っている。

Jenkinsは公式のDebianサポートが手厚いので助かる。ただし不具合報告も あったらしいので注意。バックアップを取っておくこと。

sudo cp -pR /var/lib/hudson /var/lib/hudson.bak

セットアップ

wget http://pkg.jenkins-ci.org/debian/binary/jenkins_X.Y_all.deb
sudo dpkg -i jenkins_X.Y_all.deb
w3m 'http://example.org:8080/' &

Debianパッケージをインストールすると自動的に移行作業をやってくれて、 /var/lib/hudsonは/var/lib/jenkinsになり、Unix user/groupも設定される。

ファイル名や設定の記述にhudsonの名前が一部残るが、そのままでちゃんと動 くので気にしなくてよいらしい(むしろ変にいじると動かなくなる)。

Jenkinsが起動して操作可能になるまで数分かかるので気長に待つ。

後始末

しばらく使ってみて不具合がなければバックアップを削除。

sudo rm -fr /var/lib/hudson.bak

key

apt-get updateのたびにkeyがないとか言われるので追加。

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key \
| sudo apt-key add -

備考

  • 必ずバックアップを取っておくこと。はまったら

    sudo -u jenkins diff -u /var/lib/{hudson.bak,jenkins}/config.xml
    

    とかすればたいてい解決する。

  • custom workspaceを設定しているプロジェクトでは、パスに含まれるhudson をjenkinsに直す必要があった。とはいえ、今回手動で変更する必要があった のはここだけ。

  • ログインできないときは、$JENKINS_HOME/config.xmlのuseSecurityをtrueか らfalseに変更してセキュリティなしで再起動して、適当に設定し直す。

  • remove時に--purgeしなければ、/etc/apt/sources.list.d/jenkins.list あたりのファイルは残るので注意。