⚒️Création de Task "Shell Script"
Les Tasks de type "Shell Script" sont les seules qui peuvent être créés par les utilisateurs Muppy depuis l'interface.
Last updated
Les Tasks de type "Shell Script" sont les seules qui peuvent être créés par les utilisateurs Muppy depuis l'interface.
Last updated
Le menu Muppy / Tasks / Tasks permet d'accéder à l'ensemble des Tasks connues par Muppy.
Cliquez sur le bouton Create pour ouvrir le formulaire de création suivant.
Le nom de la Task est le nom du fichier script qui sera généré (Il doit respecter les contraintes des noms de fichier Linux).
Si le script est une callback particulière, vous devez sélectionner sa Catégorie, sinon vous ne pourrez pas la sélectionner.
Ici vous déclarez les paramètres (nom, type, description)
Le fait de les définir permet aux Tasks Script shell d'avoir la même ergonomie dans les Tasks Runs que les Internal Tasks.
Les paramètres déclarés:
seront saisie dans les Task Runs
doivent correspondre aux paramètres attendues pour les callbacks
Utilisez l'onglet Script pour saisir les commandes qui seront exécutées.
Le script est saisi sous forme d'une template Jinja2.
Les paramètres de la Task sont injectés dans le context Jinja2 dans un objet (python dict) nommé params.
Dans l'exemple ci-dessus, le paramètre a_name déclaré au niveau de la Task est récupéré dans le script par la template {{ params.a_name }}
Par défaut (si Script username est vide), le user qui éxécute le script est le Control User du host.
Vous pouvez forcer un user name particulier: eg. traefik.
Il est également possible d'extraire le username des paramètres en saisissant une template dont le context contient directement les paramètres. {{ param_name..... }}
L'exemple suivant montre une Task callback de catégorie Pack8s Resource Activator chargée de supprimer une ligne dans le crontab du Owner d'un Server LXC lorsque le Server LXC est activé dans le cas d'un Switchover ou Failover.
A noter:
La Category : Ici il s'agit d'une callback Pack8s Resource Activator. Elle doit être renseignée pour que la Task soit disponible à la sélection dans le formulaire de la Resource dans le Meta Cluster.
Le paramètre resource_obj est imposer par la Category. L'utilisateur doit le créer par copie d'une Callback existante. Toutes les tasks avec cette Category auront ce paramètre.
Definition du username par extraction des paramètres:
Dans cette exemple, au moment de l'exécution, le user qui execute le script est extrait du paramètre resource_obj avec la template {{ resource_obj.dev_server_id.username }} qui récupère le user owner du LXC Srver associé associé à la resource.
Voici le code de la Task hello_user ci-dessus: