Aller au contenu

operationBook

L‘“operationBook” permet de créer une liste d’opérations à exécuter, les unes après les autres sur les différents serveurs.

Les opérations peuvent être du type :

  • commande
  • operation
  • operationBook

Attributs

AttributObligatoireTypeDescription
command ou operation ou operationBookoui, une des 3 possibilitésstring
environmentnonobjectplus de détails dans le chapitre
whennonstringSurcharge la valeur prédéfinie dans l’opération si l’opération à exécuter est de type “operation” plus de détails dans le chapitre
registernonstringPermet de capture la sortie standard d’une opération dans une variable d’environnement plus de détails dans le chapitre

Détails des attributs

command/operation/operationBook

Chemin complet de l’opération ou raccourci (préféré) : [espace de noms]/Nom de l’opération (chemin relatif à l‘“OPSDirectory” sans le répertoire “operations”)

environment

Nous avons vu que nous pouvions passer des variables à partir de la ligne de commande (-e VAR=“test”). Ces variables requises ou optionnelles, selon les indications du manifeste, peuvent être incluses ici. Ceci permet de fixer des valeurs précises pour une ou plusieurs opérations et ne pas avoir à manipuler les variables d’environnement avec la ligne de commande.

Cependant, si vous souhaitez surcharger la valeur indiquée dans “operationBook”, utilisez le commutateur : -e [VAR to override]=“New Value”.

when

La valeur indiquée dans “operationBook” surcharge la valeur fixée dans l’opération.

register

Quand vous souhaitez découper vos opérations, il peut être intéressant de disposer du résultat d’une opération qui pourrait être exploitée par plusieurs opérations qui suivent. Pour des raisons pratiques, le résultat peut ne pas être affiché sur la sortie standard, en utilisant le commutateur “-q” (quiet mode).

Cette fonction est assurée par l’attribut “register” qui se retrouve au niveau “operationBook”. La valeur de “register” est un nom représentant une variable. Étant de type globale, par convention son nom doit être en majuscules (pour mieux se repérer dans votre code).

Une fois l’opération exécutée, la variable désignée prend comme valeur la totalité du contenu de la sortie standard. Cette variable est ajoutée au tableau dynamique interne des valeurs “RegisteredVariables”.

Cette variable avec sa valeur sera injectée dans l’environnement préparé de toutes les opérations qui la suivent. Par conséquent vous pouvez nommer cette variable par le nom d’une variable requise d’une opération qui suit.

Si vous souhaitez capturer également la sortie erreur, ajouter le suffixe :json au nom de la variable (ex: MYVAR:json). Dans ce cas et uniquement ce cas, la valeur dissociera la capture de la sortie standard de la sortie erreur grâce à une structure JSON :

{ "stdout": "Contenu stdout", "stderr": "Contenu stderr" }

Attention aux noms des variables donnés pour la méthode “register”. Les valeurs du tableau interne “RegisteredVariables” est injectée dans l’environnement préparé, ceci peut entraîner de gros effets de bords si des noms de variable sont identiques. Pour éviter ce cas, je vous conseille l’utilisation du préfixe ‘REG’ pour ce type de variable (exemple pour “MYVAR” : “REGMYVAR”).

Pour comprendre le fonctionnement de ce mode, veuillez vous référer à ce chapitre.