L'objectif de ce script est d'automatiser la création ou la suppression de Snapshot de VM.
Pour cela nous utiliserons un fichier .csv contenant les informations nécessaires à la création ou suppression.
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 la création ou la suppression des Snapshot de VMs, 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 Snapshot de VM sera créé, pour en créer d'autres il suffira d'ajouter les informations des autres VMs sur les lignes suivantes.
VMName,snapshotname
nom_de_la_vm1,nom_du_snapshot
nom_de_la_vm2,nom_du_snapshot
nom_de_la_vm3,nom_du_snapshot
nom_de_la_vm4,nom_du_snapshot
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 : Creer ou supprimer un snapshot de VM
. 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 "
########################################
# Creer ou supprimer un snapshot de VM #
########################################"
Write-Host;
do{
$addsupsnap = Read-Host -Prompt " Faut-il creer ou supprimer un Snapshot : [add/sup] "
if($addsupsnap -eq "add"){
$csvpath = ""
$NewSNap = Import-Csv -Path $csvpath
Write-Host " ### Traitement du fichier .csv : creation d'un snapshot des VM ### " -ForegroundColor yellow
Write-Host;
foreach ($vm in $NewSNap) {
Write-Host " Creation du snapshot de la VM " -NoNewline ; write-host $vm.VMName -ForegroundColor yellow
new-snapshot -vm $vm.VMName -Name $vm.snapshotname -Description "Created $(Get-Date)" -confirm:$false –RunAsync
Write-Host;
}
}elseif($addsupsnap -eq "sup") {
Write-Host " ### Traitement du fichier .csv : suppression des snapshot des VM ### " -ForegroundColor yellow
Write-Host;
$csvpath = ""
$SupSNap = Import-Csv -Path $csvpath
foreach ($vm in $SupSNap) {
Write-Host " Suppression des snapshot de la VM" $vm.VMName -ForegroundColor red
get-snapshot -vm $vm.VMName | remove-snapshot -confirm:$false –RunAsync
Write-Host;
}
}
}while ( ($addsupsnap -ne "add") -and ($addsupsnap -ne "sup"))
Write-Host;
vcenter-disconnect