意外と簡単。Jenkinsとbitbucket(Git)を連携する7ステップ

Jenkinは、VCS(バージョン管理システム)と連携することが多いと思います。
今回は、Git*1ホスティングサービスを提供しているbitbucketとJenkinsを連携します。

Jenkinsサーバ環境
OS CentOS release 5.8 (Final)
Jenkins version 1.466.2 on Tomcat

bitbucketとの公開鍵認証のため鍵ペアを生成

Jenkinsサーバで、bitbucketとの公開鍵認証に利用する鍵ペアを生成します。
出力先はホームディレクトリの「.ssh」フォルダにします。

# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_bitbucket
Enter passphrase (empty for no passphrase): [←パスフレーズは空のままEnter]
Enter same passphrase again: [←パスフレーズは空のままEnter]

こんな感じに生成されます。

-rw------- 1 root root 1671  920 20:11 id_rsa_bitbucket
-rw-r--r-- 1 root root  394  920 20:11 id_rsa_bitbucket.pub

bitbucketに公開鍵を登録

生成した鍵ペアの公開鍵「id_rsa_bitbucket.pub」のテキストをbitbucketにコピペします。
まず、bitbucketのサイトにログインして、[ユーザ名]-[Account]をクリック。画面の左メニューの[SSH keys]を選択します。

[Label]には、適当な名前を入力(空でもOK)し、[SSH Key]に公開鍵「id_rsa_bitbucket.pub」のテキストをコピペします。ちなみにテキストの末尾にある「@」は必要ありません。

https://lh4.googleusercontent.com/-DJvhXUsq98w/UF0gYGX2eLI/AAAAAAAANTs/WPHIN3bWg5M/s640/gungnir_odin%2520_%2520ssh%2520keys%2520%25E2%2580%2594%2520Bitbucket.jpg

参考:https://confluence.atlassian.com/display/BITBUCKET/How+to+install+a+public+key+on+your+bitbucket+account

sshの設定ファイルを編集

ssh接続の設定をします。設定ファイルに以下の記述を追記します。設定ファイルがない場合は作成しましょう。

# vi /root/.ssh/config

Host bitbucket
    Port 22
    Hostname bitbucket.org
    IdentityFile ~/.ssh/id_rsa_bitbucket
    TCPKeepAlive yes
    IdentitiesOnly yes

CentOSにGitをインストール

Gitを利用するためGit環境を作ります。デフォルトでは、yumリポジトリにGitが含まれてないので、リポジトリを追加する必要があります。

# cd /usr/local/src
# sudo wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# sudo wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

このリポジトリを必要な時だけ参照するように設定します。

# vi /etc/yum.repos.d/rpmforge.repo

#enabled = 1
enabled = 0

これでGitをyumでインストールすることができます。

# yum -y --enablerepo=rpmforge install git

インストールされたことを確認してみましょう。

# git --version
git version 1.7.11.3

Jenkinsサーバはビルド専用なので、全リポジトリ用の設定を行います。

git config --system user.email "jenkins@....."
git config --system user.name "jenkins"

JenkinsにGitプラグインをインストール

[Jenkinsの管理]-[プラグインの管理]-[利用可能]タブを選択して、[フィルター]に「Jenkins GIT plugin」と入力します。一覧に表示された「Jenkins GIT plugin」にチェックし「再起動せずにインストール」をクリックしてインストール完了です。

https://lh6.googleusercontent.com/-BUeaVH6E-58/UF0eI0PZUJI/AAAAAAAANS0/fL5v4ylvxJk/s640/%25E3%2582%25A2%25E3%2583%2583%25E3%2583%2595%25E3%2582%259A%25E3%2583%2586%25E3%2582%2599%25E3%2583%25BC%25E3%2583%2588%25E3%2582%25BB%25E3%2583%25B3%25E3%2582%25BF%25E3%2583%25BC%2520%255BJenkins%255D.jpg

Jenkinsのプロジェクト設定でGitの設定

プロジェクトの[設定]から、[ソースコード管理システム]の設定をします。
[Git]を選択して、[Repositories]に以下のように入力します。

git@bitbucket:<bitbucketのUsername>/<reposotory名>.git

https://lh3.googleusercontent.com/-jbR6ymK-C60/UF0eH4Q2a1I/AAAAAAAANSk/13TsIsR-wPA/s640/radiationMap%2520Config%2520%255BJenkins%255D.jpg

Jenkinsでビルド実行

さて、いよいよJenkinsでビルドを実行します。
[ビルドの実行]をクリックしましょう。

https://lh4.googleusercontent.com/-3NG4I2aRYvo/UF0gYML2zaI/AAAAAAAANTs/KDzM26B7bBY/s800/radiationMap%2520%252318%2520%255BJenkins%255D.jpg

まとめ

大きく分けて、Jenkinsサーバの設定、bitbucketの認証設定、及びJenkinsのGitリポジトリの設定を行うことで連携することができました。これを応用すればgithubや、オンプレのgitosisとの連携もできると思います。参考にして下さい。


No Jenkins, No Development Life.

*1:Mercurialもあるよ