Nutanix – PowerShell : Planifier l’allumage/extinction de ses VMs sous AHV

logoNTNXPS

Aujourd’hui sur vSphere, il est possible de créer des tâches planifiées pour piloter l’allumage/extinction de ces VMs nativement sans trop de configuration.

Cette tâche peut s’avérer utile par exemple, lorsque l’on a besoin d’éteindre une VM pour prendre un backup à froid.

Mais comment peut on faire cela sur AHV ?

Sur AHV, il n’y pas de fonction native pour planifier ces tâches. Deux solutions s’offrent alors :

  • créer des tâches cron et les répliquer sur les machines du cluster (CVM ou hôtes AHV)
  • créer des tâches planifiées Windows.

Dans cet article, je vais choisir la deuxième option. Piloter l’extinction de VM et leur allumage par scripts PowerShell et tâches planifiées exécuter sur un serveur Windows.

Pré-requis :

  • Installer les cmdlets Nutanix sur le Windows Server en question
  • Avoir un compte avec droits adéquates sur le cluster Nutanix

Mise en place

Pour télécharger et installer les cmdlets Nutanix, vous pouvez les récupérer directement depuis Prism Element.

cmdlets

(Note : avant d’exécuter mes scripts PowerShell, j’ai au préalable lancé une première fois les cmdlets pour les tester)

Récupérer les scripts de connexion et d’extinction/allumage des machines sur mon github .

Deux scripts sont à récupérer :

  1. Shutdown_VM1.ps1
  2. PowerOn_VM1.ps1

Ces scripts exécutent les actions suivantes :

  1. Test des cmdlets Nutanix
  2. Initiation d’une connexion au cluster
  3. Récupération du vmId
  4. Exécution de la commande powershell d’Allumage/Extinction

Exemple pour l’extinction :

$myvarLoaded = Get-PSSnapin -Name NutanixCmdletsPSSnapin -ErrorAction SilentlyContinue | % {$_.Name}

if ($myvarLoaded -eq $null){Add-PSSnapin NutanixCmdletsPSSnapin}

#Cluster Credentials

$ipAddress = "192.168.1.10"

$clusterUserName = "admin"

$Secure_String_Pwd = ConvertTo-SecureString "nutanix/4u" -AsPlainText -Force

Connect-NutanixCluster -Server $ipAddress -UserName $clusterUserName  -Password $Secure_String_Pwd -AcceptInvalidSSLCerts -ForcedConnection

$vm = Get-NTNXVM -SearchString "my-VM" 

Set-NTNXVMPowerOff -Vmid $vm.vmId

 

Une fois les scripts récupérer et paramètres modifiés, il ne reste qu’a créé les tâches planifiées sur le serveur Windows.

Dans mon cas, j’ai créé une tâche basique d’extinction puis une tâche basique de démarrage.

Ces tâches exécutent le programme PowerShell.exe avec comme paramètres le chemin du script PS.

scheduleTask

(Note : J’ai programmé mes tâches pour s’exécuter avec les droits maximaux, et une exécution sans que l’utilisateur soit connecté).

On peut ensuite forcer l’exécution de la tâche pour tester.

Et le tour est joué.

 

 

2 commentaires

Laisser un commentaire

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