こんにちはかずきです。

前回の記事の続きでjenkinsとbitbucketを連携させます。

jenkinsユーザへ切り替え可能にする

/etc/passwdの内容を以下のようの変更するとjenkinsユーザとしてログイン出来ます

jenkins:x:496:497:Jenkins Continuous Build server:/var/lib/jenkins:/bin/false

↓変更

jenkins:x:496:497:Jenkins Continuous Build server:/var/lib/jenkins:/bin/bash

bitbucketに登録するSSHキーの作成

・まずは以下のコマンドでjenkinsユーザに切り替えてルートディレクトリに移動します

sudo su jenkins
cd

・.sshディレクトリを作成して移動

mkdir .ssh
cd .ssh

・SSH Keyの生成

Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): <保存名>
Enter passphrase (empty for no passphrase): <パスフレーズは入力せずEnter>
Enter same passphrase again:

 

・<保存名>.pubのファイルの内容をコピーします

bitbucketにSSHキーを登録

bitbucket01
・アカウントのアイコンをクリックして表示されたメニューのアカウントの管理をクリック

bitbucket02
・SSHキーをクリック

bitbucket03
・Labelはわかりやすい名前、Keyは先程コピーした<保存名>.pubの内容をペーストして「鍵を追加」をクリックします

jenkinsのジョブを作成

jenkinsdashbord
・新規ジョブ作成をクリック

jenkinsnewjob
・ジョブ名を入力、フリースタイル・プロジェクトのビルドを選択して「OK」をクリック

addcredentials
・Repository URLに以下の内容を入力し、ソースコード管理でGitを選択し、”Credentials”の追加をクリック

git@bitbucket.org:<ユーザ名>/<リポジトリ>.git

 
addcredentialwindow
・種類を「SSHユーザ名と秘密鍵」にし、ユーザ名にbitbucketのユーザ名、秘密鍵を「jenkinsマスター上の~/.sshから」にして追加をクリックします

repositorybrowser
・リポジトリ・ブラウザで”bitbucketweb”を選択して、以下の内容をURLに入力します

https://tc_kazuki@bitbucket.org/<ユーザ名>/<リポジトリ>.git

 
buildtrigger
・ビルド・トリガのSCMをポーリングにチェックを入れて保存をクリック(スケジュールは空のままで)

WebHookの登録

jenkinsdashbordmanagejenkins
・ダッシュボードでjenkinsの管理をクリック

managejenkins
・グローバルセキュリティの設定をクリック

csrf
・CSRF対策のチェックを外して、保存をクリック

repositorysetting
・bitbucketサイトのjenkinsでビルドするリポジトリの設定ページでWebhooksをクリック

webhook
・Add webhookをクリック

addnewwebhook
・Titleにわかりやすい名前、URLには以下の内容を入力して、”Skip certificate verification”にチェックを入れて「Save」をクリック(https://:8080でダッシュボードに接続可能な場合はチェック不要)

http://<serverIP>:8080/git/notifyCommit?url=git@bitbucket.org:<ユーザ名>/<リポジトリ>.git

 

これでbitbucketのリポジトリにpushがあるとjenkinsで自動的にビルドが実行されるようになります!

参考にさせていただいたサイト

Jenkins環境構築でのメモ on @Qiita
Jenkinsのセットアップ(インストールとsshの設定) – hibitomo’s blog
JenkinsでBitbucketのコードをテストする – Masteries