jenkinsとbitbuketを連携する

プログラミング
この記事は約4分で読めます。

参考にしたサイト

ユーザー認証ありのJenkinsとBitbucketプライベートリポジトリを連携

前提

  • jenkinsをインストールしている
  • bitbucketのアカウントを取得済み

行うこと一覧

  • jenkinsの入っているサーバのjenkinsユーザでsshキーペアを作る
  • bitbucketに作成した公開鍵を追加する
  • jenkinsの入っているサーバにbitbucketへのssh接続設定をする
  • jenkinsにGitPluginを入れる

やってみる

とりあえず、jenkinsの入っているサーバにsshで入り、jenkinsユーザの確認をする。jenkinsユーザはjenkinsをインストールした際に生成されているはず。デフォルトの設定がjenkinsユーザにログインできないため、ログインできるようにする。

$ cat /etc/passwd
jenkins:x:497:498:Jenkins Continuous Build server:/var/lib/jenkins:/bin/false
# emacs /etc/passwd
jenkins:x:497:498:Jenkins Continuous Build server:/var/lib/jenkins:/bin/bash

jenkinsユーザでログインし、sshキーペアを作成する。制作する場所は /var/lib/jenkins/.ssh の中。パスフレーズは無し。

$ sudo su - jenkins
$ whoami
jenkins
$ pwd
/var/lib/jenkins
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen

公開鍵(jenkins_rsa.pub)をBitbucketに登録する。Bitbucketにログイン→管理画面→アカウントの管理→SSHキー→鍵の追加。公開鍵はコピペで追加できるのでscpなどの必要はない。(参考:SSH 接続クライアントの設定、 Macの ~/.ssh/config に SSH 接続の設定を書いておく 〜 CentOS6

次に簡単にBitbucketに接続するためのSSH接続設定を行う。そしてBitbucketにアクセスできるかのssh接続してみる。初回の接続メッセージはyesでおk。

$ vi ~/.ssh/config
Host bitbucket.org
port 22
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
$ chmod 600 ~/.ssh/config
$ ssh -T git@bitbucket.org

jenkinsにGitPluginを入れる。Jenkinsの管理 → プラグインの管理 → 利用可能 → 「Git Plugin」を入れる→再起動するのでjenkinsに再ログイン

Hello Worldジョブを作成する。Jenkinsにログインして、

新規ジョブ作成 → 「ジョブ名」に「HelloWorld」と入力 → 「フリースタイル・プロジェクトのビルド」にチェック → OK

  • 「ソースコード管理システム」で Git を選択
  • 「Repository URL」に Bitbucket リポジトリの URL(git@bitbucket.org:user_name/repo_name.git)を入力
  • 「リポジトリ・ブラウザ」で bitbucketweb を選択 → 「URL」に Bitbucket リポジトリのURL(https://user_name@bitbucket.org/user_name/repo_name.git)を入力
  • 「ビルド・トリガ」で「SCMをポーリング」にチェック
  • ビルド → ビルド手順の追加 → シェルの実行 → 「シェルスクリプト」に’Hello World’を出力させるシェルスクリプトを入力(echo ‘Hello World!’)

以上でジョブの設定は完了。後はビルドを実行して結果を確認する。

  • ダッシュボード → 「HelloWorld」ジョブをクリック → 左メニューの「ビルド実行」をクリック
  • ビルド履歴 → コンソール出力(Console Output) → 「Hello World!」の出力を確認
  • ビルド履歴にちゃんとリポジトリからのクローンが確認できる
  • ワークスペースにもリポジトリのソースファイルがあることがわかる。
これにて連携終了!!
あとは、ビルトのスケジュールを組んだりするだけ。

 

コメント

タイトルとURLをコピーしました