Nutanix – Disaster Recovery (ex Leap) : Exécuter des scripts lors de l’exécution d’un FailOver

Manage Script Screen

Nutanix Disaster Recovery est le produit intégré à Prism Central qui permet d’automatiser toute la gestion de plan de reprise d’activité de l’infrastructure virtuelle.

Il est possible de :

  • Valider l’ensemble des pré-requis au démarrage du PRA
  • Tester pendant la production sur des réseaux de tests dédiés son PRA
  • Basculer (en live ou en mode asynchrone) ses machines sur un autre cluster

Si le produit n’est plus à présenté et que de nombreuses démonstration sont disponibles sur le net, il y a une partie qui n’est pas beaucoup détaillé dans la documentation officielle ou sur les ressources externes, l’exécution de scripts à la reprise d’activité ou sur les phases de tests.

Le but de cette article est de détailler la mise en oeuvre et de l’illustrer avec un exemple.

Les cas d’usage de l’exécution de ces scripts peuvent être multiples, voici une liste d’exemples non exhaustive :

  • démarrer ou vérifier l’état d’un service Windows/Linux
  • appeler un script externe
  • exécuter une requête en DB pour vérifier le démarrage d’une instance ou la cohérence des données
  • faire un call API pour ajouter une machine dans un pool de worker ou sur un HA-Proxy
  • envoyer un message dans un canal Teams/Slack

Fonctionnement et pré-requis

Pour faire appel à ces scripts les Nutanix Guest Tools vont être utilisés, il est donc nécessaire de :

  • disposer des NGT en version 1.9 ou supérieure dans les VMs concernées
  • d’autoriser les flux nécessaires à la communication IP entre les CVMs et les VMs concernées (port 2074, 5985 et 5986 pour Windows)

 

Pour pouvoir faire appel aux scripts, il est nécessaires de créés des les répertoires suivants avec droits d’exécution pour l’administrateur local Windows ou compte root Linux :

Pour Windows : 

En production : C:\Program Files\Nutanix\scripts\production\vm_recovery.bat

En test : C:\Program Files\Nutanix\scripts\test\vm_recovery.bat

 

Pour Linux : 

En production : /usr/local/sbin/production_vm_recovery

En test : /usr/local/sbin/test_vm_recovery

 

Le nom du script doit être identique à celui indiqué ci dessus. Les répertoire « scripts\produtction » et « scripts\test » ne sont pas présents de base et doivent être créés sous Windows.

 

Il est aussi nécessaire d’activer l’option « Manage scripts » dans l’étape de la VM dans le Recovery Plan concerné.

 

Mise en place

 

Voici un exemple de mise en place avec une VM Windows Server 2019.

 

1. Activer la prise en charge du script dans le Recovery Plan

Pour permettre l’utilisation du script, il est nécessaire d’activer l’option en faisant un « Update » du Recovery Plan, et dans « Recovery Sequence » sélectionner la VM et faire un « Manage Scripts » , « Enable ».

Manage Script Screen

 

2. Créer un script dans la VM 

Il est maintenant temps de créer un script dans la VM, ici un bat pour une VM Windows dans le répertoire associé au NGT (Program Files\Nutanix\scripts\production\vm_recovery.bat)

Dans mon exemple, le script va créer une ligne pour logger l’exécution du Failover de la VM avec heure et date.

Script Example Screen

 

3. Lancer le Recovery Plan

On lance ensuite le failover du Recovery Plan depuis le Prism Central de destination (cluster qui va hébergé les VMs de PRA). Recovery Plan > FailOver

Si le « Validate » s’exécute correctement c’est que le script est correctement trouvé dans le path associé, sinon une alerte est générée.

On peut voir en suivant l’exécution, une nouvelle tâche apparaître sur l’exécution du script.

 

4. Vérifier la bonne exécution du script

En se connectant dans la VM déplacée, je peux vérifier l’existence de mon fichier et son output.

Ici mon fichier est bien créé.

 

Script Verification Screen

 

Cette procédure est également applicable pour la partie « Test » du Recovery Plan ainsi que sur les machines Linux, moyennant le respect du path du fichier et des droits d’exécution root sur le script / répertoires associés.

 

 

 

 

 

 

 

Laisser un commentaire

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