Powercli

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine VMware vSphere
Module VMware.PowerCLI
Voir aussi Powershell

VMware PowerCLI est un ensemble de modules PowerShell permettant d'administrer les environnements VMware vSphere / vCenter en ligne de commande.

Connexion

Connect-VIServer -Server vcenter.example.com -Protocol https -User 'DOMAINE\utilisateur' -Password 'MotDePasse'

Interroger les VMs

# VMs possédant des disques Raw Device Mapping
Get-VM | Get-HardDisk | Where { $_.DiskType -eq "RawPhysical" }

# Tri par nom
Get-VM | Sort -Property Name

# VM dans un dossier précis
Get-VM -Name MaVM -Location (Get-Folder -Name "MonDossier")

# Informations invité
Get-VMGuest -VM (Get-VM -Name MaVM)

# UUID d'une VM
Get-VM MaVM | ForEach-Object { (Get-View $_.Id).Config.Uuid }

# Chemin du fichier VMX
Get-VM -Location (Get-vApp "Nom vApp") | Get-View | ForEach-Object { $_.Config.Files.VmPathName } | Sort

# Événements de mise sous/hors tension
Get-VM MaVM | Get-VIEvent | Where { $_.FullFormattedMessage -like "*Power*" }

Migration

# Storage vMotion
Get-VM MaVM | Move-VM -Datastore (Get-Datastore "DatastoreCible")

# Changer de PortGroup réseau
Get-VM -Location (Get-Folder "MonDossier") |
  Get-NetworkAdapter |
  Where { $_.NetworkName -eq "Reseau A" } |
  Set-NetworkAdapter -NetworkName "Reseau B" -Confirm:$false

# Arrêt propre de l'invité
Shutdown-VMGuest -VM (Get-VM -Name "vserver1")

Snapshots

Get-VM MaVM | Get-Snapshot | Select-Object -Property Name, Description, Created, SizeMB | Format-List *

New-Snapshot -Name "Avant changement XYZ" -Description "Snapshot planifié" -Memory -Quiesce -VM $vms

# Rollback sur plusieurs VMs
foreach ($vm in $vms) {
    Set-VM -VM $vm -Snapshot (Get-Snapshot -VM $vm -Name "Avant changement XYZ") -Confirm:$false
}

# Suppression / fusion des snapshots
foreach ($vm in $vms) {
    Remove-Snapshot -Snapshot (Get-Snapshot -VM $vm -Name "Avant changement XYZ") -Confirm:$false
}

Voir aussi