L'objectif de ce script est d'automatiser l'ajout de Datastores sur l'ensemble des ESXi d'un Cluster.
Les différents stockages utilisés devront être des partages NFS.
Pour cela nous utiliserons un fichier .csv contenant les informations nécessaires à l'ajout des Datastores.
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 de Datastore aux ESXi d'un Cluster ciblé
. UTILISATION :
- Créer un fichier .cvs contenant sur la première ligne "Cluster,Datastore,path,nfshost"
- Remplire les lignes suivantes avec les informations correspondantes à celles de la première ligne séparées par une virgule ","
- Définir la variable $csvpath avec le chemin complet du fichier .csv
- 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 de Datastore aux ESXi d'un Cluster ciblé #
##################################################"
Write-Host;
$csvpath = ""
$datastorelist = Import-Csv -Path $csvpath
foreach($datastore in $datastorelist){
Write-host;
Write-host "Traitement en cours du CLUSTER : " -NoNewline ; write-host $datastore.Cluster -ForegroundColor Cyan
$esxi = get-cluster -name $datastore.Cluster | get-vmhost
foreach ($VMHost in $esxi) {
Write-host;
Write-host "Traitement en cours de l'ESXi : " -NoNewline ; write-host $VMHost.name -ForegroundColor Green
Write-host;
new-datastore -nfs -vmhost $VMHost.name -name $datastore.Datastore -path $datastore.path -nfshost $datastore.nfshost -WhatIf
}
}
Write-Host;
vcenter-disconnect