Self-Service : Décompiler un blueprint avec Calm-DSL

Logo Calm

De temps à autre, j’ai besoin de décompiler des blueprints réalisés dans des contextes différents pour ré-utiliser des scripts que je n’ai pas exporté ou ajouté sur un git.

L’ouverture d’un blueprint exporté en json et sa lecture peuvent s’avérer assez fastidieuse. Il existe, avec Self-Service, une ligne de commande permettant de décompiler un blueprint à partir d’un fichier.

Pour l’environnement, j’ai un calm-dsl qui tourne sous forme d’un container Docker. Plusieurs articles sont disponibles pour le setup de Calm-DSL, comme cette vidéo de Nutanix University  Calm DSL – Workstation Setup

Pour décompiler mes blueprints à partir d’un json existant, je procède de la manière suivante :

1. Uploader les blueprints sur le container Docker

Pousser les bluperints sur le container docker en question dans /tmp par exemple, via le Docker Desktop ou via CLi :

 

docker filesystem

 

2. Exécuter la commande de décompile :

J’exécute ensuite en SSH la commande pour décompiler le blueprint à partir du fichier indiqué en argument. La syntaxe est la suivante :

calm decompile bl --file /tmp/myblueprint-file.json

Dans mon cas, la commande va produire la sortie suivante :

calm decompile command

 

3. Récupérer mes fichiers

Mon blueprint étant maintenant décompilé correctement, je peux accéder à mes fichiers.

Ces derniers ont été décompilés dans mon container local à la racine :

blueprint decompile directory

 

Je peux donc les exporter et les ouvrir depuis ma machine. J’ai donc un répertoire scripts avec l’ensemble des scripts exportés du blueprint .

export scripts

Je peux manipuler et retravailler plus facilement mes scripts que parcourir le json exporté ou devoir réimporter le blueprint dans une nouvelle GUI Self-Service (Prism Central ou Self-Service VM).

script preview

Cette action peut se faire sans connexion à un Prism Central en se basant uniquement sur une connexion en cache dans le calm-dsl init.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *