VMware.PowerCLI - Dialoguer avec Vsphere via Powershell
Lancer un conteneur avec Powershell :
docker run -it mcr.microsoft.com/powershell
Installer le module VMware.PowerCLI :
Install-Module -Name VMware.PowerCLI -Confirm:$false
Accepter les certificats SSL invalides :
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Etablir une conexion au VCENTER :
Connect-VIServer -Server "vsphere.mon-entreprise.fr" -User "utilisateur" -Password "mot-de-passe"
Récupérer la liste des VM :
$vm = Get-VM
Récupérer une VM précise :
$vm = Get-VM -Name "srv-web-01"
Eteindre la VM :
Stop-VM -VM "$vm" -Confirm:$false
Démarrer la VM :
Start-VM -VM "$vm" -Confirm:$false
Créer une snapshot :
New-Snapshot -VM "$vm" -Name "Snapshot_1" -Description "Avant MAJ OS"
Récupérer les snapshots d'une VM :
$snapshots = Get-Snapshot -VM $vm
Récupérer une snapshots d'une VM :
$snapshot = Get-Snapshot -VM "$vm" -Name "ma-snapshot"
Appliquer une snapshot d'une vm :
Set-VM -VM 'ma-vm' -Snapshot (Get-Snapshot -VM 'ma-vm' -Name 'ma-snapshot') -Confirm:$false
Déconnecter le disque CD d'une vm :
$cd = Get-CDDrive -VM $vm
Set-CDDrive -CD $cd -Connected:$false
Blocs de code intéréssant :
Créer une snapshot sur toutes les vm :
foreach ($vm in Get-VM)
{
New-Snapshot -VM "$vm" -Name "$vm-before" -Description "Before update"
}
Stop / Start toutes les vm :
foreach ($vm in Get-VM)
{
Stop-VM -VM "$vm" -Confirm:$false
}
foreach ($vm in Get-VM)
{
Start-VM -VM "$vm" -Confirm:$false
}
Appliquer une snapshot à toutes les vm :
foreach ($vm in Get-VM)
{
Set-VM -VM "$vm" -Snapshot (Get-Snapshot -VM "$vm" -Name "$vm-fresh") -Confirm:$false
}
Détacher tous les CD des lecteurs CD virtuels de toutes les vm :
foreach ($vm in Get-VM)
{
$cd = Get-CDDrive -VM $vm
Set-CDDrive -CD $cd -Connected:$false
}
Afficher toutes les snapshots de toutes les vm :
foreach ($vm in Get-VM)
{
Write-Host "[$vm] :"
$snapshots = Get-Snapshot -VM "$vm"
foreach ($snapshot in $snapshots)
{
Write-Host "$snapshot"
}
}
No Comments