【Jenkins】Windows10でJenkinsを導入・環境構築を行う

# 最初に

どうも、ろっさむです。

本記事は業務の中でJenkinsが必要になったので1から構築し、その中で環境構築した手順をまとめたものとなります。もし間違いや改良点などあったらご指摘頂けると有難いです。



## 作業環境

当記事は以下の環境で作業したものとなります。

- Windows 10 Pro
- Jenkins 2.204.1 for Windows

また、今回はJenkins用のマシンを一台用意し、そこに対して他の社員がJenkinsにアクセスできるようにするまでの流れとなります。

# 環境構築

## JenkinsのDL

Jenkinsの公式HPからダウンロードするバージョンを選択します。

LTSとWeeklyが存在しますが、二つの違いは以下の通りです。

LTS（Long-term support）：12週間サイクルでアップデートされる安定したバージョン。つまりバグ修正や主要な機能の動作が保証されている。

Weekly：毎週、バグ修正と機能をアップデートしている最新バージョン。ただし動作が安定しないこともある。その際、エラー原因などを調べるのが面倒くさいのと場合によってはバージョンを下げるなどの対応が必要。

Jenkins初心者や実務の中で使用する方はLTSを選んだ方が無難かもしれません。今回、私の環境ではLTSの「2.204.1」を選択しています。

https://jenkins.io/download/



## Jenkinsのインストール

落としてきたら展開し、インストーラーを実行します。基本的にはNextで進めて大丈夫だと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/6106f812-9dc5-9b1a-57f3-c980a1d31a80.png)




## Jenkinsのセットアップ

インストールが完了すると自動的にJenkinsのTOPページが開かれます。初回起動時には管理者によるセットアップ手順として、`initialAdminPassword`というファイルに書かれているパスワードの入力を求められます。このファイルは`C:\Program Files (x86)\Jenkins\secrets`下にあります。ファイルは右クリックして`プログラムから開く`からメモ帳などで開きましょう。書いてある文字列をTOPページの`Administrator password`の欄に入力し、`Continue`を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/a2ed2768-2678-e8be-5494-722813ca15bc.png)




次にJenkinsのプラグインをインストールするための「Customize Jenkins」ページが開かれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/7a55ca7c-efed-27cf-a8e6-140c225e3a72.png)


ここで２つ選択ボタンがありますが、それぞれ以下のような意味になります。

**Install suggested plugins**：Jenkinsコミュニティにてよく使用されているプラグイン群をインストールします。公式から推奨されているものになるので、Jenkins初心者の方はこちらでもいいかもしれません。

**Select plugins to install**：自身で必要なプラグインを選択し、インストールします。あらかじめJenkinsでやりたいことなどが決まっている場合にはこちらを選んでカスタムしても良いと思います。

どちらを選んでも後から`Jenkinsの管理 > プラグインの管理`から、プラグインのインストール、アンインストールは行えるので好きな方を選びましょう。私の方では今回「Select plugins to install」を選択し、必要最低限のものだけを入れることにしました。



最後に管理者ユーザーのアカウントを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/0171406c-961f-c664-6dd2-c96312762600.png)

入力後に`Save and Continue`を押下します



最後にJenkinsのURLを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/d5147dea-b8f3-5620-aeba-e8ab0a93e2c4.png)


一旦このデフォルトのまま進めましょう。

最低限のセットアップは完了です。



次にJenkinsのURL設定を行います。



## Jenkins URLの設定

### ポート番号とPrefixの変更

まずはポート番号とPrefixの変更を行います。

ポート番号はデフォルトだと`8080`となっていますが、他のWeb関連アプリケーションもこの番号を使用する可能性があるので、任意の番号へ変えた方が無難かと思われます。今回は`80`番ポートへ変更します。`80`番ポートへ変更するとURL内でのポート番号記述を省略することができるのでURL自体が短くなります。

`http://[Jenkinsマシン名 or IPアドレス]:[ポート番号]/`

が、他マシンからJenkinsマシンにアクセスする際のURLとなりますが、`80`番ポートを指定すると、

例）

`http://[Jenkinsマシン名 or IPアドレス]:8080/`

↓

`http://[Jenkinsマシン名 or IPアドレス]/`

と書くことができます。



次にprefixについてです。同一マシンでJenkins以外の他アプリを外部からアクセスしたくなる場合も考慮して、上記のURLをそのまま使わずにjenkinsというprefixをつけてあげましょう。URLから、ユーザーがJenkinsページにアクセスしていることを示すことができます。

例）

`http://[Jenkinsマシン名 or IPアドレス]/`

↓

`http://[Jenkinsマシン名 or IPアドレス]/jenkins`



それではポート番号とprefixを変更してみます。

まずはJenkinsをインストールした場所にある`jenkins.xml`を「管理者として実行」をしたエディタ（メモ帳など）で開いてください。ちなみに私の場合は以下の場所にありました。

"C:\Program Files (x86)\Jenkins\jenkins.xml"

このxmlファイルにある以下の部分を書き換えていきます。

`<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>`

`--httpPort=8080`がポート番号となります。prefix足すには`--prefix`を追加しましょう。

↓ 

`<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=80 --prefix=/jenkins --webroot="%BASE%\war"</arguments>`

次に、Jenkins画面を開き、`TOP > Jenkinsの管理 > システムの設定`へ進みます。「Jenkinsの位置」という項目にある「Jenkins URL」を編集しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/4176347f-5922-9023-0b32-c1d08efa142c.png)


これで一旦Applyをしてください。

設定を反映させるために、一旦Jenkinsを再起動させます。JenkinsのTOPページを開いた状態でURLの最後に`restart`と付け加えてください。Jenkinsの再起動を行うかどうかのボタンが表示されるので押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/900d24d3-a2a7-31d3-160c-8610e590c1e4.png)


再起動後をしてしばらくした後に（30s〜1分くらい？）、Jenkinsマシン自身から、設定したURLでJenkinsのTOP画面に入れるか試してみてください。問題なければ、次はJenkinsマシン以外から`http://[Jenkinsマシン名 or IPアドレス]/jenkins`と入力をし、TOP画面に入れるかも確認してください。



次は表示されている警告「localhostの代わりに妥当なホスト名を設定してください。」を消していきます。



### localhostから任意のホスト名に変更

現在のままだとJenkinsマシン自身からJenkinsへアクセスしようとすると、localhost指定を行わなければいけません。外部PCからだと先述した通り、`http://[Jenkinsマシン名 or IPアドレス]/jenkins`でアクセスすることができるので、Jenkinsマシン自身もこのURLでアクセスできるように統一を行ってみます。localhost指定だと後々問題が発生するらしい…（[Jenkinsのインストールと初期設定 - ムーチョのメモ帳](https://sites.google.com/site/muchonote/jenkins/jenkinsnoinsutoruto-chu-qi-she-ding)より）

まずは、`hosts`ファイルにマシン名を登録します。`hosts`ファイルは以下の場所にあるので、「管理者として実行」をしたエディタ（メモ帳など）で開いてください。

`C:\Windows\System32\drivers\etc`

開いたらファイルの一番下に

`127. 0. 0. 1     [マシン名]`

と追加します。記述後は再度Jenkinsの`TOP > Jenkinsの管理 > システムの設定`を開いてください。 「Jenkinsの位置」という項目にて「Jenkins URL」を以下のように変更します。

`http://[マシン名]/jenkins/`

適用後はJenkinsマシンからも外部PCからも上記URLでJenkinsTOPへアクセスできるようになります。



とりあえず一通りの環境構築はここまでとします。この後にプラグインの管理やジョブの作成など、プロジェクト毎に必要となるセットアップを行うことになると思います。また知見が溜まったら書いていこうと思っていますのでよろしくお願いします。


# 参考
- [Jenkinsをインストールする手順(Windows)](https://itsakura.com/tool-jenkins-install)
- [Jenkinsのインストールと初期設定 - ムーチョのメモ帳](https://sites.google.com/site/muchonote/jenkins/jenkinsnoinsutoruto-chu-qi-she-ding)
- [Windows環境でのJenkins導入から、アドレス変更まで - ぺんぎんノート](http://momoiro-tj.hateblo.jp/entry/2014/09/15/003436)