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.
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
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 :
|
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 TEMP, PATH, USERNAME.
| 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_FRLOGLEVEL :: 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 :
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é@__@valeurAjouter/modifier un paramètre : add@__@agentconf.ini@__@global@__@log_level@__@INFOSupprimer 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@@@


