仕事で Jenkins を使ったCI環境を立ち上げたので,メモがてら手順を書いておく.
環境は さくらのVPS, OS は Debian 6.
内容的には,セキュリティの設定が完了して実際にプロジェクトを立ち上げられるまで.
Jenkins の導入
参考: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
Debian 系の場合は apt-get だけで全てやってくれる.
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
これだけでサーバが勝手に立ち上がってくれる. 楽ちん.
ブラウザで http://your-server-address:8080 にアクセスして Jenkins が立ち上がっていることを確認.
もちろん your-server-address の部分は置き換える.
セキュリティ設定
今のままだと Web 経由で誰でも自由に Jenkins をいじれるので,セキュリティを設定する.
いろいろな方法があるが,今回は Github OAuth Plugin を使った.
これを使えば独自にアカウントを管理しなくていいし, GitHub とも連携しやすくなる.
まずプラグインを導入するが, GitHub OAuth Plugin の最新版(0.13)はエンバグしているため,普通にインストールしても動かない.
そこで,必要なプラグイン( GIT Plugin や GitHub Plugin , GitHub API Plugin 辺り)をインストールし,
ついでに既存のプラグインをアップデートした後に,
https://issues.jenkins-ci.org/browse/JENKINS-16492 にある Workaround を参考に, 0.12 をインストールする.
sudo service jenkins stop sudo rm -rf /var/lib/jenkins/plugins/github-oauth* sudo -u jenkins curl http://updates.jenkins-ci.org/download/plugins/github-oauth/0.12/github-oauth.hpi -o /var/lib/jenkins/plugins/github-oauth.jpi sudo service jenkins start
こんな感じ.
GitHub OAuth Plugin の 0.13 はバグってたが,最新バージョンでは修正されたため,
普通に「プラグインの管理」からインストールするのが楽.
インストールの際は,依存パッケージである GitHub API Plugin の他,
GIT Plugin や GitHub Plugin などもインストールしておくとよい.
次は GitHub の OAuth を使うためにアプリケーションを登録する.
https://github.com/settings/applications/new にアクセスし, Application Name は適当に Jenkins 辺りを設定,
Main URL には http://your-server-address:8080 を,
Callback URL には http://your-server-address:8080/securityRealm/finishLogin を,
それぞれ設定(もちろん your-server-address は適切に置き換える).
登録したら Client ID と Client Secret を確認.
あとは「Jenkinsの管理」から「グローバルセキュリティの設定」を選択,
「セキュリティを有効化」をチェックして「Github Authentication Plugin」を選択,
先ほど入手した Client ID と Client Secret を入力し,一旦保存.
保存したら右上のリンクからログインが出来るようになってるので,ログインする.
その後,「グローバルセキュリティの設定」から「Github Commiter Authorization Strategy」をチェック,
「Admin User Names」に管理権限を付与したい GitHub アカウント名をカンマ区切りで記述し,保存.
別のブラウザを使うなどして GitHub からログアウトした状態でアクセスし,アクセス出来ないことを確認する.
ひと通り設定できたので
あとは適当にプロジェクト立ち上げて試行錯誤してください.
GitHub pull request builder plugin とか便利ですよ.
補足的な
GitHub Plugin の Web-hook 機能を使う場合には, Github Commiter Authorization Strategy で
「Grant READ permissions for /github-webhook」をチェックする良いです.
追記 (25:00, 02/05)
GitHub OAuth Plugin の 0.13 がバグっている件ですが,
現在はパッチが当たったため,普通にインストールしても問題ないようです.
こちらでは まだ試してないので,実際に上手くいくかは分かりません.
追ってレビューしたいと思います.