(このシリーズは自分用の備忘録なので、割と適当です。)
設定編は今回がラスト。
①ユーザの作成
(このあたり初回しか表示されないのでSSがない)
VPSの8080ポートにアクセスすると、管理者パスワードの設定画面が表示されるので設定する。
次にプラグインのインストールを促されるので、「Install suggested plugins」(推奨プラグイン)を選択する。
で、初期ユーザの設定画面が表示されるので、ユーザを作成する。
②ユーザ認証をかける
このままだと誰でもログインできてしまうので、①で作ったユーザのみアクセスできるように設定を変更する。
「Jenkinsの管理」-「グローバルセキュリティの設定」
「セキュリティを有効化」にチェックを入れ、「ユーザー情報」-「Jenkinsのユーザーデータベース」にチェックし、
「ユーザーにサインアップを許可」のチェックをつける。
「権限管理」-「ログイン済みユーザーに許可」にチェックをつける。
いったんログアウトして、追加したユーザでログインしなおす。
再度設定画面を開き、「ユーザーにサインアップを許可」のチェックをはずし、
「追加するユーザー/グループ」に追加したユーザを入力して追加し、
匿名ユーザの全チェックを解除、追加したユーザを全チェック。
③jenkinsユーザの有効化
ここでいうユーザとは①のJenkinsアプリの中のユーザのことではなく、OSのユーザのこと。
特に設定を変更しない限り、Jenkinsのビルドタスクは「jenkins」というユーザで実行される。
ビルドコマンドが実際に叩けるか確認したい場合など、このユーザでログインできないのは不便なので、
ログインできるように設定を変更する。
vi /etc/passwd
jenkinsの行の末尾の「/bin/false」を「/bin/bash」に変更して保存。
④BitBucketをSSHで連携する
パスワード認証だとうまくいかないため、鍵認証を使う。
まずはjenkinsユーザになって、鍵を作成。
su jenkins cd ~ mkdir .ssh cd .ssh ssh-keygen cat jenkins_rsa.pub
jenkins_rsa.pub(公開鍵)の中身をBitBucketに登録する。
「設定」-「一般」-「デプロイ鍵」から「鍵を追加」。
ぺたりと貼って適当な名前を付ける。
⑤BitBucketにWebhooksを設定
gitリポジトリにpushした際に、リポジトリ側からJenkinsに通知を飛ばし、
それをトリガにビルドを行うようにWebhooksを設定する。
「設定」-「総合」-「Webhooks」から「Add webhook」。
URLには以下のルールでURLを設定。
http://【VPSのURL】:8080/git/notifyCommit?url=git@bitbucket.org:【Gitユーザ名】/【リポジトリ名】.git
⑥ビルドJobを作成
「新規ジョブ作成」で適当にジョブの名前を設定し、「フリースタイル・プロジェクトのビルド」を選択。
「ソースコード管理」で「Git」を選択し、「Repository URL」にGitのURLを設定する。
この際、HTTPSではなくSSHを選ぶことに注意。
「ビルド・トリガ」で「SCMをポーリング」を選択する。
スケジュールは空欄のままで良い。(スケジュールされていないので起動しません。というメッセージが出るが無視)
「ビルド」で「Mavenの呼び出し」を選択し、
「使用するMaven」に「Default」、「ゴール」に「package」を設定する。
(今回は実行可能jarを作成するため、packageを利用する)
ディレクトリの作成などで権限関連でコケる場合は、
「シェルの実行」を選択して「sudo mvn package」としてしまえばいいと思う。
デプロイ場所を変えたければ、シェルの実行でmvコマンドとかを「ビルド後の処理」に設定すれば良い。
設定を保存し、リポジトリに何かpushしてビルドが走ればJobの完成。
⑦定期実行Jobを作成
実行可能jarが作れるようになったので、これを定期的にトリガする。
いわゆるただのcrontabなので、別にJenkinsで管理しなくてもいい。
「新規ジョブ作成」で適当にジョブの名前を設定し、「フリースタイル・プロジェクトのビルド」を選択。
「ソースコード管理」は「なし」。
「ビルド・トリガ」は「定期的に実行」を選択し、実行したい時間を設定する。(下記は10分に1回の設定)
「ビルド」は「シェルの実行」を選択し、「java」コマンドを設定。
とりあえずこんな感じ。
さくらVPSで遊んでみるにあたって、今回設定した内容を備忘録的に残してみた。
設定しながらSSを取ったわけではないので、抜けているところはあるかもしれないが、
もう一回設定するときにこれを見れば簡単にできる…と信じたい。