Skip to main content

Packages comment ca fonctionne

Comment fonctionne l'éditeur de packages ?
Le principe en une phrase

Un package Medulla, c'est une liste d'étapes qui s'exécutent dans l'ordre sur les machines cibles. Pour construire cette liste, vous glissez des actions depuis le panneau de gauche vers la zone de droite.

📋 Actions disponibles (gauche)                                                                             🔧 Séquence de déploiement (droite)

La liste de toutes les briques que vous pouvez utiliser :                                              Votre « recette » : les étapes que Medulla va exécuter sur la machine, de haut en bas.                                                                                      lancer une commande, télécharger un fichier,          afficher un message, etc.

Chaque action que vous ajoutez devient une étape. Vous pouvez réordonner les étapes par glisser-déposer, et cliquer sur chaque étape pour régler ses options.

Notions de base à connaître

Chaque étape porte un nom unique appelé « libellé ». C'est comme une étiquette : ça sert à s'y retrouver, mais surtout à pointer vers cette étape depuis une autre (voir goto ci-dessous).

Medulla génère un libellé automatiquement. Ne le modifiez pas sauf si vous savez ce que vous faites — d'autres étapes peuvent y faire référence

image.png

image.png

Commandes et scripts
Executer une commande

Commande : Exécuter une commande : Lance une ligne de commande sur la machine cible. C'est l'action la plus courante — par exemple pour lancer un installeur MSI, copier un fichier, ou appeler un outil système.

Exemple typique :
Installer un logiciel silencieusement :
msiexec /i MonLogiciel.msi /qn

Paramètres
Paramètre À quoi ça sert ? Obligatoire ?
step label Nom unique de l'étape. Sert de repère et de cible pour les sauts goto. Ne pas modifier sauf besoin. Oui
command La commande à exécuter (ex : msiexec /i app.msi /qn). Oui
package alternatif Si coché, exécute la commande depuis le dossier d'un autre package. Utile pour les packages imbriqués. Optionnel
timeout (secs) Durée maximale en secondes. Si la commande dure plus longtemps, elle est arrêtée et considérée en erreur. Optionnel
résultat retourné Indique si Medulla doit capturer la sortie de la commande, et combien de lignes (premières, dernières, ou toutes). Optionnel
sur code retour, aller à Permet de rediriger le déploiement selon le code retour de la commande (voir tableau ci-dessous). Optionnel
Opérateurs de code retour

Ces symboles se saisissent dans le champ return code pour définir la condition.

Syntaxe Signification
!=1  /  !1  /  <>1 Le code est différent de 1
==1 Le code est exactement 1
<1 Le code est inférieur à 1
>1 Le code est supérieur à 1
<=1 Le code est inférieur ou égal à 1
>=1 Le code est supérieur ou égal à 1
IN1,5  /  in1,5 Le code est dans l'intervalle [1 ; 5]
OUT1,5  /  out1,5 Le code est hors de l'intervalle [1 ; 5]

Exemple concret : certains installeurs renvoient le code 3010 pour signifier « installation réussie, redémarrage nécessaire ». Sans règle personnalisée, Medulla considérerait ça comme une erreur. Avec ==3010 → END_SUCCESS, vous traitez ce cas correctement.

Executer un script

Écrit un script complet sur la machine cible, puis l'exécute. À utiliser quand une simple ligne de commande ne suffit pas — par exemple pour une séquence de vérifications ou un traitement plus complexe.

La différence avec « Exécuter une commande » : ici, vous écrivez le contenu du script directement dans Medulla. Le script est créé sur la machine au moment du déploiement, puis exécuté.

Paramètres
Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Langage du script Le type de script à utiliser. Medulla choisit le bon interpréteur :
  • Natif : batch (.bat) sous Windows, bash sous Linux/macOS
  • Python : scripts Python
  • PowerShell : scripts PowerShell (Windows)
  • VBScript : scripts VBS (Windows)
  • Korn Shell / C Shell : shells Linux/macOS
