Jenkins ( ver. 1.651.2 LTS and latest 2.8 weekly ) をインストールし、nginx をリバースプロキシとして設定する


## OS の環境

```/etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
```

## Oracle Java 8

### インストール

```
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
```

### 確認

```
$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
```

## Jenkins

[Jenkins](https://jenkins.io/ "Jenkins")

バージョンが、`1.651.2 LTS` と `latest 2.8 weekly` の Jenkins をインストールします。 ( 2016/06/08 現在 )

### LTS Release

LTS (Long-Term Support) releases are chosen every 12 weeks from the stream of regular releases as the stable release for that time period.

#### インストール

```
$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
```

#### サーバにアクセス

localhost または IP アドレスを使用してから、ポート 8080 で Jenkins サーバにアクセスできるようになります。  
Jenkins のバージョンが `1.651.2` ということが確認できます。

![ダッシュボードの表示確認](https://lh3.googleusercontent.com/KDlvgfh0N3HkdjG270gb6SvU94mkvsMXI8Mb4d7qi8b0-M0E_3p72FXDUhCcdqz1Rwd9qtH-APib2GNK20V4andA_5NP-aoeIjgQQUGOJfl6SDJAExZvX0-4gNQcAtDW64sPpiJGCrtg7dRlehHVWzJRcEBlfnXY2BWywDDNZyJAuDWg2ORI-fYnBf7B5diFlK9px7H7IBXZ3vUxTs9Qm65_GBi-GA5z8iFCzaSKT2Qmd_Bmb2IfMU9BXsqJAdiM4JQ6LS-tnHIYGNRJiqI0iRHsOcmwLZChYyO_yQfk5ADgHkToGV27nt2rb2HfVd6X1jTFzQ3DdJS4HbO7zX8IaT2TEp4GMMlK1Luo_-2J7dygwV9ZEeHbuqzbmw9UnyxjDAHOqWLyWPEKpgiEHVyWqfS39DZL2caSr-btTS3OguCwhWWi8ZPdaymOXtO1Bch71JJJ6VEukXWLeDJj2fLwa1yxOzwcC5E8NriQgN_KXFC5K8cPintxq2Bs6svRz7K98yp89ABbPczh3pPZ6OmHSbCoycBePW9-MicFFgnWxIYWS2mH4VM8BR_xSCLF8V5pTmoCJkSLtQyz1UOAcMRWkyI-JVxeLQ=w885-h478-no "ダッシュボードの表示確認")

### Weekly Release

A new release is produced weekly to deliver bug fixes and features to users and plugin developers.

#### インストール

```
$ wget -q -O - https://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
```

#### サーバにアクセス

Jenkins 2.8 では初期表示時に幾つかの手順を踏む必要があります。

##### 1. 管理者パスワードの入力

あなたは管理者パスワードを入力する必要があります。以下のコマンドを使用してパスワードを取得することができます。
パスワードをコピーし、 `Continue` をクリックします。

```
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
```

![1. 管理者パスワードの入力](https://lh3.googleusercontent.com/ynbFjpMU72K4OIf63Wb0KP06DWmIUwAlqNnvy6KMD77F_9V83KGhq-E8aCNHlUWduiLif_1toONdTpcGGkzBfk4ZrQdtHjTdqaaraiSwIP3APOyL84GSR1UXc8SH58TK3wCQBYKqCqcaDWQSW77L1dRoWyzF-gYM8EeYM8lCWUbtMAT5zDfJAXvQhtX-ycT8V0NEa5M2TMF0bL7M376MAIkPVVwvNHeSYDIbi11Q6Nw-crLjLPYkA9J12clksxHTSQgLA65KigdGCddU1qYFkKI-UwERcquSfkeJb1r8ohEhoduWfIR9X9B9Eb4QjXLduEv9q9HZ6BGVbKaYosdrpoM2nMeXOlWy8Jviqz7Nxv8lTZMG7LyIG5nknUHvQodHk9SflBryhqUiM0Ke9ekny_URsy_sd1yPvK2iu7XtcdGHyQdauJnMRbeCKC9n4Oxi7zkhCvFO4sBEwKRAsqtoff-7ecqouP9vilBkfOCAShkO5mzctREapPE0mwO4U25FFtG3ZB5ytr6mXePX_4Ut2jNqn0-Lx03cwKQPsMpr3URBluWv_B46nQAqAssz8KL0UQrzGlRQijgFazF72GKGGKBPcy2-WA=w884-h478-no "1. 管理者パスワードの入力")

##### 2. プラグインの設定

`Install Suggested plugins` をクリックします。これは、プロジェクトを構築するために必要なすべてのプラグインをインストールします。プラグインをインストールするには数分かかります。

![2. プラグインの設定](https://lh3.googleusercontent.com/k6Ikm3W2HT4XLaoO7oj9q3XmGDr6pUq88ejwDLPsnTCQZ6gYCegrU6Gz4-gRQvSGJJT_YMxhYteytEB2r7aeqXn4mwH_Bw7zpfnBOUi07ZHSVTc9gvLfPHvRQP8ESoqTUfpVpQ6NGJFSbnjDMo0ywatFwHH_GwYgE0ihDwj4mgJS11kkW1m86000OOfMwqPE3QZztUbqLARQ7CSKEf4DAAWoZSgG3NFQYzVXpyqF0nb44BXFBD5kgdYXjdtPuihClSFxrjkQbOHAQwViryx7vGwHBIOUbFEuSan4DgRMdiceWi8bJwmD0o8hg4flaw5bAoIc8kR2FQQv1lklozZNN7cTtYeqlUSFDrgm-RTWruwAPdD5Lb1PNls97EAzBmZHBtEMdx7Md0XN5DZ2qKrcmvozAZrv9hFKiwqQgsh7U1kBjV7EC7UfBuVh-7egqbgRKdpwg1QbZ0tBqTPFGZBtv_FqT3vUyC9q2ycn77gVE9f03Nhh26GSlSXSeEQePuLDsE4vzhIOlFLqhkWoya4qyi0jNb0j-c6VTE5fhBoEiOz63qA24nnC4Yb4ZQHNSvi0IU7uIQ-uz1e-4yyrbnPTVRPU-EA2yA=w884-h478-no "2. プラグインの設定")

##### 3. 初期管理者ユーザの作成

初期管理者ユーザーを作成し、 `Save and Finish` をクリックします。

![3. 初期管理者ユーザの作成](https://lh3.googleusercontent.com/7Pn_5zNI2GrCblP1HqjfEk_ksTTB_EJpwSGrQOnKx_leoAxddu1uzg0xvJa5jNTgXCIh0cz3O2arfrUPP5KVD3jQ2d7AEzAXXxRxYvedo5Rwb-DKnNP3Un38IdZBsULGr5U36OL7qgb3F9ooTCAKYEcKZC1-1i2Mw0XeNGWB9e7wxKFkX9qZT8iJOU8W0bIFw3CEYCUgHplgafzCuDDP11cxk8qEs8bzVfAtmks-Vh9zdoLvX9_5Wu-BZKaLEOPNOStypXUkrbE9j8NEh2qXgHyyE2ULqMmEMCSznOZzR_1UYvKkMlvUJAbtiCy5aeaEQHoKSZ7lQXxNm_hF9wDRrobUnj02YUwD8CeePitRo3JRCqffGr-Ee1zJer_Ct26h6iPjSGIRgO5iNx-CcLSxhqPQq8cAqPa2cVGDX746WTVvZeePlzR71FIvmU3WqP_kggE6A3ENcyaC-3t4cX1E31PPT2rqHACfHuOY6P32tkIat5bKsJjAa-honS6PylHj9maiKHZLIGSSBX4HJWqF3HphNR2Dm6gJdSbK6hOyn82K4MdV4C8mLn89G0N93XP_5g2RZKn7J_MTfSZn40eqtOAC8HS9zQ=w885-h478-no "3. 初期管理者ユーザの作成")

##### 4. 設定完了

`Start using Jenkins` をクリックすると Jenkins のダッシュボードが表示されます。

![4. 設定完了](https://lh3.googleusercontent.com/sJU1AcjxPAZR58VtW6x8Sp-HzsY88NT3-f1MVEQByxGXuDpqVVVqw9xCzbYTIpIE5giZZwItvkxl4GhbB1YYFjKWch_6hZxP7UAW32v0l4Ip1_7qmtyQgeFbMbbnqk0cR8sb0a3VsbhjM6fp5rLjArPZ0Qo6eRQ48F7--G4nKydgtEER9qNTzmvxKuPHYnqSYJuL4Rthr1Lk6Wo1pBwolpjluo-OA1Jf5oneSmjRGyMgyfDNazUI3DOExzS9j6aXBQfKRA2htaE-uvVlcYKL7lj4iJ6RWSFcaqhiEJZjEwTpB_a2ZXgb-1K8lTBjpn0jJMu4waTu_KmdeL7DoUnjR2LHAQ-Z5fa6-ajjXvkUutQr4upNkAAtd-ceHAZtl8dGbIxmiMJPEZQla7_6BMj6MvpuLYWrILQoKpYYBRMmT_OxxGUQgZlFprzKSrF1fKCY39ha9pEXQrdYuaMT0wJTk31XQ8c3ADjZ-fOcXV7Zwbmso_C-a043aeslXWmY7cC-FZtV7k5s4XlVQY_GYHvozV27heDtuFEbLeRaqw1FlImd1W7Ljd0G5yiAOPr3lJJFpC4vmRODVI6SgTQUBD6uC9l1Rvh2-g=w883-h478-no "4. 設定完了")

##### 5. ダッシュボードの表示確認

Jenkins のバージョンが `2.8` ということが確認できます。

![5. ダッシュボードの表示確認](https://lh3.googleusercontent.com/G-Xe2icqcKdohxCEi6-bm68h-vbMLiRiY3xJPcSafVcNn03GJ-TTsEGGgZRJM_Fmx4jArzDZT7ydnzddoqdLPvNmDl2Q-LtG90Pie-sWTisHYp2FjEGCxzQ5NCZGINWwgVL-QWgTgHexubL4reQ8jMeYHH_r4K0S5lp_q5WkLMdPiJjVOSUCT5Kt4UXltwUR8i6SupTn6gOB6LKEMa8ds1oDyH61zukSsOY8QmV6vYW6PCUhxXcIdoi-2k4zjvaqXhwUP1MFTEzqDWOMYWAHRAllKUHTczT1lonsudqPA6vaACzIDQJ-NyJdCHgyba1jYANn1wPhcCavln-iWqnArj33mr1Ytt_z5p_umEyQ6V4qqmdmXOwQaKiyKMsqUnhkOWenRVMyHAVCU3IhiONaXOiVPn6DAoRfJNsLuy2Q79QIVh4_gyQCtDHEqfy_kTxy1BnLcj1U0EqS42LQ624ZNPy-eJeOFloy2QtwrGacULYsx0XkCEkltXg80R0FnsNIyf-CZ51GggdxGtRyuNimd-Kv7XULD1RwpfHOOcWiA2ly3FFjp1a0pjTsxC9zC2HbR0PohCZ1_IHHAXNYHKI6bEd5RqscHg=w885-h478-no "5. ダッシュボードの表示確認")

### アップグレード

```
$ sudo apt-get update
$ sudo apt-get install jenkins
```

## nginx を Jenkins のリバースプロキシとして設定

ポート 80 からポート 8080 へのプロキシを設定します。

### インストール

```
$ sudo add-apt-repository ppa:nginx/stable
$ sudo apt-get update
$ sudo apt-get install nginx
```

### 確認

```
$ nginx -v
nginx version: nginx/1.10.1
```

### 設定

```nginx:/etc/nginx/nginx.comf
upstream app_server {
    server localhost:8080 fail_timeout=0;
}

server {
    listen 80;
    listen [::]:80 default ipv6only=on;
    server_name localhost;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://app_server;
            break;
        }
    }
}
```

### 再起動

```
$ sudo service nginx restart
```

## 参考文献

* [Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki](https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu "Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki")