togatttiのエンジニアメモ

過度な期待はしないでください.

Jenkinsを2系から、1系に応急的に切り戻す

バージョンが1.6系の古のJenkinsを運用していたが、誤ってapt upgradeしてしまいバージョンが 2.1系にあがり、起動しなくなってしまった。

OSは、Ubuntu 14.04。

# apt upgradeの抜粋
Unpacking jenkins (2.179) over (1.6xx)

切り戻しをしたので、メモしておく。

ただし、応急療法なので、動作性の責任は取れない。。

結論からいうと、以下の二つの対応で、切り戻しができた。

  • jenkins.warの差し替え
  • /etc/init.d/jenkinsの修正

jenkins.warの差し替え

/usr/share/jenkins配下に、2系のjenkins.warがあるので、それを元々運用していたバージョンに差し替える。

# cd /usr/share/jenkins
# mv jenkins.war jenkins.war.20190527a
# wget https://updates.jenkins-ci.org/download/war/1.6xx/jenkins.war

/etc/init.d/jenkinsの修正

修正しないと、以下のように起動スクリプトJavaのバージョン判定に引っかかり、起動できない。

# service jenkins status
Found an incorrect Java version
Java version found:
java version "1.7.0_201"
OpenJDK Runtime Environment (IcedTea 2.6.17) (7u211-2.6.17-0ubuntu0.1)
OpenJDK 64-Bit Server VM (build 24.201-b00, mixed mode)

Aborting

なので、バージョンを判定する箇所をコメントアウトする。

# diff -u /etc/init.d/jenkins.20190527a /etc/init.d/jenkins
--- /etc/init.d/jenkins.20190527a 2019-05-27 18:20:38.400852420 +0900
+++ /etc/init.d/jenkins       2019-05-27 18:16:02.159208259 +0900
@@ -59,15 +59,15 @@
 # Work out the JAVA version we are working with:
 JAVA_VERSION=$($JAVA -version 2>&1 | sed -n ';s/.* version "\(.*\)\.\(.*\)\..*".*/\1\2/p;')

-if [[ ${JAVA_ALLOWED_VERSIONS[*]} =~ "$JAVA_VERSION" ]]; then
-    echo "Correct java version found" >&2
-else
-    echo "Found an incorrect Java version" >&2
-    echo "Java version found:" >&2
-    echo $($JAVA -version) >&2
-    echo "Aborting" >&2
-    exit 1
-fi
+#if [[ ${JAVA_ALLOWED_VERSIONS[*]} =~ "$JAVA_VERSION" ]]; then
+#    echo "Correct java version found" >&2
+#else
+#    echo "Found an incorrect Java version" >&2
+#    echo "Java version found:" >&2
+#    echo $($JAVA -version) >&2
+#    echo "Aborting" >&2
+#    exit 1
+#fi

 # load environments
 if [ -r /etc/default/locale ]; then

正常に起動することを確認する。

# service jenkins start
 * Starting Jenkins Automation Server jenkins
   ...done.
# service jenkins status
Jenkins Automation Server is running with the pid 26347