Jenkinsインストールのメモ書き

だいぶ古いメモ書きです。

## 前提
- Amazon Linux 2上にJenkinsサーバを構築します
- Dockerコンテナ等ではなく直接インストールする手順です

# Jenkinsの構築
## Jenkinsのインストール
Amazon Linux 2はRed Hat系のため、[こちら](https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos)のJenkins公式ドキュメントの手順を参考にしています。他のLinuxディストリビューションやOSの場合は公式ドキュメントの該当ページをご参照ください。
インストールする際に、まずパッケージ管理ツールyumにJenkinsの公式サイトが公開しているリポジトリを追加する必要があります。JenkinsにはWeekly releaseとLong Term Support releaseがあります。

### Weekly release
[Weekly release](https://pkg.jenkins.io/redhat/)はバグ修正と新機能を提供するために毎週リリースされます。`redhat` yumリポジトリを追加することでインストール可能です。また、JenkinsはJDKに依存しますので、JDKのインストールも必要です。必要なJDKバージョンは[Jenkins公式サイト](https://get.jenkins.io/redhat/)で確認できます。
以下のコマンドを実行し、yumリポジトリの追加&rpmパッケージの公開鍵をインポート、およびyum upgradeを行います。

```bash
sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
sudo yum upgrade -y
```
以下のコマンドで、インストールできる最新（2022/11/15時点）のJenkinsの情報を確認できます。
```bash
sudo yum info jenkins
```
```
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Available Packages
Name        : jenkins
Arch        : noarch
Version     : 2.378
Release     : 1.1
Size        : 94 M
Repo        : jenkins
Summary     : Jenkins Automation Server
URL         : https://www.jenkins.io/
License     : MIT/X License, GPL/CDDL, ASL2
Description : Jenkins is the leading open source automation server supported by a large and growing
            : community of developers, testers, designers and other people interested in continuous
            : integration, continuous delivery and modern software delivery practices. Built on the
            : Java Virtual Machine (JVM), it provides more than 1,800 plugins that extend Jenkins to
            : automate with practically any technology software delivery teams use. In 2022, Jenkins
            : reached 300,000 known installations making it the most widely deployed automation
            : server.
            :
            : For more information, see https://www.jenkins.io
            :
            :
            : Authors:
            : --------
            :     Kohsuke Kawaguchi <kk@kohsuke.org>

```

以下のコマンドでJDK（java-openjdk11）とJenkinsをインストールします。
```bash
sudo amazon-linux-extras install java-openjdk11 -y
sudo yum install jenkins -y
```

最後にdaemonのリロード、Jenkinsの自動起動設定、Jenkinsの起動を行います。
```bash
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
```

### Long Term Support release
[Long Term Support release](https://pkg.jenkins.io/redhat-stable/)は12週間ごとに通常リリースから`安定版`として選ばれます。`redhat-stable` yumリポジトリを追加することでインストール可能です。通常利用する場合はLong Term Support版をインストールするといいでしょう。
インストール手順として、追加するyumリポジトリ以外は上記Weekly releaseのインストールとほぼ同じなので、コマンドを以下のようにまとめています。実行すると、最新（2022/11/15時点）の安定版（2.361.4）のJenkinsがインストールされます。
```bash
sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade -y
sudo amazon-linux-extras install java-openjdk11 -y
sudo yum install jenkins -y
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
```
※`yum install jenkins`コマンドは（追加したyumリポジトリから）常に最新のバージョンのJenkinsをインストールします。

### 特定のバージョンのインストール
yumリポジトリを追加後、yum install時にJenkinsのバージョンを指定することで特定のバージョンのJenkinsをインストールすることができます。
例えば、`redhat-stable` yumリポジトリ追加後、最新（2022/11/15時点）バージョンの2.361.4ではなく、`2.361.1`のJenkinsをインストールしたい場合は以下のコマンドを実行します。
```bash
sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade -y
sudo amazon-linux-extras install java-openjdk11 -y
# Jenkinsのバージョンを指定してインストールする
sudo yum install jenkins-2.361.1 -y
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
```

また、Jenkins公式サイトから該当`パッケージをダウンロードしてインストール`することもできます。

- [Weekly release](https://get.jenkins.io/redhat/)
- [Long Term Support release](https://get.jenkins.io/redhat-stable/)


例えば、以下のコマンドでLong Term Support版のバージョン2.361.1のJenkinsをインストールできます。
```bash
sudo yum upgrade -y
sudo amazon-linux-extras install java-openjdk11 -y
# 特定のバージョンのパッケージをダウンロードする
wget https://get.jenkins.io/redhat-stable/jenkins-2.361.1-1.1.noarch.rpm
# ダウンロードしたパッケージをインストールする
sudo rpm -ivh jenkins-2.361.1-1.1.noarch.rpm
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
```