Accueil / Powershell / Powershell Menu AHV Maintenance Mode

Powershell Menu AHV Maintenance Mode

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 :

[powershell]

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
}

}

[/powershell]

Étiquetté :