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)
- La première étape est de créer un Runbook dans Calm
- 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)
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.
4. Ajouter le Runbook dans un scheduler, en créant le job et mappant le blueprint :
Option de personnalisation du script
- 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
teams_webhook_url = 'https://nutafr.webhook.office.com/webhookb2/efe548158885515154ce034d3cd@1c5e18ad-c339-465657dd8f333-976ebd5/IncomingWebhook/60aeeeeee47208bcab512588-5151144-83'
Workflow
- 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
- Le timestamp de création est comparé au timestamp actuel moins le nombre de jour de rétention définit dans la variable ‘retentionDays’
- 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.
- On log l’application supprimée et son âge pour l’envoyer dans un webhook combinaison toutes les applications supprimées
- Un webhook Teams ou Slack est envoyé pour logger toutes les applications ‘soft-delete’ :