De la même manière que lors de l'ajout de VLANs sur un vSwitch standard qui est associé à l'ensemble des ESXi d'un Cluster, leur suppression à la main peut être assez pénible surtout lorsqu'il faut en supprimer plusieurs.
Nous allons voir ici comment utiliser PowerCLI pour effectuer cette manipulation automatiquement à l'aide d'un script.
Pour supprimer les VLANs, le script fonctionne en récupérant les informations depuis un fichier cvs.
Ce fichier va comprendre plusieurs lignes :
Les informations devront obligatoirement être séparées par une virgule.
Dans cet exemple, un seul VLAN sera supprimé.
Pour en supprimer d'autres il suffira d'ajouter les informations des autres VLANs sur les lignes suivantes.
Exemple :
Voici le script qui sera utilisé pour supprimer un group de ports dans un Virtual Switch Standard sur chacun des ESXi d'un cluster.
Le compte utilisateur doit être un compte ayant des privilèges administrateur sur vCenter.
Evidemment il faudra remplacer la valeur de la variable$csvpath
.
<#
. AUTEUR : Antoine JOVELIN
. FONCTION : Supprimer un groupe de ports sur un vSwitch Standard pour tous les ESXi d'un Cluster
. UTILISATION :
- Lancer le script
#>
cls
# Declaration des fonctions
function vcenter-connect{
$VC = Read-Host -Prompt " Entrer le nom de vCenter "
$cred = Get-Credential
Write-Host;
Write-Host -ForegroundColor cyan "Connexion à vCenter. Merci de patienter..."
Connect-VIServer $VC -Credential $cred
Write-Host;
}
function vcenter-disconnect{
Write-Host;
Write-Host -ForegroundColor cyan "Déconnexion de vCenter..."
Disconnect-viserver -Server $Global:DefaultVIServer -Confirm:$false -Force
Write-Host;
}
# Debut du script
vcenter-connect
Write-Host -fore Cyan "
########################################################################################
# Supprimer un groupe de ports sur un vSwitch Standard pour tous les ESXi d'un Cluster #
########################################################################################"
Write-Host;
$csvpath = ""
$vlanlist = Import-Csv -Path $csvpath
$esxi = Get-cluster $vlanlist.clustername | Get-VMHost
foreach ($VMHost in $esxi) {
Write-Host;
Write-host "Traitement en cours de l'ESXi : " -NoNewline ; write-host $VMHost -ForegroundColor Yellow
Write-Host;
foreach ($vlan in $vlanlist) {
Get-VMHost -name $VMhost | Get-VirtualSwitch -name $vlan.vswitchname | Get-VirtualPortGroup -name $vlan.VLanName | remove-VirtualPortGroup -Confirm:$false
Write-host "Suppression du VLAN " -NoNewline ; write-host $vlan.VLanName -NoNewline ; write-host " effectuée "
}
}
Write-Host;
vcenter-disconnect