Oui
package alternatif Exécute le script depuis le dossier d'un autre package. Optionnel
suffix Force l'extension du fichier script (ex : ps1 pour PowerShell). Prioritaire sur le langage sélectionné. Optionnel
force hash-bang Force le shebang (#!) en première ligne du script. Prioritaire sur le langage sélectionné. Utile sur Linux si l'interpréteur est dans un chemin non standard. Optionnel
timeout Durée maximale d'exécution du script (en secondes). Optionnel
résultat retourné Capture la sortie du script (premières/dernières lignes, ou tout). Optionnel
sur code retour, aller à Branchement conditionnel selon le code retour (mêmes opérateurs que pour « Exécuter une commande »). Optionnel

Conseil débutant : pour un script PowerShell, choisissez le langage PowerShell et laissez Medulla gérer le reste. N'utilisez suffix ou force hash-bang que si vous avez un besoin très spécifique.

Système et fichiers
Configurer une variable d'environnement

Définit une ou plusieurs variables d'environnement qui seront disponibles pour les étapes suivantes. Utile pour passer des paramètres entre étapes sans les coder en dur.

C'est quoi une variable d'environnement ?
C'est une variable système nommée, accessible par les programmes et scripts qui s'exécutent sur la machine. Par exemple TEMPPATHUSERNAME.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui

Saisissez vos variables au formatNOM :: valeur, une par ligne. Exemple : LANG :: fr_FR
LOGLEVEL :: INFO

Redémarrer

Redémarre la machine ou uniquement l'agent Medulla. Utile après l'installation d'un logiciel qui nécessite un redémarrage.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Cible à redémarrer Deux choix :
• Machine : redémarre l'ordinateur entier
• Agent : redémarre uniquement le service Medulla (plus rapide, moins perturbant)
Oui

Redémarrer la machine interrompra le travail en cours de l'utilisateur. Préférez redémarrer l'agent quand c'est possible, ou combinez avec l'action Report pour laisser l'utilisateur choisir le moment

Attendre et aller à

Fait une pause d'un certain nombre de secondes avant de continuer. Par défaut, passe à l'étape suivante. Vous pouvez aussi spécifier une autre étape cible.

Cas d'usage typique : attendre que Windows démarre un service avant de le configurer. Ajoutez une pause de 10–30 secondes après l'installation d'un service.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Attendre pendant Durée de la pause (en secondes). Oui
goto Étape à atteindre après la pause. Si vide, passe à l'étape suivante. Optionnel
Ajouter des informations dans le journal de déploiement

Écrit un message libre dans les logs de déploiement. Très utile pour tracer ce qui se passe, annoter votre séquence, ou afficher la valeur d'une variable.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Informations Le texte à écrire dans les logs. Vous pouvez utiliser des variables dynamiques entourées de @@@ :
@@@PACKAGE_NAME@@@ — nom du package
@@@HOSTNAME@@@ — nom de la machine
@@@OS_FAMILY@@@ — famille OS
@@@IP_MACHINE@@@ — adresse IP
@@@UUID_PACKAGE@@@ — identifiant unique du package
@@@PREC_RESULT@@@ — résultat de l'étape précédente
@@@PREC_RETURNCODE@@@ — code retour de l'étape précédente
Oui

Exemple : Installation de @@@PACKAGE_NAME@@@ sur @@@HOSTNAME@@@
Medulla remplacera automatiquement les variables au moment du déploiement.

Configurer les paramètres d'un fichier de configuration

Ajoute ou supprime un paramètre dans un fichier de configuration INI (fichier texte organisé en sections avec des paires clé=valeur).

C'est quoi un fichier INI ?
Un fichier texte organisé ainsi :

image.png

Les [crochets] délimitent les sections, et chaque ligne est une paire clé=valeur

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Description de l'action Chaîne de configuration au format :
opération@__@fichier@__@section@__@clé@__@valeur

Ajouter/modifier un paramètre :
add@__@agentconf.ini@__@global@__@log_level@__@INFO

Supprimer un paramètre :
del@__@agentconf.ini@__@global@__@log_level
Oui

Décomposé, add@__@agentconf.ini@__@global@__@log_level@__@INFO signifie :
• opération = add (ajouter/modifier)
• fichier = agentconf.ini
• section = global
• clé = log_level
• valeur = INFO

 

Dézipper un fichier

Décompresse une archive ZIP sur la machine cible.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Fichier Zip Chemin vers le fichier ZIP à décompresser (nom seul si dans le dossier du package, ou chemin complet). Oui
package alternatif Utilise le dossier d'un autre package comme répertoire courant. Optionnel
résultat retourné Capture la sortie de l'opération dans les logs. Optionnel
dézipper dans ce dossier Dossier de destination. Si vide, extrait dans le dossier courant. Optionnel
goto Étape à atteindre après l'extraction (quelle que soit l'issue). Optionnel
l'étape est en succès, aller à Étape à atteindre si l'extraction réussit. Optionnel
l'étape est en erreur, aller à Étape à atteindre si l'extraction échoue. Optionnel

 

