Problèmes de lancement de l'agent esclave via Java Web Start sur Jenkins
Nous avons récemment mis à niveau Jenkins à la dernière version.
et depuis ive a pas été en mesure de lancer les esclaves via Java WebStart par le biais de la ligne de commande à chaque fois que je tente de le lancer j'ai "Impossible de Lancer l'application" erreur
avec ce dans le panneau détails
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)
Lorsque vous essayez de naviguer sur les Jenkins site et déjeuner à partir de là IL FONCTIONNE cependant si vous redémarrez la boîte, puis la ligne de commande au démarrage ne parvient pas à faire le travail.
C'est la commande que je suis en train de lancer à partir de l'esclave
cd "C:\Program Files (x86)\Java\jre7\bin"
javaws http://MyServer:8080/computer/Slave1/slave-agent.jnlp
Le problème est que cette habitude de travailler.
J'ai aussi essayé la mise à jour vers la dernière version de Java, mais pas de chance,
Une Idée quelqu'un?
source d'informationauteur AltF4_
Vous devez vous connecter pour publier un commentaire.
Soi-disant, due en grande partie à des postes sur le Jenkins forums, ce nouveau comportement est dû à un correctif pour un problème de sécurité: https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+de Sécurité+Consultatif+2013-01-04
Deux solutions semblent être à venir:
Si vous souhaitez conserver le fichier JNLP sur le maître, et vous ne voulez pas ouvrir le trou de sécurité pour que les utilisateurs Anonymes se connecter en tant qu'esclave, modifier la jenkins-slave.xml pour ajouter le fichier -jnlpCredentials option avec -jnlpUrl option:
où:
l'utilisateur est le nom d'utilisateur dans Jenkins compte de la base de données
apiKey de l'utilisateur de la clé API (notez que ce n'est PAS le mot de passe utilisateur)
Pour obtenir la clé API pour l'utilisateur, allez dans:
et cliquez sur le bouton pour montrer que l'utilisateur de la clé API.
Pour moi, je devais m'assurer que j'ai eu la "anonyme" connect dans jenkins matrice des autorisations ET j'ai eu de pirater le fichier JNLP qui est envoyé vers le bas à partir du maître.
Je dirais que c'est un bug dans Jenkins dans 2.19.2. Pour l'essentiel, dans le fichier JNLP qui est tiré vers le bas à partir du serveur le tunneling argument qui contient le maître de l'adresse ip et le port sera remplacé par l'esclave ip-addr.
Voir le code de la engine.java, [ligne n ° 308] qui est l'endroit où l'exception est générée à partir de:
https://searchcode.com/codesearch/view/65603521/
Exception ressemble:
À l'origine de mon fichier JNLP ressemblait:
Le problème, c'est le "tunnel" arg ci-dessus. Il contient l'ESCLAVE de la machine ip-addr. La MODIFICATION de cette à la le MAÎTRE ip de l'ordinateur-ajouter ET le PORT, il fixe! Ci-dessous:
Vérifier si le nom Slave1 en ligne de commande et jenkins nœud defenition sont les mêmes.Il devrait être Slave1 dans jenkins nœud