Nutanix – Calm : Un runbook pour faire du soft-delete automatique des applications après un certain de temps

Logo Calm

Sur Calm, une fois l’application déployée, elle peut rester « attachée » à Calm pour être gérée dans le temps (Update, ScaleIn/ScaleOut …). Si cette option est bien utile dans la plupart des cas, elle peut être inutiles à certains déploiements.

Dans un cas d’usage, de déploiement réguliers de machines, pour lequel aucune opération de vie de l’application étaient nécessaires dans Calm, j’ai mis en place un Runbook lancé avec les scheduler de Calm pour automatiquement ‘soft-delete’ les applications une fois déployée. Je partage donc avec vous la mise en place de ce Runbook et le script Python utilisé.

Pour rappel, le soft-delete désenregistre l’application de Calm tout en conservant la VM sur le cluster.

(Note : J’ai tésté le soft delete comme dernière tâche au déploiement du service dans le blueprint lui même, mais cette option n’est pas possible tant que l’application est en « Provisionning »)

Déploiement du Runbook

Pré-requis : avoir déployé la Policy Engine Calm pour utiliser le Scheduler (Documentation officielle ici)

  1. La première étape est de créer un Runbook dans Calm
  2. On va ensuite définir les credentials du Prism Central dans le blueprint (avec un user/password dans mon blueprint).(Note : j’utilise pour celà un compte dédié à Calm local à Prism Central)

Credentials

3. Créer une tâche de type « Execute » avec un script type « Escript ». Il faut ensuite coller dedans le script python disponible ici sur mon GitHub.

Runbook View

4. Ajouter le Runbook dans un scheduler, en créant le job et mappant le blueprint :

Scheduler Map

Scheduler

 

 

Option de personnalisation du script

 

  1. Mapper vos credentials dans les variables pc_api_user et ps_api_password. Renseigner votre IP/FQDN de prism central dans pc_api_fqdn
#Prism Central variables settings

pc_api_user = '@@{cscalm.username}@@'

pc_api_password = '@@{cscalm.secret}@@'

pc_api_fqdn = '10.0.0.11'

2. Renseigner la période après laquelle vous voulez que vos application soit softdelete

retentionDays = 3
3. Bonus : Renseigner l’URL de votre webhook Teams/Salck pour recevoir un log des machines supprimées par le script
teams_webhook_url = 'https://nutafr.webhook.office.com/webhookb2/efe548158885515154ce034d3cd@1c5e18ad-c339-465657dd8f333-976ebd5/IncomingWebhook/60aeeeeee47208bcab512588-5151144-83'

Workflow

  1. Le script récupère l’ensemble des applications présentes dans Calm en faisant un appel à l’API de Prism Central. On récupère le nom de l’App, son UUID et son timestamp de création
  2. Le timestamp de création est comparé au timestamp actuel moins le nombre de jour de rétention définit dans la variable ‘retentionDays’
  3. Si l’app est plus vielle que la valeur définit un appel à l’API Prism Central est fait pour supprimer l’App via son UUID.
  4. On log l’application supprimée et son âge pour l’envoyer dans un webhook combinaison toutes les applications supprimées
  5. Un webhook Teams ou Slack est envoyé pour logger toutes les applications ‘soft-delete’ :

Adaptivec Card

 

Laisser un commentaire

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