Nutanix – Calm : Automatiser des actions sur des CVMs/PCVMs avec des Runbooks et Playbooks

Vous pouvez être amener à automatiser des tâches sur plusieurs clusters Nutanix, plusieurs CVM ou PCVM (Prism Central VM). Dans ce cas, plusieurs solutions s’offrent à vous : via des APIs, via des cmdlets PowerShell…

Je suis récemment tomber sur un cas d’usage pour lequel j’avais des actions en masse à effectuer de façon récurrente sur plusieurs clusters Nutanix via un Runbook dans Calm.

Dans Calm, nativement, il n’est pas possible d’utiliser la CVM d’un cluster Nutanix comme Endpoints et y effectuer des commandes distantes en SSH. En effet les CVMs/PCVMs ont le subsystem sftp de désactivé par défaut pour des questions de sécurité.

Voici une alternative via l’utilisation d’un Playbook appelé depuis un Runbook Calm pour contourner ce blocage et pouvoir automatiser certaines tâches de maintenances.

Tout d’abord, il faut déclarer notre Prism Central comme Endpoint pour l’utiliser dans le Runbook.

 

On va ensuite créer un Playbook qui sera notrepoint d’entrée pour les actions sur les CVMs.

Pour que le Playbook soit utilisable depuis Calm, nous allons créer un Playbook de type Webhook :

Webhook selection

Nous allons lui associer une action de type SSH Address (on ajoute une action par cluster) :

Action Selection

Renseigner la commande que vous voulez effectuer, dans mon cas je veux Granter des droits à des comptes de services locaux aux clusters.

Il faut bien cocher la case « Allow on CVM »

SSH Action

Il faut ensuite récupérer l’uuid du webhook pour l’appeler depuis le Runbook que l’on va créer.

Webhook UUID

On va ensuite créer le Runbook dans Calm avec une tâche de Type HTTP dans laquelle on renseigne :

  • l’id du webhook
  • les paramètres que l’on souhaite envoyer au webhook

 Runbook Creation

On peut ensuite lancer notre Runbook et vérifier le résultat de l’excution de notre commandes dans les Plays.

Plays history

 

 

 

 

Laisser un commentaire

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