17

最近、Jenkins を最新バージョンにアップグレードしました。

それ以来、起動しようとするたびに、コマンドラインから Java WebStart 経由でスレーブを起動できませんでした。「アプリケーションを起動できません」というエラーが表示されます。

これを詳細パネルに

CouldNotLoadArgumentException[ Could not load file/URL specified: http://MyServer:8080/computer/Slave1/slave-agent.jnlp]
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Jenkins サイトを参照してそこから起動しようとすると、IT は機能しますが、ボックスを再起動すると、起動時のコマンド ラインでジョブが実行されません。

これは、スレーブから実行しようとしているコマンドです

cd "C:\Program Files (x86)\Java\jre7\bin"
javaws http://MyServer:8080/computer/Slave1/slave-agent.jnlp

問題は、これが以前は機能していたことです。Javaの最新バージョンへの更新も試みましたが、うまくいきませんでした。

アイデアはありますか?

4

4 に答える 4

17

おそらく、ほとんどの場合、Jenkins フォーラムへの投稿が原因で、この新しい動作はセキュリティ問題の修正によるものです: https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2013- 01-04

2つの解決策が登場しているようです:

  1. JNLP ファイルを (ブラウザ、wget、curl などを介して) ダウンロードし、ローカルで実行します - 追加のパラメータが必要になる場合があります。
  2. Manage Jenkins -> Configure Global Security に移動し、Project-based Matrix Authorization Strategy の下で、ユーザー「Anonymous」の「slave」セクションで「connect」を有効にします。これにより、誰かがスレーブをエミュレートする場所で攻撃を受ける可能性があります(ただし、私の場合は、プライベートな職場ネットワークであり、それは問題ではありません.)
于 2013-01-11T14:35:01.493 に答える
9

JNLP ファイルをマスターに残し、匿名ユーザーがスレーブとして接続するためのセキュリティ ホールを開けたくない場合は、jenkins-slave.xml ファイルを編集して -jnlpCredentials オプションと - jnlpUrl オプション:

-jnlpCredentials {user}:{apiKey}

ここで:
user は Jenkins のアカウント データベースのユーザー名です
apiKey はユーザーの API キーです (これはユーザーのパスワードではないことに注意してください)

ユーザーの API キーを取得するには、次のように入力します。

http://SERVER/user/USER/configure

ボタンをクリックして、そのユーザーの API キーを表示します。

于 2014-04-29T20:29:02.487 に答える
0

コマンドラインの名前 Slave1 と jenkins ノードの定義が同じかどうかを確認します。jenkins ノードでも Slave1 である必要があります

于 2015-09-23T11:45:49.810 に答える