概要
Jenkins のバックアップについて考えている最中 thinBackup という手軽に使えるバックアッププラグインに出会ったので軽くメモしておきます
やったことは thinBackup を使ってバックアップしたファイルを他の Jenkins サーバにリストアするところまでやってみました
環境
- CentOS 6.7 64bit
- Jenkins 2.10 (バックアップ側)
- Jenkins 2.11 (リストア側)
thinBackup プラグインのインストール
Jenkins の管理 -> プラグインの管理からインストールすれば OK です
Jenkins の再起動は不要でした
バックアップ
Jenkins の管理 -> thinBackup という項目が増えます
選択すると以下のような画面になります
まず Settings -> Backup directory を必ず指定しなければいけません
今回は「/var/tmp/jenkins」を指定しました
ディレクトリがない場合は自動で作成してくれるので何でも OK です
で「Backup Now」を選択するとバックアップがはじまります
選択しても何も画面変化が起きないのですが、成功していると設定したディレクトリ配下にバックアップが作成されています (わかりづらい)
# ls -l /var/tmp/jenkins/
合計 8
drwxr-xr-x 4 jenkins jenkins 4096 6月 30 18:48 2016 FULL-2016-06-30_18-48
drwxr-xr-x 4 jenkins jenkins 4096 6月 30 19:35 2016 FULL-2016-06-30_19-35
2 回バックすると 2 世代分、上記のように作成してくれます
今度はこれを別の Jenkins サーバにリストアしてみます
リストするための tar.gz に圧縮しておきます
# cd /var/tmp/jenkins/
# tar cvzf backup.tar.gz FULL-2016-06-30_18-48/*
リストア
別インスタンスを立てて Jenkins のインストールと初期設定まで済ませてください
( 2.10 だと初回アクセス時にアクティベーション作業があるのでちょっと面倒ですが、、、)
アクティベーションが完了してリストア先の Jenkins にログインできたらバックアップ時同様にプラグインの管理から「thinBackup」をインストールします
更に Settings -> Backup directory でこちらも同様に「/var/tmp/jenkins」を設定します
そしたら先ほど圧縮した backup.tar.gz をリストア先の上記ディレクトリに転送し解凍します
要するにバックアップサーバで作成したものをリストア先のサーバに同じように配置すれば OK です
# pwd
/var/tmp/jenkins
# ls -ltr
合計 4
drwxr-xr-x 4 root root 4096 6月 30 19:23 2016 FULL-2016-06-30_18-48
この状態で「Restore」を選択すると以下のようになります
ちゃんと展開できているとプルダウンでリストア先の設定を選択することができます
オプションでビルド番号もリストアするかとプラグインの情報もリストアするか選択できます
とりあえず自分は「Restore plugins」は ON にして Restore してみました
リストアが完了するとこれまた何事もなく元の画面に戻ってきます
リストア後にやること
まずリストアした情報を反映させるために Jenkins を再起動しましょう
- http://localhost:8080/safeRestart にアクセスして再起動
してください
Jenkins の再起動が完了するとジョブの情報がリストアできていることが確認できると思います
で、この後真っ先にやったほうがいいこととして
- すべてのジョブを無効化する
という作業はやったほうがいいと思います
ジョブによっては定期的に実行するジョブがあると思います
リストア後のジョブの状態はバックアップしたときの状態でそのままあがってくるため、ジョブが有効だとジョブによっては勝手に実行されてしまいます
それでも問題ないということであれば全然大丈夫ですが、まだバックアップ元のサーバが残っている場合などは二重で実行される恐れがあります
あとやったほうがいいこととしては Jenkins の管理で「リバースプロキシーの設定がおかしいようです。」というエラーが出ていることがあるので
- システムの設定 -> Jenkinsの位置 -> Jenkins URL
の設定を見なおして見直しましょう
おそらくバックアップ元の Jenkins サーバの情報になっているのでここをリストアサーバの情報に書き換えれば OK です
基本はこれだけやればバックアップ元と同じ状態に持っていくことができました
全部見きれたわけじゃないので、もしかしたらまだ設定が足りないところがあるかもしれませんが、少なくとも警告やエラーのたぐいは出なくなりました
最後に
Jenkins のバックアップとリストアについて thinBackup というプラグインを使った方法を紹介しました
自分は小規模な環境なのでこれで問題ない気がします
心配なのはリストア先の Jenkins のバージョンがもっとバージョンアップした場合 (例えばバージョン 3 とかになった場合) にちゃんとリストアできるのかという点です
もしバージョンの互換がないと結局で手動でリストアすることになってしまいそうです
0 件のコメント:
コメントを投稿