jenkins

jenkinsとBitbucketの接続 in CentOS7.2

o_wani
この記事は作成から5年以上経過しているため、内容が古くなっている可能性があります。

実現したい流れ

  1. ローカル環境でBitbucketにPUSH
  2. Bitbucket から jenkins にPUSHを通知
  3. jenkins が Bitbucket から変更を取得
  4. 変更を取得し、指定したディレクトリに変更を反映(自動デプロイ)

jenkinsのインストールはこっち

jenkinsが動くサーバー側

1.公開鍵と秘密鍵の作成

Bitbucketに登録するための公開鍵とjenkins側に登録するための秘密鍵を生成する。

/etc/passwdの修正

jenkinsユーザにスイッチできるように修正しておく。

jenkins:x:994:992:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

jenkinsユーザにsuしkeygen

$ sudo su jenkins
bash-4.2$ ssh-keygen

おまけ(参考まで)

keyの作成はjenkinsユーザにスイッチしなくてもいける。

$ sudo -u jenkins ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa):
Created directory '/var/lib/jenkins/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
0e:02:68:56:1b:3f:c8:1d:ea:55:95:46:db:52:25:92 jenkins@server
The key's randomart image is:
+--[ RSA 2048]----+
| o . .o+oo.. |
| .o B o E= . |
|.o.= = .o . |
|o ... . . |
| .. . S |
| . o |
| . |
| |
| |
+-----------------+

Bitbucket側の準備

今回は、リポジトリに対しての設定ではなく、ユーザーに対しての設定メニューからSSH鍵を登録する。そのため対象リポジトリにアクセス権限のあるいちユーザーの設定で鍵の登録をする。

1. 公開鍵の登録

設定>セキュリティのSSH鍵から鍵を追加する。
/var/lib/jenkins/.ssh/id_rsa.pub

Alt text

「Label」「Key」を入力して鍵を追加します。「Key」の内容は先ほどの、id_rsa.pub

Alt text

2. WebHookの登録

今回は、リポジトリに対しての設定からWebhooksの登録をする。

Alt text

「Add webhook」

Alt text

URLは、

http://[jenkinsドメイン]/git/notifyCommit?url=git@bitbucket.org:[リポジトリ名]

Triggerに関してはお好みで。

jenkins側

新規ジョブ作成

jenkins側にジョブを登録する。

Alt text

「ジョブの名前」を入力、「フリースタイル・プロジェクトのビルド」を選び、OK。

ソースコード管理「Git」

認証情報では、Bitbucketのログインユーザを選択する。

Alt text
「追加」ボタンで認証情報を追加する。

Alt text

Domain:グローバルドメイン
種類:SSHユーザ名と秘密鍵
スコープ:グローバル
秘密鍵:Jenkinsマスター上の~/.sshから

うまく認証できないと

Alt text

こんな感じでエラーになり、エラーが表示されなければ正しく認証されている。

次に、リポジトリ・ブラウザも入力する。

Alt text

リポジトリのHTTPSでCloneするURLを入力。

SCMをポーリングはいったん空でOK。
これで準備OKです。

developブランチのPUSHをトリガーにしていたので

Alt text

こんな感じで、Bitbucket側にPUSHされると、jenkins側でビルド履歴が溜まっていく。
jenkins と Bitbucketの連携はできた。

参考

jenkinsとbitbucketの連携

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました