L'objectif de ce script est d'automatiser l'ajout ou la suppression de disque dur pour une liste de VM.
Pour cela nous utiliserons un fichier .csv contenant les informations nécessaires à l'ajout ou la suppression des disques.
Pour utiliser ce script il sera impératif de :
Attention : le temps d'exécution du script va dépendre du nombre de VM à traiter.
Pour effectuer l'ajout ou la suppression des disques, le script fonctionne en récupérant les informations depuis un fichier csv.
Ce fichier va comprendre plusieurs lignes :
Les informations devront obligatoirement être séparer par une virgule.
Dans cet exemple, un seul disque dur sera créé, pour en ajouter d'autres il suffira d'ajouter les informations des autres VMs sur les lignes suivantes.
VMName,Datastore,HDDSize
nom_de_la_vm1,nom_du_datastore,taille
nom_de_la_vm2,nom_du_datastore,taille
nom_de_la_vm3,nom_du_datastore,taille
nom_de_la_vm4,nom_du_datastore,taille
Exemple :
Le compte utilisateur doit être un compte ayant des privilèges administrateur sur vCenter.
Ne pas oublier de remplir la variable$csvpath
Le script à utiliser est le suivant :
<#
. AUTEUR : Antoine JOVELIN
. FONCTION : Ajout ou suppression de disques durs
. 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 "
########################################
# Ajout ou suppression de disques durs #
########################################"
Write-Host;
do{
$HDD = Read-Host -Prompt " Faut-il ajouter ou supprimer un disque dur : [add/sup] "
if($HDD -eq "add"){
$csvpath = ""
$hddlist = Import-Csv -Path $csvpath
Write-Host;
Write-Host " ### Traitement du fichier .csv : ajout des disques durs sur les VM ### " -ForegroundColor yellow
Write-Host;
foreach ($hddcsv in $hddlist) {
New-HardDisk -VM $hddcsv.VMName -DataStore $hddcsv.Datastore -CapacityGB $hddcsv.HDDSize -Confirm:$false
}
}elseif($HDD -eq "sup") {
Write-Host " ### Suppression d'un disque dur sur une VM ### " -ForegroundColor green
Write-Host;
$VMName = Read-Host -Prompt " Entrer le nom d'une VM "
Write-Host;
$HDDLIST = Get-HardDisk -VM $VMName | select Name, Filename, CapacityGB
$HDDLIST | ft
Write-Host;
$targetHDD = Read-Host -Prompt " Entrer le nom du disque dur a supprimer (ex: Hard disk 2) "
Write-Host;
$supHDD = Get-HardDisk -VM $VMName -Name $targetHDD
Remove-HardDisk -HardDisk $supHDD -Confirm:$false
write-Host " Suppression du disque effectuee " -ForegroundColor green
}
}while ( ($HDD -ne "add") -and ($HDD -ne "sup"))
Write-Host;
vcenter-disconnect