はじめに
タイトルがほぼすべてです。
以下は体系的ではないトラブルシューティングのメモです。
記事後ろに Jenkins アップデートのトピックを加えています。
状況とトラブルシューティング
前もって小さな個人の Jenkins をアップデートした
年始なので個人の Jenkins を最新のバージョンにアップデートした。数日動かしたが問題はなかった。
個人の Jenkins はエージェントを利用していなかった。
軽率にチームの Jenkins をアップデートした
チームの Jenkins を 2.276 -> 2.328 にアップデートした。
再起動直後に各 SSH Build Agent Plugin を使っていた各エージェントにアクセスができなくなっていた。
エージェントへの SSH アクセスに成功するが、 remoting.jar のコピーに失敗していた。
[...] [SSH] Copying latest remoting.jar... java.io.IOException: Could not copy remoting.jar into '/home/jenkins/workspace' on agent
at hudson.plugins.sshslaves.SSHLauncher.copyAgentJar(SSHLauncher.java:717)
...
Caused by: java.lang.IllegalArgumentException: invalid len argument
at com.trilead.ssh2.SFTPv3Client.read(SFTPv3Client.java:1232)
... 7 more
関連 issue を見つけた
「jenkins invalid len argument
」で検索した。
エラーログや Jenkins バージョンがほぼ一致する issue があった。
- Could not copy remoting.jar - Jenkins Jira : https://issues.jenkins.io/browse/JENKINS-67258
根本解決はされておらず、途方に暮れた。
「えいやっ」とアップデートした
SSH Build Agents の関連というのは issue でも自分のエラーログでも共通なので、一縷の望みをかけて SSH Build Agents とその依存のプラグインだけアップデートした。
SSH Build Agents を 1.31.2 -> 1.33.0 にアップデートして Jenkins 再起動した。
直った
めでたしめでたし
規模が小さな Jenkins で問題がなかったからって、チームの Jenkins で軽率に対応しないようにしよう。
ロールバック用のバックアップはあったので安心して軽率になっていたのはある。
上記以外の Jenkins アップデートのトピック
ダッシュボードの見た目がよくなった
Before はないですが、今回はとくにビューの選択部分がだいぶ変わった印象です。
Jenkins はここ数年見た目がどんどんよくなっている印象です。アップデートの楽しみの1つです。
Jenkins の名前マイグレーションが入った
以前 Jenkins では master, slave(マスター, スレーブ)という単語が利用されていた。
マスターはジョブを管理するマシン、スレーブはジョブを実行するマシンのそれぞれの呼び名だった。
数年前からプログラミング界隈で攻撃的な表現を含む単語の利用をやめようというムーブメントがある。
奴隷と主人を元にした言葉である master, slave という単語はそれぞれ Controller, Agent という単語に置き換わりました。
master, マスター -> Controller, コントローラー
slave, スレーブ -> Agent, エージェント
変化の一部が今回のアップデート(2.276 -> 2.328)にも含まれていました。
コントローラー自体のジョブ実行エージェントの名前を "master node" から "built-in node" に名前マイグレーションできます。管理画面で変更するかどうかの通知があります。
アップデートによる強制的な変更はないので安心です。