オラクル嫌いの上司からJenkinsに変えろと脅迫されたのでぽちっと(ぽちっとじゃないな)Jenkinsに変えてみました。や、まぁ楽だったんだけどね。本体は。
マスターがRedHat, スレーブがCentOSのマシンにインストールしました。
If you've previously imported the key from Hudson, the "rpm --import" will fail because you already have a key. Please ignore that and move on.
とのことなので、そうするしかなかったんだよ。
Jenkinsのインストール
yumが使えなくなっている(これだからRHELはいやなんだ)のでさっくりrpmをダウンロードしてインストール。あと俺はいつもこういうときめんどくさいのでroot権限で作業しております。
# ちゃんと止めてからやりましょう $ /etc/init.d/hudson stop # rpmパッケージのインストール $ rpm -ivh [パッケージ名]
でOK。/var/lib/jenkinsができているかどうかを確認する
hudsonはそのまま残ってたけど、設定などは全部コピーされた模様。簡単だしすごく楽。ありがたいねー。ユーザーも全部作成してくれてるし。
フォルダの権限を確認
たぶんよほどのことがない限り大丈夫だと思うけれど一応。
$ ls -la /var/lib/jenkins
でフォルダの権限がjenkinsになっていることを確認。なっていない場合は
$ chown -R jenkins:jenkins /var/lib/jenkins
で変更しておくこと。
起動
$ /etc/init.d/jenkins start
たまに忘れるんだよねーあるよねー(俺だけだよ
マスターはここまで。
次はスレーブの設定。
スレーブを設定している場合
サニティチェックを別のサーバーでやらせている(時間がかかるので)ので、こちらにも設定が必要だった。自動ではやってくれないそうです。まぁそうか。
スレーブの起動とコマンドの実行はマスターがトリガをかける設定。設定自体はいいんだけどね…SSHの設定し直したのにPermission deniedになっちゃって起動しないので困った。
答えはjenkinsアカウントがスレーブに存在していなかったためだった。そりゃ拒否されるわ。
アカウントを作成する
まずjenkinsというアカウントがないので作る。設定は元々のHudsonのにあわせるために使うシェルはbashで、ホームディレクトリは/var/lib/hudsonで。パスワードはユーザー名と同じ。
$ useradd -d /var/lib/hudson -s /bin/bash jenkins $ usermod -p jenkins jenkins
一応確認のため
$ id -a jenkins $ grep jenkins /etc/passwd
でuidが100番台、パスワードがjenkinsに設定されていればおそらくOK。
おもむろにディレクトリの権限を変更する
$ chown -R jenkins:jenkins /var/lib/hudson
ディレクトリ名はめんどいので変えてません。
SSHの設定(パスワードを入力しなくてもログインできるようにする)
公開鍵RSAの設定に関してはいろんなところに描いてあるけど、まぁ一応書いておくか。
http://www.geocities.jp/turtle_wide/tools/sshpass.html
# jenkinsになる。(パスワードはjenkins) $ su jenkins $ ssh-keygen # このあといろいろ聞かれるけど全部なにも入力しないこと! # Your public key has been saved in /home/foo/.ssh/id_rsa.pub. # と表示される場所にRSA認証の公開鍵ができるのでこれをリモートの/var/lib/hudsonにコピーする $ scp /home/foo/.ssh/id_rsa.pub jenkins@hostname(もしくはIP):/var/lib/hudson/.ssh/ # ここからはスレーブサーバーでの作業 $ ssh jenkins@hostname $ cd /var/lib/hudson/.ssh $ touch authorized_key2 # 必ず600に設定すること! $ chmod 600 authorized_keys2 $ cat id_rsa.pub >> authorized_key2
たまにやると忘れてるんだよなーとか思いつつさくさくと。
なんか執事みたいなマークが出てくるからうける。
追記:
javaが入ってないサーバにインストールする場合
jdkをORACLEからインストールする。/usr/bin/javaがないと起動時に怒られるのでシンボリックリンクをはっておけばおK。
とりあえず特に何も考えずにjdkをいれると/usr/local/jdkほにゃらら/bin/以下にjava, javacができるので
ln -s /usr/local/jdkほにゃらら/bin/java /usr/bin/java ln -s /usr/local/jdkほにゃらら/bin/javac /usr/bin/javac
として
java -version javac -version
でバージョン情報が表示されれば問題なし。