当記事の概要
古いJenkinsのバージョンアップを実施したので、その手順をまとめておきます。
Jenkinsバージョンアップの注意点
Jenkinsのバージョンアップは基本的にWARを更新するだけなのですが、2022年にリリースされたv2.357からJava 11が必須になったため、それ以前のバージョンを使用しており、かつ、Java 11未満で稼働させていた場合、JDKの更新も必要となります。
環境
OS : Ubuntu 18.04 LTS
実施手順
1. WARファイルの入手
Jenkinsの管理コンソールで「Jenkinsの管理」画面を表示します。最新版のJenkinsのWARファイルへのリンクが表示されているので、クリックしてWARファイルをダウンロードします。
2. JENKINS_HOMEの場所の確認
Jenkinsのバージョンアップの前に、JENKINS_HOME
をバックアップしておきます。ここではJENKINS_HOME
の具体的なディレクトリを確認します。
「Jenkinsの管理」→「システムの設定」で、「ホームディレクトリ」の項に表示されているのがJENKINS_HOME
になります。
3. Jenkinsの停止
Jenkinsを停止します。
sudo systemctl stop jenkins
4. JENKINS_HOMEのバックアップ
上記で確認したJENKINS_HOME
ディレクトリのバックアップを取っておきます。
5. OpenJDK 17の導入
aptでOpenJDK 17を導入します。
sudo apt update
sudo apt install -y openjdk-17-jdk
6. デフォルトJavaの変更
以下の記事を参考に、OSデフォルトのJavaを、先ほど導入したOpenJDK 17に変更します。
Ubuntuで、複数のJavaをインストールして切替を行う
https://qiita.com/yochapan/items/af86a320035f8db7daf4
cd /usr/lib/jvm
cat .java-1.17.0-openjdk-amd64.jinfo | grep -v -e '=' -e '^$' | awk '{system("sudo update-alternatives --verbose --install /usr/bin/" $2 " "$2 " " $3 " " 10)}'
cat .java-1.17.0-openjdk-amd64.jinfo | grep -v -e '=' -e '^$' | awk '{system("sudo update-alternatives --set " $2 " " $3 )}'
7. WARファイルの置き換え
最初にダウンロードしたJenkinsのWARファイルで置き換えます。現在使用中のファイルは事前にリネームしておきます。
8. 起動スクリプトの書き換え
systemctl
でJenkinsの起動・停止を管理している場合、/etc/init.d/jenkins
がJenkinsの起動スクリプトになります。このスクリプトの中で、許容されるJavaのバージョンが JAVA_ALLOWED_VERSIONS
として定義されているのですが、JDK 17が含まれていない場合、追加する必要があります。
以下はJDK 17("170")を追加したものになります。
# Which Java versions can be used to run Jenkins
JAVA_ALLOWED_VERSIONS=( "18" "110" "170" )
変更後、以下のコマンドを実行します。
sudo systemctl daemon-reload
9. Jenkinsの起動
Jenkinsを起動します。
sudo systemctl start jenkins
10. プラグインの更新
Jenkinsのバージョンアップに伴ってプラグインの更新が必要なものが出てくるため、プラグインマネージャで確認し、必要に応じて更新を実施します。
以上です。