Vous êtes ici

Script pour créer des VMs de test issu de la prod en un clique ( VMware ESXi )

Voici un script qui permet d'extraire une VM d'un datastore et de la transférer sur un Partage NFS ( monté sur un ESXi ) et de créer une machine virtuelle pointant sur ce disque virtuel. L'idée est de créer des machines virtuelles de test de votre production en un double clique.

Attention, ici je pars des disques issu de la réplication de mes machines, donc ils ne sont actuellement pas utilisés ( réplication sur pause ).

Il faut en prérequis Powershell ainsi que vSphere PowerCLI :

# Ajout du snap-in de VMware
add-pssnapin VMware.VimAutomation.Core

echo "Bienvenue dans le script de création de VM de test de la machine Appli "
$response = read-host "Voulez vous continuer (yes/no)"

if ($response -eq "yes") {

# Parametres
$server = "192.168.x.x"
$login = "root"
$password = "password"
$date = Get-Date -Format ddMMyy
$nasFolder = "\\nas2\Datastore_QNAP"

# Affichage du résumé des opérations
echo "########## Résumé des opération #############################################"
echo "Operation : Copie du disque de Backup d'Appli vers le datastore QNAP de test "
echo "et création de la VM dans l'inventaire pointant vers le disque de test "
echo Server: $server
echo Login: $login
echo Machine: Appli
echo "#############################################################################"

# Connection à l'ESXi
$vh = Connect-VIServer -Server $server -Port 443 -User $login -Password $password

# Selection du Datastore
$datastore = Get-Datastore "Datastore_QNAP"

#Création du lecteur ds associé au datastore avec son point de montage
New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "\"

#Montage du disque NFS et création du répertoire ou sera stocker la VM de test
net use T: /DELETE
net use T: $nasFolder
mkdir $nasFolder\Appli.$date

#Copie de la VM de Backup dans le datasotre de test
Copy-DatastoreItem "ds:\Appli(1)\*" $nasFolder\Appli.$date

#Création de la VM
$vmhost = Get-VMHost -Name 192.168.x.x
New-VM -Name Appli.$date -VMHost $vmhost -DiskPath "[Datastore_QNAP] Appli."$date"/Appli.vmdk" -NetworkName "Lan Test" -MemoryGB 4 -NumCpu 2

#Ajout de paramètre avancé (ici le copier/coller)
New-AdvancedSetting -Entity $vm -Name isolation.tools.copy.disable -Value FALSE -Confirm:$false -Force:$true
New-AdvancedSetting -Entity $vm -Name isolation.tools.paste.disable -Value FALSE -Confirm:$false -Force:$true

# Fin du script
echo "########## Operation terminée ##############################"
echo "Fin...."
echo "Le disque de test se situe dans :" $nasFolder\Appli.$date
echo "Merci de faire pointer votre fichier de configuration"
echo "vers le .vmdk de ce repertoire"
echo "############################################################"

} elseif ($response -eq "no") {
"Opération annulée"
} 

 

www.le-gas.fr : Le guide de l'admin Systeme