TracLightning の Jenkins を 2.x にする
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
2019/11/14 に 「Trac Lightning を3.2→4開発版にして、JenkinsをJenkins 2.xにしてみようかな」
という記事を書いてから1年半も経過しましたが、
ようやくJenkinsをバージョンアップする気になりました。
遅すぎんだろ… (-.-;)
あれなんです、Jenkins のバージョンアップは、あまり良いイメージがなくてね…
というのも
- 自動アップデートがうまくいかない
- プラグインのアップデートが上手く行かない
- 過去のビルド履歴が見れなくなる
ってことが過去にあって、あまり良い印象がないのです。
しばらくいじってなかったから最近になって気づいたんだが
2020/01/04 に行った TortoiseSVN を 1.13.1.28686 (64 bit) にバージョンアップした影響でJenkins のビルドの時に
"E160004: Malformed representation header" with TortoiseSVN 1.9.0
というエラーが出ていてビルド時にSubversionで最新ソースを拾ってきていなかったのが発覚。
Jenkins の中の Subversion 関連のバージョンアップをしなきゃイケないなら、
Jenkins ごとバージョンアップするかと思ったわけだ。
作業前のバックアップ
上手くいくイメージがなかったので、まずはバックアップから。
TracLightning に付属の Jenkins は、
標準のフォルダ構成だと以下のフォルダをバックアップすれば良い。
- C:\TracLight\Jenkins
- C:\TracLight\project\hudson\.hudson
Jenkinsの最新版に差し替えて起動
https://www.jenkins.io/download/
にある Stable (LTS) :安定版 長期サポート
Download Jenkins 2.277.4 LTS for:
Generic java package(.war)
をダウンロード
あとは、Jenkins のサービスを止めて最新版に差し替えて再起動するだけ
サービスから TracLightning(Jenkins)を止める。
C:\TracLight\Jenkins\jenkins.war の名前を変更してバックアップ。
ダウンロードした jenkins.war を C:\TracLight\Jenkins にコピー。
サービスから TracLightning(Jenkins)を起動。
予想はしてたが、すんなりとは行かねぇ…(´・ω・`)
TracLightning(Jenkins)が起動した直後に停止してしまう…。
5 22, 2021 6:45:33 午後 Main verifyJavaVersion
SEVERE: Running with Java class version 51, which is older than the Minimum required version 52. See https://jenkins.io/redirect/java-support/
java.lang.UnsupportedClassVersionError: 51.0
at Main.verifyJavaVersion(Main.java:182)
at Main.main(Main.java:142)
Jenkins requires Java versions [8, 11] but you are running with Java 1.7 from C:\TracLight\jenkins\jre
java.lang.UnsupportedClassVersionError: 51.0
at Main.verifyJavaVersion(Main.java:182)
at Main.main(Main.java:142)
Javaのバージョンが古いらしい…orz
JREをバージョンアップする
念の為、 Javaバージョン に関する記事でバージョン番号を確認。
ここによると Version 8 Update 291 が最新ぽい
今までの JRE が 32ビット版だから、32ビット版をインストールする
インストールする際、Jenkins.bat の中で JRE のパスの指定が C:\TracLight\jenkins\jre になっているので
そこにインストールする。
もし別の場所にインストールする場合、C:\TracLight\jenkins\jenkins.bat の 4行目にある Java.exe のパスをインストール先に合わせる必要あり。
インストール先として指定したフォルダが空でないとインストール出来ないので、古いjreをバックアップして
jreフォルダを新しく作った
インストールが終わり、再び Jenkins を起動してみると、別のエラーが…orz
AJP(Apache JServ Protocol)の対処
次のエラーはこんなのだった。
2021-05-22 10:30:49.206+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @1007ms to org.eclipse.jetty.util.log.JavaUtilLog
2021-05-22 10:30:49.315+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file
2021-05-22 10:30:58.425+0000 [id=1] INFO winstone.Logger#logInternal: Jetty shutdown successfully
java.io.IOException: Failed to start a listener: winstone.Ajp13ConnectorFactory
at winstone.Launcher.spawnListener(Launcher.java:226)
at winstone.Launcher.(Launcher.java:179)
at winstone.Launcher.main(Launcher.java:369)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at Main._main(Main.java:375)
at Main.main(Main.java:151)
Caused by: java.lang.UnsupportedOperationException: AJP support is removed in Winstone 3.0 due to Jetty 9 not supporting AJP. For reverse proxying, please use HTTP instead of AJP.
at winstone.Ajp13ConnectorFactory.start(Ajp13ConnectorFactory.java:32)
at winstone.Launcher.spawnListener(Launcher.java:220)
... 8 more
2021-05-22 10:30:58.426+0000 [id=1] SEVERE winstone.Logger#logInternal: Container startup failed
java.lang.UnsupportedOperationException: AJP support is removed in Winstone 3.0 due to Jetty 9 not supporting AJP. For reverse proxying, please use HTTP instead of AJP.
at winstone.Ajp13ConnectorFactory.start(Ajp13ConnectorFactory.java:32)
at winstone.Launcher.spawnListener(Launcher.java:220)
Caused: java.io.IOException: Failed to start a listener: winstone.Ajp13ConnectorFactory
at winstone.Launcher.spawnListener(Launcher.java:226)
at winstone.Launcher.(Launcher.java:179)
at winstone.Launcher.main(Launcher.java:369)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at Main._main(Main.java:375)
at Main.main(Main.java:151)
AJP(Apache JServ Protocol)に関するエラーのようだ。
前に読んだ、この記事にある対処を行う。
Trac Lightning同梱のJenkinsをJenkins 2.xにバージョンアップする
C:\TracLight\jenkins\jenkins.xml の42行目を --ajp13Port=8009 から --ajp13Port=-1 に修正する。
とりあえず、ここまで対処すると Jenkins が起動した。
まとめ
Jenkins 1.648 ⇒ 2.277.4 にバージョンアップにあたってしたこと
・JREは最新版にする
・AJPポートの対処する
次はプラグインだ
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml