<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Outillage%2FJenkins%2FN%C5%93uds_ma%C3%AEtre-esclaves</id>
	<title>Outillage/Jenkins/Nœuds maître-esclaves - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Outillage%2FJenkins%2FN%C5%93uds_ma%C3%AEtre-esclaves"/>
	<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Outillage/Jenkins/N%C5%93uds_ma%C3%AEtre-esclaves&amp;action=history"/>
	<updated>2026-04-23T17:30:09Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.jordan-lenuff.com/index.php?title=Outillage/Jenkins/N%C5%93uds_ma%C3%AEtre-esclaves&amp;diff=660&amp;oldid=prev</id>
		<title>Jordan : Page créée avec « == Présentation == Cette page a pour objet de traiter des sujets relatifs aux nœuds maître-esclaves dans Jenkins.  == Description == Pour avoir plus d'informations sur… »</title>
		<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Outillage/Jenkins/N%C5%93uds_ma%C3%AEtre-esclaves&amp;diff=660&amp;oldid=prev"/>
		<updated>2020-06-02T16:21:49Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « == Présentation == Cette page a pour objet de traiter des sujets relatifs aux nœuds maître-esclaves dans Jenkins.  == Description == Pour avoir plus d&amp;#039;informations sur… »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Présentation ==&lt;br /&gt;
