Voici le script que j’utilise en ce moment pour les mises en maintenance des hôtes AHV des clusters Nutanix avec un menu à choix multiples :
Disconnect-NTNXCluster * #Choisir le cluster $ClusterNut = Read-Host "Entrer the Ip or DNS name of your Nutanix Cluster to manage" Connect-NTNXCluster $ClusterNut -AcceptInvalidSSLCerts -ForcedConnection $Clusterlist = $null for () { # récupère la liste des noms d'hôtes du cluster $Clusterlist = Get-NTNXHost #défini integer à 0 $i=0 $ClusterName = (Get-NTNXCluster).name Write-Host "Vous avez selectionné le cluster $($(Get-NTNXCluster).name) " # Créer un menu : Pour chaque hôte du cluster ajouter 1 à i et afficher le nom d'hôte associé write-host "0 : Sortir du script" foreach ($ht in $Clusterlist) { $i++ Write-Host "$i : $($ht.Name) : état $($ht.hypervisorState) : Hyperviseur $($ht.hypervisorAddress) : IPMI $($ht.ipmiAddress) " } do { $Menu = Read-Host "Choisir le numéro d'hôte" #juste affichage : tant que le chiffre indiqué n'est pas un nombre d'un hôte possible on boucle ici if (0..$Clusterlist.Count -notcontains $Menu) {Write-Host "Merci d'indiquer le numéro correspond au noeud à mettre en maintenance" -ForegroundColor Red} } #tant que le chiffre indiqué n'est pas un nombre d'un hôte possible on boucle ici while (0..$Clusterlist.Count -notcontains $Menu) #Conserve le nom de l'hôte dans la variable ChoiceMenu le -1 sert car le count debute à 0. if ($menu -eq 0) { #Déco Disconnect-NTNXCluster * exit } $ChoiceMenu = ($Clusterlist).name[$menu-1] write-host "Vous avez choisi le $ChoiceMenu" Write-Host -ForegroundColor Green "Choisir l'option 1 pour Mettre en Maintenance et l'option 2 pour remettre en ligne" $Menu1 = Read-Host if ($Menu1 -eq 1) { $uuid = (Get-NTNXHost | where {$_.name -like $ChoiceMenu}).uuid write-host "La tache de mise en maintenance de l'hôte $ChoiceMenu est en cours" Start-NTNXMaintenanceMode -Hostid $uuid -EvacuationOption LIVE_MIGRATE sleep 3 } if ($Menu1 -eq 2) { write-host "La tache remise en prod de l'hôte $ChoiceMenu est en cours" Stop-NTNXMaintenanceMode -Hostid $uuid sleep 3 } }
Partager la publication "Powershell Menu AHV Maintenance Mode"