さくらの VPS に Jenkins を入れてみた


### Abstract

CI (Continuous Integration; 継続的インテグレーション)ツールである、Jenkins (旧: Hudson)を、さくらの VPS サーバ(CentOS、このサーバ)にインストールして、使い始めるところまで設定したときのメモです。

同様の記事は余所にもあるのですが、そのものずばり同じ環境なものが見当たらなかったので、まとめました。


##### Keywords:

* [CI (Continuous Integration; 継続的インテグレーション)](http://ja.wikipedia.org/wiki/%E7%B6%99%E7%B6%9A%E7%9A%84%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3) (Wikipedia)
* [Jenkins](http://ja.wikipedia.org/wiki/Jenkins) (Wikipedia)
* [Jenkins](http://jenkins-ci.org/) (公式サイト)

##### 図：Jenkins 公式サイト

![Jenkins 公式サイト](http://blog.cosmosphere.jp/assets/img/up/20130405-jenkins-1.jpg)


### 0. 環境

#### 0.1. インストール前環境

* さくらの VPS
* OS: CentOS release 6.4 (Final)
* HTTP Server: Apache/2.2.15 (Unix)
* Java: 未インストール


#### 0.2. インストール後環境

* Java: OpenJDK 1.7
* Jenkins: 1.509
* Jankins 用に、Apache の VertualHost を立てる
→ http://jenkins.(ドメイン名)/


### 1. Java/Jenkins インストール

#### 1.1. Java インストール

<pre>
# yum list \*java-1\*
# yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
</pre>

#### 1.2. Jenkins インストール

参考： [http://pkg.jenkins-ci.org/redhat/](http://pkg.jenkins-ci.org/redhat/)

<pre>
# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
</pre>

<pre>
# yum install jenkins
</pre>


#### 1.3. Jenkins 起動

<pre>
# /sbin/service jenkins start
# curl localhost:8080
</pre>

なんか動いてるっぽい。


### 2. Jenkins/Apache 設定(失敗)

__※注：2. は失敗例なので、お急ぎの方は、3. までどうぞ。__

#### 2.1. Jenkins の設定変更(ポートとか)

<pre>
# vi /etc/sysconfig/jenkins
</pre>

``` Bash:/etc/sysconfig/jenkins
JENKINS_PORT="8010"

JENKINS_ARGS="-prefix=/jenkins"
``` 


#### 2.2. Apache の設定変更(バーチャルホスト)

<pre>
# vi /etc/httpd/conf/httpd.conf
</pre>

``` Bash:/etc/httpd/conf/httpd.conf
<VirtualHost jenkins.(ドメイン名):80>
	ServerAdmin root@localhost
	ServerName jenkins.(ドメイン名)
	<Location /jenkins>
		ProxyPass http://localhost:8010/jenkins
		ProxyPassReverse  http://localhost:8010/jenkins
	</Location>
</VirtualHost>
``` 

#### 2.3. Jenkins/Apache 再起動

<pre>
# /sbin/service jenkins restart
# /sbin/service httpd restart
</pre>


#### 2.4. ブラウザからアクセスしてみる

→ http://jenkins.(ドメイン名)/jenkins

>	Status Code: 404

・・・(；ω；)


#### 2.5. ローカルからアクセスしてみる

<pre>
# curl localhost:8010
</pre>

>	Welcome to Jenkins!

動いてはいるっぽい・・・


### 3. Jenkins/Apache 設定(成功)

#### 3.1. Jenkins の設定変更(再)

<pre>
# vi /etc/sysconfig/jenkins
</pre>

``` Bash:/etc/sysconfig/jenkins
JENKINS_PORT="8010"

<b>JENKINS_ARGS="-prefix=/"</b>
``` 


#### 3.2. Apache の設定変更(再)

<pre>
# vi /etc/httpd/conf/httpd.conf
</pre>

``` Bash:/etc/httpd/conf/httpd.conf
<VirtualHost jenkins.(ドメイン名):80>
	ServerAdmin root@localhost
	ServerName jenkins.(ドメイン名)
	<Location />
		ProxyPass http://localhost:8010/
		ProxyPassReverse  http://localhost:8010/
	</Location>
</VirtualHost>
``` 


#### 3.3. Jenkins/Apache 再・再起動

<pre>
# /sbin/service jenkins restart
# /sbin/service httpd restart
</pre>


#### 3.4. 再びブラウザからアクセスしてみる

→ http://jenkins.(ドメイン名)/

>	Jenkinsへようこそ！ 開始するために新しいジョブを作成してください。
</pre>

・・・(ﾟдﾟ)ｳﾏｰ

##### 図：Jenkins ダッシュボード(いくつかジョブを追加後)

![Jenkins 公式サイト](http://blog.cosmosphere.jp/assets/img/up/20130405-jenkins-2.jpg)


### 4. Jenkins 認証設定

#### 4.1. ログイン認証の追加

* Jenkinsの管理＞グローバルセキュリティの設定
* 「セキュリティを有効化」にチェック
	* アクセス制御＞ユーザー情報＞「Jenkins のユーザーデータベース」、「ユーザーにサインアップを許可」にチェック
	* アクセス制御＞管理権限＞「ログイン済みユーザーに許可」にチェック
* 保存 (トップ画面に戻される)

##### 図：Jenkins の管理＞グローバルセキュリティの設定

![Jenkins 公式サイト](http://blog.cosmosphere.jp/assets/img/up/20130405-jenkins-3.jpg)


#### 4.2. ユーザー(＝自分)の追加

Jenkins トップから、

* アカウント登録＞サインアップ
* 「ユーザー名」、「パスワード」、「パスワードの確認」、「フルネーム」、「メールアドレス」を入力して、サインアップ


#### 4.3. ログイン認証の設定変更

この辺り、しくじると誰もログインできなくなってしまうので、要注意。

* Jenkinsの管理＞グローバルセキュリティの設定
* アクセス制御＞ユーザー情報＞「ユーザーにサインアップを許可」　のチェックオフ
* アクセス制御＞ユーザー情報＞管理権限＞「行列による権限設定」 にチェック
* さっきのユーザー名(自分)を入力して、追加
	* ユーザー名(自分) の行のチェックを全てオン
	* 匿名ユーザー の行のチェックを全てオフ (なってると思う)
* 保存


#### 4.4. いったん、ログアウトする

* ログインパネルのみ表示されて、新規のサインアップが出来なくなっている
* 自分のユーザー名、パスワードでログインできる

となっていれば、ＯＫ。

##### 図：Jenkins ログイン画面

![Jenkins 公式サイト](http://blog.cosmosphere.jp/assets/img/up/20130405-jenkins-4.jpg)

・・・と、ひとまずここまで。


### References & Thanks

* [さくらのVPS CentOS6.2にJenkinsさんをインストール ＠ 僕の車輪の再発明](http://kazuph.hateblo.jp/entry/2012/09/23/151623)
* [RedHat Linux RPM packages for Jenkins](http://pkg.jenkins-ci.org/redhat/)
* [さくらVPSにjenkinsを入れてみたときの備忘録 ＠ ミラボ](http://log.miraoto.com/2012/04/486/)
* [さくらのVPSでJenkins -執事さんとご対面- ＠ PPl@ce](http://pplace.jp/2011/06/204/)
* [さくらVPSでJenkinsをセットアップし、認証を行うまで ＠ ひたすらメモするだけのブログ](http://www.yaunix.com/2013/02/04/%E3%81%95%E3%81%8F%E3%82%89vps%E3%81%A7jenkins%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%97%E3%80%81%E8%AA%8D%E8%A8%BC%E3%82%92%E8%A1%8C%E3%81%86%E3%81%BE%E3%81%A7/)