Télécharger un fichier

Télécharge un fichier depuis une URL vers la machine cible. Pratique pour récupérer un installeur ou une ressource depuis un serveur web interne.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
package alternatif Télécharge dans le dossier d'un autre package. Optionnel
Téléchargement du fichier L'URL complète du fichier à télécharger (ex : https://mon-serveur/fichier.zip). Oui
Supprimer les fichiers transférés

Supprime le dossier du package qui a été transféré sur la machine. À placer en fin de séquence pour ne pas laisser de fichiers inutiles.

Bonne pratique : ajoutez toujours cette action à la fin de vos packages pour garder les machines propres. Elle n'a aucun réglage — seul le libellé d'étape est modifiable.

Sections — Installation, Mise à jour, Désinstallation

À quoi servent les sections ? Un même package peut contenir plusieurs modes d'exécution : installation, mise à jour et désinstallation. Les marqueurs de section permettent de séparer ces modes. Les étapes placées après un marqueur appartiennent à ce mode. Le mode installation est le mode par défaut — c'est celui qui s'exécute si vous ne précisez rien.

🔧Section Installation                                          🔄Section Mise à jour                                                  🗑️Section Désinstallation

Mode par défaut. {"section": "install"}        Utilisé par le Kiosk. {"section": "update"}                Kiosk + convergences                                                                                                                                                                                    négatives. {"section":                                                                                                                                                                                       "uninstall"}

Comment forcer l'exécution d'une section précise ?
Dans les options avancées du déploiement, renseignez le champ Paramètres dynamiques avec l'un des JSON ci-dessus.
Exemple pour forcer la désinstallation : {"section": "uninstall"}

Interactions avec l'utilisateur et le Kiosk
Notification Kiosk

Envoie un message de progression au Kiosk de l'utilisateur pendant l'installation, la mise à jour ou la désinstallation d'un package.

Le Kiosk est l'interface visible par l'utilisateur final pour suivre et demander des logiciels. Cette action lui permet de voir que quelque chose se passe — même si la progression indiquée reste indicative.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Message Texte affiché dans le Kiosk de l'utilisateur. Oui
Progression Pourcentage d'avancement à afficher (de 1 à 100). La valeur est indicative — vous décidez ce qu'elle représente. Optionnel

Exemple : placez des notifications à 25 %, 50 %, 75 % et 100 % pour donner à l'utilisateur une impression de progression fluide.

Notification utilisateur

Affiche une fenêtre popup sur l'écran de l'utilisateur avec un message et un bouton de validation. L'utilisateur doit cliquer pour continuer.

Si l'utilisateur ne clique jamais et qu'aucun timeout n'est défini, le déploiement reste bloqué indéfiniment. Définissez toujours un timeout.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique de l'étape. Oui
Titre de la boîte de dialogue Titre affiché dans la barre de titre de la fenêtre popup. Oui
Taille du texte (titre) Taille de police du titre. Optionnel
Message Le message affiché à l'utilisateur. Oui
Taille du texte (message) Taille de police du message. Optionnel
Texte du bouton valider Libellé du bouton de confirmation (par défaut : « OK »). Optionnel
Timeout Durée maximale d'attente en secondes. Si dépassée, le déploiement passe à l'étape suivante. Recommandé

 

 

Question à l'utilisateur

