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 :
Nous allons lui associer une action de type SSH Address (on ajoute une action par cluster) :
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 »
Il faut ensuite récupérer l’uuid du webhook pour l’appeler depuis le Runbook que l’on va créer.
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
On peut ensuite lancer notre Runbook et vérifier le résultat de l’excution de notre commandes dans les Plays.