Cette page a pour objet de traiter des sujets relatifs aux nœuds maître-esclaves dans Jenkins.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Pour avoir plus d'informations sur les possibilités qu'apporte l'utilisation de nœuds maître-esclave, se rendre sur la page https://wiki.jenkins.io/display/JENKINS/Distributed+builds.&lt;br /&gt;
&lt;br /&gt;
== Configuration d'un esclave Windows ==&lt;br /&gt;
Cette partie s'appuie sur la section &amp;quot;[https://wiki.jenkins.io/display/JENKINS/Distributed+builds#Distributedbuilds-Launchagentvia%22JNLP%22fromagentbacktomasterinabrowser Lancer un agent via JNLP dans un navigateur depuis la machine esclave vers le maître]&amp;quot; de la [https://wiki.jenkins.io/display/JENKINS/Distributed+build documentation officielle].&lt;br /&gt;
&lt;br /&gt;
=== Configuration JNLP ===&lt;br /&gt;
Le prérequis à la création d'un agent Windows avec interaction graphique est l'activation de JNLP.&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, aller dans &amp;quot;Administrer Jenkins&amp;quot; (&amp;lt;code&amp;gt;/manage&amp;lt;/code&amp;gt;), puis dans &amp;quot;Configurer la sécurité globale&amp;quot; (&amp;lt;code&amp;gt;/configureSecurity&amp;lt;/code&amp;gt;) et se rendre à la section &amp;quot;Agents&amp;quot; :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-180928.PNG|none|thumb|300px|Sécurité - Agents - Désactivé]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner &amp;quot;Au hasard&amp;quot; et cliquer sur &amp;quot;Enregistrer&amp;quot; :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-180939.PNG|none|thumb|300px|Sécurité - Agents - Au hasard]]&lt;br /&gt;
&lt;br /&gt;
=== Création de l'esclave ===&lt;br /&gt;
Se rendre dans &amp;quot;Administrer Jenkins&amp;quot; (&amp;lt;code&amp;gt;/manage&amp;lt;/code&amp;gt;), puis dans &amp;quot;Gérer dans les nœuds&amp;quot; (&amp;lt;code&amp;gt;/computer&amp;lt;/code&amp;gt;) :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181044.PNG|none|thumb|300px|Gérer les nœuds]]&lt;br /&gt;
&lt;br /&gt;
Cliquer sur &amp;quot;Créer un nœud&amp;quot; (&amp;lt;code&amp;gt;/computer/new&amp;lt;/code&amp;gt;) :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181056.PNG|none|thumb|300px|Créer un premier nœud]]&lt;br /&gt;
&lt;br /&gt;
Si ce nœud est le premier, seule l'option &amp;quot;Permanent Agent&amp;quot; est disponible. La sélectionner, renseigner un nom de nœud puis cliquer sur &amp;quot;OK&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''NB :''' un nœud peut être le serveur Jenkins maître ou un esclave/agent. Il n'y a pas de différence entre &amp;quot;Permanent Agent&amp;quot; et &amp;quot;Slave&amp;quot;. La raison de ce changement de dénomination se trouve ici : https://issues.jenkins-ci.org/browse/JENKINS-27268.&lt;br /&gt;
&lt;br /&gt;
Les détails du nœud s'affichent alors :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181114.PNG|none|thumb|300px|Détails du nœud]]&lt;br /&gt;
&lt;br /&gt;
Renseigner les informations comme ceci :&lt;br /&gt;
*'''Nom'''&lt;br /&gt;
*:Défini lors de l'écran précédent&lt;br /&gt;
*'''Répertoire de travail du système distant'''&lt;br /&gt;
*:C:\jenkins&lt;br /&gt;
*'''Utilisation'''&lt;br /&gt;
*:Réserver cette machine pour les jobs qui lui sont attachés seulement&lt;br /&gt;
*'''Méthode de lancement'''&lt;br /&gt;
*:Launch agent by connecting it to the master&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181127.PNG|none|thumb|300px|Détails du nœud renseignés]]&lt;br /&gt;
&lt;br /&gt;
Cliquer sur &amp;quot;Enregistrer&amp;quot;. Le nouveau nœud apparaît alors déconnecté :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181141.PNG|none|thumb|300px|Liste nœuds - Déconnecté]]&lt;br /&gt;
&lt;br /&gt;
=== Activation de l'esclave ===&lt;br /&gt;
Selon la version de [[Technique/Java|Java]] installée, il se peut que le [https://www.java.com/fr/download/faq/java_webstart.xml Java Web Start] ne soit pas pris en charge.&lt;br /&gt;
&lt;br /&gt;
Se rendre sur la machine Windows esclave et ouvrir un navigateur pour lancer Jenkins.&lt;br /&gt;
&lt;br /&gt;
Sur la page principale, cliquer sur l'esclave précédemment créé :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181151.PNG|none|thumb|300px|Esclave hors-ligne]]&lt;br /&gt;
&lt;br /&gt;
==== Avec Java Web Start ====&lt;br /&gt;
Cliquer sur le bouton &amp;quot;Launch&amp;quot; pour lancer l'installation de l'agent Jenkins sur la machine Windows (il faut que [https://www.java.com/fr/download/windows-64bit.jsp Java soit installé] pour installer l'agent) :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181203.PNG|none|thumb|300px|Etat esclave]]&lt;br /&gt;
&lt;br /&gt;
Si un message d'avertissement s'affiche, cliquer sur &amp;quot;Exécuter&amp;quot; pour lancer l'exécution de l'installateur :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181217.PNG|none|thumb|300px|Avertissement Java]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'agent installé et connecté, une petite fenêtre s'affiche en indiquant le message &amp;quot;Connected&amp;quot; :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181229.PNG|none|thumb|300px|Agent Jenkins connecté]]&lt;br /&gt;
&lt;br /&gt;
Cliquer sur &amp;quot;File&amp;quot;, puis sur &amp;quot;Install as a service&amp;quot; afin que l'agent soit installé comme un service Windows :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181240.PNG|none|thumb|300px|Agent Jenkins - Installer le service]]&lt;br /&gt;
&lt;br /&gt;
Un message s'affiche informant de l'utilité d'installer l'agent en tant que service Windows, entre autres :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181251.PNG|none|thumb|300px|Agent Jenkins - Information]]&lt;br /&gt;
&lt;br /&gt;
*'''En cas d'erreur :'''&lt;br /&gt;
:Le message d'erreur suivant s'affiche si les droits d'administrateur de l'utilisateur ne sont pas suffisant :&lt;br /&gt;
::[[Fichier:ClipCapIt-200602-181308.PNG|none|thumb|300px|Agent Jenkins - Installation - Erreur WMI]]&lt;br /&gt;
&lt;br /&gt;
:Rechercher alors l'exécutable &amp;quot;javaws.exe&amp;quot; (exemple : dans &amp;lt;code&amp;gt;C:\Program Files\Java\jre1.8.0_251\bin&amp;lt;/code&amp;gt;), faire un clic-droit dessus et envoyer un raccourci vers le bureau :&lt;br /&gt;
::[[Fichier:ClipCapIt-200602-181323.PNG|none|thumb|300px|Agent Jenkins - Installation - Raccourci javaws.exe]]&lt;br /&gt;
&lt;br /&gt;
:Faire un clic-droit sur le raccourci précédemment créé et éditer le champ &amp;quot;Cible&amp;quot; de l'onglet &amp;quot;Raccourci&amp;quot; en ajoutant la localisation du fichier &amp;quot;slave-agent.jnlp&amp;quot; précédemment téléchargé :&lt;br /&gt;
::[[Fichier:ClipCapIt-200602-181338.PNG|none|thumb|300px|Agent Jenkins - Installation - Raccourci mis à jour]]&lt;br /&gt;
&lt;br /&gt;
:Faire de nouveau un clic-droit sur le raccourci et choisir &amp;quot;Exécuter en tant qu'administrateur&amp;quot; :&lt;br /&gt;
::[[Fichier:ClipCapIt-200602-181354.PNG|none|thumb|300px|Agent Jenkins - Installation - Exécution raccourci]]&lt;br /&gt;
&lt;br /&gt;
*'''En l'absence d'erreur'''&lt;br /&gt;
:Si la fenêtre se ferme sans erreur, cela signifie que l'installation du service s'est faite correctement&lt;br /&gt;
&lt;br /&gt;
==== Sans Java Web Start ====&lt;br /&gt;
===== Téléchargement de l'agent =====&lt;br /&gt;
Depuis la page Jenkins de l'esclave, cliquer sur ''agent.jar'' pour le télécharger, et l'enregistrer dans le ''Répertoire de travail du système distant'' défini lors la [[#Cr.C3.A9ation_de_l.27esclave|création de l'esclave]] (exemple : &amp;lt;code&amp;gt;C:\jenkins&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===== Test de la commande =====&lt;br /&gt;
Copier la commande fournie sur la page Jenkins de l'esclave, l'adapter si besoin, puis ouvrir une invite de commandes en tant qu'administrateur pour la coller et la lancer :&lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jre1.8.0_60\bin\java.exe&amp;quot; -jar C:\jenkins\agent.jar -jnlpUrl http://myserver/computer/selenium/slave-agent.jnlp -secret 2vg4pt44j875m6syy5h9e27lxihej6mwe8swzzay5i7ba9e15xzaj4tx5wq4nla9 -workDir &amp;quot;C:\jenkins&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Exemple de retour :&lt;br /&gt;
{{terminal|icon=Cmd_icon.png|title=Invite de commandes|text=&lt;br /&gt;
C:\Users\Administrateur&amp;gt;java -jar C:\jenkins\agent.jar -jnlpUrl http://myserver/computer/selenium/slave-agent.jnlp -secret 2vg4pt44j875m6syy5h9e27lxihej6mwe8swzzay5i7ba9e15xzaj4tx5wq4nla9 -workDir &amp;quot;C:\jenkins&amp;quot;&lt;br /&gt;
juin 02, 2020 12:10:08 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir&lt;br /&gt;
INFOS: Using C:\jenkins\remoting as a remoting work directory&lt;br /&gt;
juin 02, 2020 12:10:08 PM org.jenkinsci.remoting.engine.WorkDirManager setupLogging&lt;br /&gt;
INFOS: Both error and output logs will be printed to C:\jenkins\remoting&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main createEngine&lt;br /&gt;
INFOS: Setting up agent: selenium&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener &amp;lt;init&amp;gt;&lt;br /&gt;
INFOS: Jenkins agent is running in headless mode.&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.Engine startEngine&lt;br /&gt;
INFOS: Using Remoting version: 3.33&lt;br /&gt;
juin 02, 2020 12:10:09 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir&lt;br /&gt;
INFOS: Using C:\jenkins\remoting as a remoting work directory&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Locating server among [http://myserver/]&lt;br /&gt;
juin 02, 2020 12:10:09 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve&lt;br /&gt;
INFOS: Remoting server accepts the following protocols: [JNLP4-connect, Ping]&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Agent discovery successful&lt;br /&gt;
  Agent address: myserver&lt;br /&gt;
  Agent port:    54066&lt;br /&gt;
  Identity:      4a:3f:9a:12:e6:86:5f:6b:11:2f:5d:d1:67:ea:33:4a&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Handshaking&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Connecting to myserver:54066&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Trying protocol: JNLP4-connect&lt;br /&gt;
juin 02, 2020 12:10:09 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Remote identity confirmed: 4a:3f:9a:12:e6:86:5f:6b:11:2f:5d:d1:67:ea:33:4a&lt;br /&gt;
juin 02, 2020 12:10:10 PM hudson.remoting.jnlp.Main$CuiListener status&lt;br /&gt;
INFOS: Connected}}&lt;br /&gt;
&lt;br /&gt;
Cela aura pour effet de créer un dossier &amp;lt;code&amp;gt;C:\jenkins\remoting&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le lancement de cette commande permet de vérifier le bon fonctionnement de cette dernière et la bonne communication avec le serveur maître Jenkins.&lt;br /&gt;
&lt;br /&gt;
En rafraîchissant la page Jenkins de l'esclave, un message &amp;quot;''Agent is connected''&amp;quot; est synonyme de bon fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Fermer la fenêtre de l'invite de commandes pour arrêter l'agent.&lt;br /&gt;
&lt;br /&gt;
===== Création du service =====&lt;br /&gt;
La méthode d'installation du service avec le [[#Avec Java Web Start|Java Web Start]] fournit automatiquement un ''wrapper'' qui permet de configurer facilement un service sous Windows. Cela se fait grâce au [https://github.com/jenkinsci/windows-slave-installer-module module d'installation d'agent Windows de Jenkins]. Ce module s'appuie donc sur le &amp;quot;''[https://github.com/winsw/winsw Windows Service Wrapper]''&amp;quot; qu'il va falloir télécharger manuellement.&lt;br /&gt;
&lt;br /&gt;
Se rendre donc sur la [https://github.com/winsw/winsw/releases page des releases de WinSW] et télécharger le fichier &amp;quot;''WinSW.NET4.exe''&amp;quot; de la dernière version disponible.&lt;br /&gt;
&lt;br /&gt;
Déposer ce fichier dans le dossier &amp;lt;code&amp;gt;C:\jenkins&amp;lt;/code&amp;gt; et le renommer avec l'ID de service souhaité (exemple : ''jenkins-slave.exe'').&lt;br /&gt;
&lt;br /&gt;
Toujours dans le dossier &amp;lt;code&amp;gt;C:\jenkins&amp;lt;/code&amp;gt;, créer un fichier XML nommé avec le même ID de service souhaité (exemple : ''jenkins-slave.xml'') :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;service&amp;gt;&lt;br /&gt;
  &amp;lt;id&amp;gt;jenkins-slave&amp;lt;/id&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Jenkins agent (jenkins-slave)&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;This service runs an agent for Jenkins automation server.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;env name=&amp;quot;JENKINS_HOME&amp;quot; value=&amp;quot;%BASE%&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;executable&amp;gt;%JAVA_HOME%\bin\java.exe&amp;lt;/executable&amp;gt;&lt;br /&gt;
  &amp;lt;arguments&amp;gt;-Xrs  -jar &amp;quot;%BASE%\agent.jar&amp;quot; -jnlpUrl http://myserver/computer/selenium/slave-agent.jnlp -secret 2vg4pt44j875m6syy5h9e27lxihej6mwe8swzzay5i7ba9e15xzaj4tx5wq4nla9&amp;lt;/arguments&amp;gt;&lt;br /&gt;
  &amp;lt;logmode&amp;gt;rotate&amp;lt;/logmode&amp;gt;&lt;br /&gt;
  &amp;lt;onfailure action=&amp;quot;restart&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;extensions&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This is a sample configuration for the RunawayProcessKiller extension. --&amp;gt;&lt;br /&gt;
    &amp;lt;extension enabled=&amp;quot;true&amp;quot; &lt;br /&gt;
               className=&amp;quot;winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension&amp;quot;&lt;br /&gt;
               id=&amp;quot;killOnStartup&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;pidfile&amp;gt;%BASE%\jenkins_agent.pid&amp;lt;/pidfile&amp;gt;&lt;br /&gt;
      &amp;lt;stopTimeout&amp;gt;5000&amp;lt;/stopTimeout&amp;gt;&lt;br /&gt;
      &amp;lt;stopParentFirst&amp;gt;false&amp;lt;/stopParentFirst&amp;gt;&lt;br /&gt;
    &amp;lt;/extension&amp;gt;&lt;br /&gt;
  &amp;lt;/extensions&amp;gt;&lt;br /&gt;
&amp;lt;/service&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S'assurer que la variable d'environnement &amp;lt;code&amp;gt;%JAVA_HOME%&amp;lt;/code&amp;gt; existe bien sur la machine Windows, sinon, à défaut, la créer ou renseigner le chemin long de l'installation de Java.&lt;br /&gt;
&lt;br /&gt;
Enfin, ouvrir une invite de commandes en tant qu’administrateur et lancer la commande suivante pour créer le service ayant pour ID &amp;lt;code&amp;gt;jenkins-slave&amp;lt;/code&amp;gt; :&lt;br /&gt;
 sc.exe create &amp;quot;jenkins-slave&amp;quot; start= auto binPath= &amp;quot;C:\jenkins\jenkins-slave.exe&amp;quot; DisplayName= &amp;quot;Jenkins agent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Vérification ===&lt;br /&gt;
*'''Côté agent'''&lt;br /&gt;
Pour vérifier que le service est bien installé dans Windows, lancer la fenêtre &amp;quot;Exécuter&amp;quot; avec la combinaison de touches Windows+R, puis lancer la commande suivantes :&lt;br /&gt;
 services.msc&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181523.PNG|none|thumb|300px|Fenêtre Exécuter - services.msc]]&lt;br /&gt;
&lt;br /&gt;
Ensuite, rechercher le service nommé &amp;quot;Jenkins agent&amp;quot; :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181535.PNG|none|thumb|300px|Service Jenkins agent]]&lt;br /&gt;
&lt;br /&gt;
Il faut qu'il soit à l'état &amp;quot;En cours d'exécution&amp;quot; pour pouvoir communiquer avec le maître Jenkins et il faut que le type de démarrage soit défini à &amp;quot;Automatique&amp;quot; pour pouvoir se relancer automatique lorsque la machine Windows (re)démarre.&lt;br /&gt;
&lt;br /&gt;
*'''Côte maître Jenkins'''&lt;br /&gt;
Depuis la page principale, cliquer sur l'esclave précédemment créé :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181546.PNG|none|thumb|300px|Esclave au repos]]&lt;br /&gt;
&lt;br /&gt;
'''NB :''' l'esclave n'est plus hors-ligne mais au repos, ce qui est synonyme du bon établissement de la communication entre le maître et l'esclave.&lt;br /&gt;
&lt;br /&gt;
L'agent doit être &amp;quot;connected&amp;quot; :&lt;br /&gt;
:[[Fichier:ClipCapIt-200602-181558.PNG|none|thumb|300px|Agent is connected]]&lt;/div&gt;</summary>
		<author><name>Jordan</name></author>
		
	</entry>
</feed>