概要
Amazon Linux2に立てたJenkinsをバージョンアップしたい。warを入れ替えるだけだから、と軽い気持ちで始めたら色々とエラーで引っかかったので備忘録。
環境
- Amazon Linux2
- java-1.8.0-openjdk.x86_64
- Jenkins 2.282
ちなみにJenkinsを立てた時の話はこちら。
手順
新バージョンのダウンロードURLを確認
左側メニューの「Jenkinsの管理」を確認すると、新しいバージョンのダウンロード案内が出ていると思うので、そのダウンロードリンクのURLをメモします。
※赤いゾーンは警告なので、これが出る前にアップデート推奨です(笑)
https://updates.jenkins.io/download/war/2.365/jenkins.war
Jenkinsを停止する
$ sudo systemctl stop jenkins
$ sudo systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: inactive (dead) since Mon 2022-08-29 15:14:13 JST; 14s ago
現在のJenkinsをバックアップ用にリネームする
$ cd /usr/share/java/
$ sudo mv jenkins.war jenkins.war.bak_2.282
$ ls -l
total 70208
-rw-r--r-- 1 root root 71890854 Mar 2 2021 jenkins.war.bak_2.282
※2023/03/29追記
warファイルの場所が/usr/lib/jenkins/
から/usr/share/java/
に移動したみたいなので変更しました。
参考:Default location of Jenkins war
新しいバージョンのJenkinsをダウンロードする
$ sudo wget https://updates.jenkins.io/download/war/2.365/jenkins.war
SSL証明書のエラーが出たら
Let's Encryptの証明書を使っているサイトにアクセスした際にSSL証明書のエラーが発生することがあるらしい。
--2022-08-29 15:19:48-- https://updates.jenkins.io/download/war/2.365/jenkins.war
Resolving updates.jenkins.io (updates.jenkins.io)... 52.202.51.185
Connecting to updates.jenkins.io (updates.jenkins.io)|52.202.51.185|:443... connected.
ERROR: cannot verify updates.jenkins.io's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to updates.jenkins.io insecurely, use `--no-check-certificate'.
調べたところ、証明書をアップデートするといけるらしい。
$ sudo yum update ca-certificates
$ sudo wget https://updates.jenkins.io/download/war/2.365/jenkins.war
$ ls -l
total 161496
-rw-r--r-- 1 root root 93475434 Aug 23 22:19 jenkins.war
-rw-r--r-- 1 root root 71890854 Mar 2 2021 jenkins.war.bak_2.282
無事にダウンロードできました。
Jenkinsを起動する
$ sudo systemctl start jenkins
$ sudo systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: active (exited) since Mon 2022-08-29 15:42:22 JST; 24s ago
起動はしたが接続できない場合
statusはactiveになっていますが、ブラウザからつながらない。statusの文をよく見るとこんな文字が。
Jenkins requires Java versions [17, 11]
Javaのバージョンが古いことに原因がありそうなので、OpenJDKディストリビューションのAmazon Corretto 11を入れます。
※その前にJenkinsは一旦停止させます
$ sudo yum install java-11-amazon-corretto-headless
$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
$ sudo alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.amzn2.0.1.x86_64/jre/bin/java)
2 /usr/lib/jvm/java-11-amazon-corretto.x86_64/bin/java
Enter to keep the current selection[+], or type selection number: 2
$ java -version
openjdk version "11.0.16.1" 2022-08-12 LTS
OpenJDK Runtime Environment Corretto-11.0.16.9.1 (build 11.0.16.1+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.16.9.1 (build 11.0.16.1+9-LTS, mixed mode)
再びJenkinsを起動すると、無事にブラウザから接続できました。