LoginSignup
22
21

More than 5 years have passed since last update.

またjenkinsの設定をバージョン管理してみたい人が現れた

Last updated at Posted at 2016-04-27

jenkins 2.0をgitでバックアップ・復元する話です。

jenkinsとバージョン管理

jenkinsはcronの代替品や、エンジニア以外の人にバッチ処理を走らせるための手軽なwebインタフェースとしてはかなり便利です。万が一のために、jenkinsをバックアップ・復元するソリューションもほしいですが、そういった標準機能は未だに存在していません。

大規模のjenkinsならVMイメージやdocker、どちらかと言うとインフラ構成管理のやり方でなんとかなるだろうけど、たった一台のjenkinsの場合、もっと手軽なソリューションがほしくなりますね。できればファイル同期すれば新しいディレクトリーに展開できるようにしたい。というわけで、真っ先にgitに思いつきます。

しかし、jenkinsの設定をgitで管理するには若干強引なところがあります。commitする範囲をファイル名やディレクトリ構造で判断しにくいからです。とはいえ、.gitignoreで頑張ってファイルを1個ずつ外す人1 2もいたので、自分も試してみました。

秘伝の.gitignore

というわけで、gitでうまく運用できるかは分からないけど、とりあえずやってみました。自分で一から.gitignoreを作成するのも億劫なので、参考記事[1]のリストを元に、Jenkins 2.0を標準インストールした直後の状態に合わせてみました:

.gitignore
# 一般的に除外するもの
*.swp

# jenkins本体
*.jar
war

# ログ、キャッシュ、内部のバックアップ、ローカルの情報
*.log
*.bak
logs/
org.jenkinsci.plugins.github.GitHubPlugin.cache/*
jenkins.model.JenkinsLocationConfiguration.xml

# ユーザ、権限、鍵
.owner
identity.key*
secret.key*
secrets
users

# 更新、プラグインの展開先
plugins/*/
updates

# ジョブ
jobs/*/*
!jobs/*/config.xml
workspace

# 初期化の状態
jenkins.install.*

jenkinsのgitレポジトリ作成とデプロイ

既存のjenkinsからgitレポジトリを作る

  1. $JENKINS_HOMEgit init
  2. 上記の.gitignoreを配置し、ignoreされていないものをすべてadd & commitする

新しい場所で展開する

jenkins daemonを起動する前に、新しい$JENKINS_HOMEで下記の作業をする:

  1. $JENKINS_HOMEgit clone
  2. rm -rf *
  3. jenkins daemonを起動し、setup wizardを通過する
  4. jenkinsのdashboardが見れるようになったら、$JENKINS_HOMEgit reset --hard origin/masterで無理やり最新状態にする
  5. jenkinsを再起動する
  6. 再起動が終わったら、ジョブと設定がちゃんと展開されたことを確認する

一度rmする理由は、jenkins 2.0は初回起動時に$JENKINS_HOMEの状態をいろいろ確認したり初期化したりするので、そこで変な依存性を発生させたくないからです。実際、clone後そのまま起動するとsetup wizardが飛ばされます。

参考記事


  1. VERSION CONTROL YOUR JENKINS SERVER CONFIGURATION WITH GIT https://www.coveros.com/version-control-your-jenkins-server-configuration-with-git/ 

  2. Jenkinsのバックアップとリストアについてメモ http://qiita.com/tq_jappy/items/3654059d09a4896ae598 

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21