参考にしたサイト
ユーザー認証ありの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!」の出力を確認
- ビルド履歴にちゃんとリポジトリからのクローンが確認できる
- ワークスペースにもリポジトリのソースファイルがあることがわかる。
これにて連携終了!!
あとは、ビルトのスケジュールを組んだりするだけ。
コメント