Jenkins構築 - GTNDYanagisawa/million GitHub Wiki

private cloud(ubuntu) でjenkins サーバーを立ち上げる

今回使ったマシンのIPは 172.16.xxx.xxx です。

jenkinsサーバー へは ID:ubuntu PW:いつもの でログイン可能

jenkins へは http://172.16.xxx.xxx:8080 へアクセス(ssh [email protected])して

ID:ubuntu PW:いつもの

でログイン可能

ポート解放

jenkins で使用するポートを空ける。(既に空いている場合は問題ない。空けるポートは8080が無難?)

sudo ufw allow 8080/tcp

javaのインストール(必要なら)

apt-get install python-software-properties
add-apt-repository ppa:ferramroberto/java
apt-get update
apt-get install sun-java6-jdk sun-java6-plugin

確認

java -version

git のインストール

sudo apt-get install git-core

gitのユーザ設定が必要(system ユーザの設定じゃないとだめ?global だと何故か jenkins pulug-in から読み込めない)

sudo git config --system user.name "ユーザ名"
sudo git config --system user.email "メールアドレス"

git のバージョンアップについて

現在(2013/7/3)上記方法でgit をインストールするとバージョンが1.7.0と最新でないものがインストールされます。git が最新バージョンが古いとfetch 時にエラー出るようなので下記を参考に新しいバージョンを入れる。

# ソースをダウンロード
$ wget https://git-core.googlecode.com/files/git-1.8.1.tar.gz
$ tar zxvf git-1.8.1.tar.gz
$ cd git-1.8.1/
# 必要なライブラリを apt-get で取得
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
$ ./configure
$ make prefix=/usr/local all #all をつけないと root 以外のユーザで使えない
$ sudo make prefix=/usr/local install

また、git のバージョンを上げた際にジョブを新規に作成し直す必要がある。

google_appengine のインストール

pyhon2.5 のインストール

ubuntu10 ではpython2.6が標準のため2.5をインストールする必要がある。

sudo apt-get install python2.5

google_appengine のインストール(最新のバージョンのインストール下記の例では1.8.0)

wget http://googleappengine.googlecode.com/files/google_appengine_1.8.0.zip
unzip google_appengine_1.8.0.zip

appengine の場所は /usr/local/google_appengine にないとエラーになるのでリンクを貼る。

下記はホームディレクトリにgoogle_appengine を解凍した場合。

sudo ln -s $HOME/google_appengine /usr/local

jenkins のインストール、設定

 更新用のkey情報を取得。

sudo wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

#/etc/apt/sources.list の末尾に以下の行を追加

deb http://pkg.jenkins-ci.org/debian binary/

ジェンキンスのインストール

sudo apt-get update
sudo apt-get install jenkins

GUIを確認

  http://172.16.xxx.xxx:8080 へアクセスしてページを確認出来たらインストールは完了。

  • 詳細設定
プラグインの設定を行う。TOP -> Jenkinsの管理 -> プラグインの管理 から「利用可能」タブを選択後下記のプラグインを追加 Credentials Plugin,Deploy to container Plugin,FindBugs Plug-in,GitHub API Plugin,GitHub Plugin, Hudson Post build task,Jenkins disk-usage plugin,Jenkins GIT plugin,Jenkins jQuery plugin, Jenkins SSH Slaves plugin, Node and Label parameter plugin, Python Plugin (上記の中ではプラグインをインストールしたときにインストールされるプラグインが含まれるので、あくまで目安です。)
  • 新規ジョブの作成
develop をデプロイする場合。(ユニットテストとかはちょっと違うかも) TOP->新規ジョブ作成 から 名前をつけフリースタイル・プロジェクトのビルド を選択する。

・ソースコード管理

Git を選択 Repository URL には

https://pacquiao-test:[email protected]/bbtinc/pacquiao.git

を指定。

・ビルド

シェルの実行に

echo "************" > password
# /usr/bin/perl -pi -e 's/1[,\s1-9]* of month/every day/' cron.yaml
PYTHON_PATH=/usr/bin/python /usr/bin/python manage.py
compile_all_translations
/usr/bin/python manage.py appcfg update [email protected] --no_cookies --no_precompilation --passin -A lesson757sandbox < password
/usr/bin/python manage.py appcfg backends update [email protected]  --no_cookies --passin -A lesson757sandbox < password
git checkout cron.yaml

を追加

・ビルド後の処理

Postbuild task のスクリプトに

 RESULT=`curl ${BUILD_URL}api/xml | perl -le '$_=<>;print [/<result>(.+?)</]->[0]'`

 if [ $RESULT = "SUCCESS" ]; then
   echo "SUCCESS"
else
     curl -F chat='#ogiyuta/$myanaskype;6e527059d25d3d88' -F message="[Jenkins] $JOB_NAME: FAILURE -> $BUILD_URL"   http://skypebot.zsrv.net/skypehub/post_message/
     appcfg.py rollback . [email protected] --passin -A lesson757sandbox < password
     appcfg.py backends . rollback backend [email protected] --passin -A lesson757sandbox < password
     appcfg.py backends . rollback rep-backend [email protected] --passin -A lesson757sandbox < password
 fi

を追加

  • script に使う環境変数に関する注意

BUILD_URL 等 *_URL 系の環境変数は本来設定せずに使用出来るはずだが、環境変数チェックボックをチェックして保存を押さないと使用できない。 詳しくは下記 http://jenkins.361315.n4.nabble.com/JIRA-JENKINS-16225-JENKINS-URL-JOB-URL-BUILD-URL-not-set-td4650017.html

  • アカウントの追加

1.TOPから Jenkinsの管理→グローバルセキュリティの設定にて

2.ユーザ情報のjenkinsのユーザーデータベースを選択→ユーザにサインアップを許可をチェック

3.権限管理にて行列による権限設定(プロジェクト単位で指定しない場合)を選択→ユーザを追加&追加したユーザの全ての項目にチェック

4.上記設定を行い画面左下の保存ボタンを押すとログイン画面へ遷移する

5.サインアップから先ほど登録したユーザ名を指定して、残りの項目を埋める。

⚠️ **GitHub.com Fallback** ⚠️