JenkinsとBitbucketを連携する

JenkinsとBitbucketを連携する

前回、JenkinsをVagrantにインストールするまでやったので今回もJenkinsの続きで、初期設定をしてBitbucketと連携させます。

グローバルセキュリティの設定

「Jenkinsの管理」→「 グローバルセキュリティの設定」で行います。

管理ユーザーを追加するために設定変更

デフォルトでは、ユーザーのサインアップができないため、設定を変更します。

  • セキュリティを有効にチェック
  • ユーザー情報欄の「Jenkinsのユーザーデータベース」、「ユーザーにサインアップを許可」をチェックする

管理ユーザーの追加

Jenkins管理画面トップページに戻ると、サインアップ画面が表示されます。
「ユーザ名」、「パスワード」、「フルネーム」、「メールアドレス」を設定します。

管理ユーザーに権限を与える

  • ユーザー情報欄の「Jenkinsのユーザーデータベース」、「ユーザーにサインアップを許可」のチェックをオフにする
  • 権限管理で「行列による権限設定」にチェックを入れる
  • 追加するユーザー/グループで、管理ユーザー名を追加する
  • 匿名ユーザーの権限を全部オフにし、追加したユーザー権限に全てチェックをいれる

Pluginの設定

「Jenkinsの管理」→「プラグインの管理」

  • プラグインのアップデートを行う
  • 利用可能タブで、フィルター内に「Git Plugin」を入力してインストール

Bitbucketとの連携

Jenkinsをインストールした際に、「jenkins」ユーザーが自動で生成されているので、このアカウントを使用してBitbucketと連携させます。

Jenkinsユーザーでログインできるようにする

※vagrantで操作しているため、rootは全てsudo実行です。

$ sudo vi /etc/passwd

#修正
#jenkins:x:497:497:Jenkins Continuous Build server:/var/lib/jenkins:/bin/false
jenkins:x:497:497:Jenkins Continuous Build server:/var/lib/jenkins:/bin/bash

Jekinsユーザーの鍵設定

# jenkinsユーザーにスイッチ
$ sudo su jenkins

# ログインユーザー確認
$ whoami
jenkins

# 鍵生成
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen

ssh-keygenに関しては、パスフレーズは空で生成しています。
id_rsa/id_rsa.pub/known_hostsが生成されます。

Bitbucketに公開鍵を設定

作成したリポジトリ内で「setting」→「デプロイ鍵」にて「鍵を追加」で設定します。
id_rsa.pubの中身をコピーして、SSH鍵を登録します。

登録した鍵を通して、SSHでBitbucketにログイン

$ vi ~/.ssh/config

Host bitbucket.org
port 22
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/config
$ chmod 600 ~/.ssh/config/id_rsa

# bitbucketに接続テスト
$ ssh -T git@bitbucket.org

Bitbucketでフックを設定

この設定をすることで、リポジトリ上に変更があった場合、Jenkins側に通知がいくようになります。
Bitbucketの「setting」→「フック」

POSTを選択して、ホックを追加

http://JENKINS SERVER/git/notifyCommit?url=git@bitbucket.org:REPOSITORY.git

JENKINS SERVERはjenkinsをインストールしたURL
「url=」以降は、Bitbucketのリポジトリを参照して設定してください。(左メニューのクローンする→SSHからコピーできます。)

Jenkinsのプロジェクト(ビルド)を作成

  • ソースコード管理欄の「Git」を選択
  • Repository URLは先ほどと同じ「git@bitbucket.org:REPOSITORY.git」
  • リポジトリブラウザ欄、「bitbucketweb」を選択、URLにリポジトリのhttpアドレスを設定
    「https://USER@bitbucket.org/REPOSITORY.git」
  • SCMをポーリングにチェック(リポジトリにコミットがあった場合、実行)
    ※フックを設定してるのでいらないかも。
  • ビルド→「ビルドの手順追加」→「シェルスクリプト」でシェルコマンド記入

以上で、初期設定とBitbucketの連携は完了です。

今回は、Bitbucketのフックを利用してPOST通知を投げているのですが、
仮想環境なのでおそらく通知が飛ばないはず・・・。

Vagrantでのやり方とかあるのかもしれないので、この辺はまた調べてみようかと。

実際にVPSに入れる手順は別記事でまとめます。

スライド

次回は11月25日を予定しています。

トラックバック

TRACKBACK&PING

TrackBack URL :

コメントを残す

メールアドレスが公開されることはありません。