LoginSignup
3
3

More than 1 year has passed since last update.

Linuxに立てたJenkinsを新しいバージョンにアップデートする

Last updated at Posted at 2022-08-29

概要

Amazon Linux2に立てたJenkinsをバージョンアップしたい。warを入れ替えるだけだから、と軽い気持ちで始めたら色々とエラーで引っかかったので備忘録。

環境

  • Amazon Linux2
    • java-1.8.0-openjdk.x86_64
  • Jenkins 2.282

ちなみにJenkinsを立てた時の話はこちら。

手順

新バージョンのダウンロードURLを確認

左側メニューの「Jenkinsの管理」を確認すると、新しいバージョンのダウンロード案内が出ていると思うので、そのダウンロードリンクのURLをメモします。
※赤いゾーンは警告なので、これが出る前にアップデート推奨です(笑)
jenkins_update.png

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を起動すると、無事にブラウザから接続できました。

参考

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3