Affiche une fenêtre avec une question et deux boutons (Oui / Non ou tout autre texte). La suite du déploiement dépend de la réponse de l'utilisateur.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique. Oui
Titre de la boîte de dialogue Titre du popup. Oui
Taille du texte (titre) Taille de police du titre. Optionnel
Question La question posée à l'utilisateur. Oui
Taille du texte (question) Taille de police de la question. Optionnel
Texte bouton <vrai> Libellé du bouton « Oui » (confirmation). Optionnel
Texte bouton <faux> Libellé du bouton « Non » (annulation). Optionnel
Si <vrai> aller à Étape à atteindre si l'utilisateur clique sur le bouton de confirmation. Optionnel
Si <faux> aller à Étape à atteindre si l'utilisateur clique sur le bouton d'annulation. Optionnel
Si pas d'utilisateur Étape à atteindre si aucun utilisateur n'est connecté (PC en veille, par exemple). Optionnel
Si timeout aller à Étape à atteindre si le délai expire sans réponse. Optionnel
Définir le timeout Durée maximale d'attente d'une réponse (en secondes). Recommandé
Report (Laisser l'utilisateur choisir le moment)

Permet à l'utilisateur de reporter une action (par exemple un redémarrage) un nombre limité de fois. Après le nombre maximum de reports, le déploiement continue automatiquement.

Cas d'usage typique : « Votre machine doit redémarrer. Voulez-vous le faire maintenant ? » L'utilisateur peut répondre « Plus tard » jusqu'à 3 fois. Au 4e passage, Medulla redémarre la machine.

Les deux boutons :
• Bouton <vrai> = « Je le fais maintenant » (accepter)
• Bouton <faux> = « Plus tard » (reporter)

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé unique. Oui
Titre / Question Titre et texte de la fenêtre popup (comme pour la question). Oui
Tailles de texte Taille de police du titre et de la question. Optionnel
Texte bouton <vrai> / <faux> Libellés des boutons d'acceptation et de report. Optionnel
Si <vrai> aller à Étape si l'utilisateur accepte. Optionnel
Si <faux> aller à Étape si l'utilisateur reporte (revient à cette étape après l'intervalle). Optionnel
Si nombre max de reports atteint Étape à atteindre quand l'utilisateur a épuisé ses reports. Optionnel
Si pas d'utilisateur Étape si aucun utilisateur n'est connecté. Optionnel
Si timeout aller à Étape si le délai expire sans réponse. Optionnel
Définir le timeout Durée d'attente d'une réponse avant de passer à l'étape timeout. Recommandé
Fin de déploiement

Ces étapes sont automatiques

Tout nouveau package contient déjà deux étapes de fin : vous n'avez pas à les ajouter depuis la palette. Elles reçoivent automatiquement les sauts END_SUCCESS et END_ERROR.

Fin avec succès

Point de sortie réussite du déploiement. Toutes les étapes qui sautent vers END_SUCCESS aboutissent ici.

Paramètre À quoi ça sert ? Obligatoire ?
Nom de l'étape Libellé (généralement END_SUCCESS). Oui
Supprime le package Si coché, supprime les fichiers du package sur la machine après le déploiement. Optionnel
Inventaire Que faire après le déploiement :
• Inventaire forcé : génère toujours un inventaire
• Pas d'inventaire : ne génère pas d'inventaire
• Inventaire si modifié : génère un inventaire uniquement si des changements ont été détectés
Optionnel

L'inventaire permet à Medulla de mettre à jour sa base de données des logiciels installés sur la machine. Recommandé après une installation.

Fin avec erreur

Point de sortie échec du déploiement. Toutes les étapes qui sautent vers END_ERROR aboutissent ici. Medulla enregistre le déploiement comme échoué.

Paramètre À quoi ça sert ?
Nom de l'étape Libellé (généralement END_ERROR). Aucun autre réglage.
Variables Meta (utilisation avancée)
C'est quoi une variable Meta ?

Ce sont des marqueurs spéciaux que vous pouvez insérer dans vos commandes, scripts ou messages. Medulla les remplace automatiquement par leur valeur réelle au moment de l'exécution. Ils sont encadrés par @@@.

@@@PREC_RESULT@@@                                   Résultat textuel de l'étape précédente.
                                                                               Contient ce qu'a affiché la commande ou le script précédent (sa sortie standard). Utile                                                                                 pour récupérer une valeur calculée à l'étape d'avant.

@@@PREC_RETURNCODE@@@                        Code de retour de l'étape précédente.
                                                                               
Le numérique renvoyé par la commande précédente (0 = succès, autre = erreur en                                                                                        général). Utile pour logguer ou conditionner des traitements ultérieurs.

@@@DYNAMIC_PARAM@@@section@@@      Valeur du champ « Paramètres dynamiques » des options avancées du                                                                                                     déploiement. Permet de récupérer dans votre script une valeur passée au moment                                                                                       du  lancement du déploiement.                                                                                                                                                                         Ex: si vous passez {"section": "uninstall"}, la variable contiendra uninstall.

Exemple d'utilisation : logguer le code retour d'une commande :
Dans l'action « Journal de déploiement », mettez comme message :
Code retour de l'étape précédente : @@@PREC_RETURNCODE@@@