LoginSignup
5
6

More than 5 years have passed since last update.

jenkinsでweb.xmlを編修した場合に再デプロイでエラーにさせない方法

Posted at

jenkinsでJENKINS_HOMEを変更するのは、以下の3つの方法があるのは周知の通りです。

1.Webコンテナの管理ツールから環境エントリJENKINS_HOMEを設定すること。
2.Webコンテナを起動する前に,環境変数JENKINS_HOMEを設定すること。
3.(推奨しない)Jenkins.war(または,Webコンテナで展開されたJenkinsディレクトリ)のweb.xmlを更新すること。

いつもは1か2で行なうのですが、同一コンテナ内でjenkinsを複数分けて起動する必要があったため、今回は3の方法でJENKINS_HOMEを書き換えました。

その際にちょっとハマったので、共有しておきます。

warファイルなので、基本的にはunzipなりjar xvfで溶かした後、再度固めれば問題ありません。
面倒ならばjar uvf jenkins.war WEB-INF/web.xmlで置き換えても良いでしょう。

但し単純に固め直しても、こんなエラーが出てしまいます。

java.lang.SecurityException: SHA1 digest error for WEB-INF/web.xml

これは署名の検証が行なわれて編修された事によりSHA-Digestがずれてエラーになっています。
そのため、参考サイトを参照して署名のチェックを外すために以下のように作業しました。

# 解凍
jar xvf jenkins.war
# web.xmlにJENKINS_HOMEを記載
vim WEB-INF/web.xml
# デジタル署名を削除
rm -rf META-INF/JENKINS.*
# 再度war化
jar cvf jenkins.war .

あとは、これをデプロイすれば同一コンテナでも異なるJENKINS_HOMEを参照する事が出来ます。

# 気軽にupdateできない...

以上です。

参考

5
6
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
5
6