SE吾郎の備忘録

24歳SEの勉強用の備忘録です.皆様の役にも立てれば幸いです.

【備忘録】Jenkins新スレーブPC追加で発生したエラーと対処方法まとめ

こちらの記事を参考にJenkinsのスレーブPC(ノードPC)を追加したのですが,いくつか苦戦したポイントがあったので,エラーとその対処方法をまとめます.
【CI奮闘記】第6章:エージェントを作ってみよう!
エラー発生箇所としては「Lauch agent by connecting it to the master」を設定で選択し,新ノードPC側でJava Web Start (JNLP)を実行するタイミングでエラーが発生しました.

JNLP不正エラー

発生エラー


    INFO: Locating server among [http:://255.255.255.255:8080/jenkins/]
    ** **, 20** **:**:** ** org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
    INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
    ** **, 20** **:**:** ** org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver isPortVisible
    WARNING: connect timed out
    ** **, 20** **:**:** ** hudson.remoting.jnlp.Main$CuiListener error
    SEVERE: http:://255.255.255.255:8080/jenkins/ provided port:49600 is not reachable
    java.io.IOException: http:://255.255.255.255:8080/jenkins/provided port:49600 is not reachable
        at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:311)
        at hudson.remoting.Engine.innerRun(Engine.java:724)
        at hudson.remoting.Engine.run(Engine.java:540)

※(エラーログのurlと時間は変更しています)


まず,新ノードPCからアクセスするJenkinsのマスターのURLをIPアドレスからリネームしている方もIPアドレスからアクセスしてください.
次に,本エラーの対処方法ですが,私の場合は既に別のノードPCが接続された状態で,さらに新規のノードPCの追加中にこのエラーが発生しました.Jenkinsの設定,JenkinsのバージョンもJavaのバージョン,ファイルパスも合わせたのにエラーが発生してしまいました.


そこで,jenkins-agent.jnlpの中身を比較し,修正したところ接続することができました.
jenkins-agent.jnlpをエディタで開き,後ろの</argument>と</application-desc>の間に「<argument>-url</argument><argument>http://255.255.255.255:8080/jenkins/」を追加してください.(IPアドレス部分は自分のJenkinsマスターのIPアドレス)
この1文を追加するだけで,接続することができました!
なぜ,jenkins-agent.jnlpの中身が異なるものになっていたのか原因は分かりませんが,個人では中々気付くことが出来ないと思うので,同様のエラーが発生している方はやってみてください!

Java version違いエラー

発生エラー


    ** **, 20** **:**:** ** Main verifyJavaVersion
    SEVERE: Running with Java class version 63 which is not in the list of support versions: [52, 55]. Run with the --enable-future-java flag to enable such behavior, See https://jenkins.io/redirect/java-support/
    java.lang.UnsupportedClassVersionError: 63.0
        at Main.verifyJavaVersion(Main.java:130)
        at Main.main(Main.java:99)
    
    Jenkins requires Java versions [8, 11] but you are running with Java 19 from C:\**
        at Main.verifyJavaVersion(Main.Java:130)
        at Main.main(Main.java:99)

 

こちらのエラーはJenkinsでの対応可能なJavaのバージョンと使用環境のJavaバージョンの不整合により発生します.

JetnkinsでのJava対応バージョンは8か11なので,それ以外のバージョンを使用すると発生します.

私の場合はJavaのバージョンは19だったので,エラーが発生してしまいました.また,Jenkinのバージョン2.357以降はJava8の対応がなくなることがこちらの記事で発表されています.
Jenkins公式サイト(Java対応バージョン)
そのため,Javaをインストールし直す場合,バージョン11をおすすめします.

・agent.jar不足エラー

今後,追記予定

Javaパスエラー

今後,追記予定