Archive

Articles taggués ‘PowerCli’

Modification en bloc des règles de sélection de chemin d’accès sur ESXi

vmware
Je souhaite modifier en bloc la règle de sélection de chemin d’accès pour chaque Datastores de tous les hosts VMWare ESXi du mon cluster.
Par défaut, la sélection du chemin est « Most Recently Used » et je souhaite les passer en « Round Robin »

Dans le cas où j’ai 20 ESXi sur lesquels je monte 15 Datastores, il faudrait que je modifie 300 chemins. Ça va prendre un temps impossible via le viClient avec en plus beaucoup de risque d’en oublier.

La méthode suivante va me permettre de le faire en bloc avec PowerCli.

Tout d’abord vérifions la configuration actuelle des règles avec la commande suivante:

?View Code POWERSHELL
Get-Cluster Cluster-01 | Get-VMHost | Get-ScsiLun | ft VMHost,CanonicalName,MultiPathPolicy,model,vendor

Je prépare un filtre en prévision de ne modifier que les règles que m’intéresse:
LunType: disk
Model: HSV300 pour ma baie HP
MultipathPolicy: Tous les chemins qui ne sont déjà pas en Round Robin.

?View Code POWERSHELL
Get-cluster CLUSTER-01 | Get-VMHost | Get-ScsiLun -LunType "disk" | where {$_.MultipathPolicy -ne "RoundRobin" -and $_.model -eq "HSV300"} |  ft VMHost,CanonicalName,MultiPathPolicy,Model,Vendor

Enfin, j’applique la modification.

?View Code POWERSHELL
Get-cluster CLUSTER-01 | Get-VMHost | Get-ScsiLun -LunType "disk" | where {$_.MultipathPolicy -ne "RoundRobin" -and $_.model -eq "HSV300"} | Set-ScsiLun -MultipathPolicy "RoundRobin"

Je peux repasser la commande du début pour vérifier le résultat.

Afficher tous les Snapshots VMWare en cours

Voici un méthode très rapide pour afficher les snapshots en cours sur tous les VMs de votre vSphere.
VMWare recommande de ne pas créer plus de 2-3 snapshots par VM et que les snapshots n’aient pas un durée supérieur à 24-72 heures.
Il est donc important de contrôler régulièrement la présence des snapshots oubliés.

?View Code POWERSHELL
Get-Vm | Get-Snapshot | ft Name,SizeGB,Created -GroupBy Vm

Un article intéressant sur les Snapshots VMWare: Best practices for virtual machine snapshots in the VMware environment

Visualiser la charge des VMs, Hosts et Clusters avec PowerCli

Ce scripts PowerCli vous permet en quelques secondes de visualiser la charge CPU et Mémoire de l’ensemble de vos VMs, Hosts et Clusters.

Get-Load

Un très bon travail à télécharger ici.

Un fois le script enregistré dans un fichier get-load.ps1 et chargé, lancez les commandes suivantes en fonction de vos besoins.

?View Code POWERSHELL
Get-Load -LoadType VirtualMachine
Get-Load -LoadType HostSystem
Get-Load -LoadType ClustercomputeResource

Soucre

Categories: VMWare Tags: , , ,

Exporter la liste des machines virtuelles

Cette ligne de commande permet grâce à PowerCli d’exporter la liste des VM avec quelques informations comme la version de l’OS, le nombre de CPU, l’espace disque et la RAM allouées, le serveur host.

?View Code POWERSHELL
Get-Vm  | Select-Object @{e={$_.name};n="Name"},@{e={$_.guest.OSFullName};n="OSFullName"},@{e={$_.numCpu};n="CPUNumber"},@{e={$_.MemoryMB};n="MemoryMB"},@{e=$_.ProvisionedSpaceGB};n="ProvisionedSpaceGB"},@{e={$_.VMHost};n="VMHost"} | Export-csv -Path c:\temp\export-vm.csv -Encoding utf8
Categories: VMWare Tags: , , ,

Identifier et compter les VM démarrées

Ce weekend, je doit arrêter et redémarrer dans un délais relativement court une soixantaine de machines virtuelles.
Le système sur lequel je vais intervenir contient également des VMs qui sont déjà arrêtées et qui ne devront pas être redémarrées.
Pour ne pas oublier une VM lors de l’arrêt ou du démarrage, j’ai créer deux scripts.

Le premier va me permettre d’avoir une image des VMs qui sont démarrées.

?View Code POWERSHELL
$vm = Get-VM | Where-Object { $_.PowerState -eq "PoweredOn" }
$file = ".\VM-StopAndStart.txt"
$resfile = New-Item -ItemType file -Path $file -Force
Add-Content -Path $resfile -Value $vm

J’aurai ainsi dans un fichier la liste des VMs sur lesquelles je dois intervenir. Je le lancerai juste avant le début de l’opération.

Pendant les opérations d’arrêt et de redémarrage, j’utiliserai ce second script.

?View Code POWERSHELL
cls
$inv = Get-Content -Path .\VM-StopAndStart.txt"
$vms = Get-VM
$on = 0
$off = 0
Foreach ($vm in $vms) {
if ($vm.PowerState -eq "PoweredOn" -and $inv -match $vm.name){
Write-Host "$vm is PoweredOn" -ForegroundColor Green
$on++
}
Elseif ($vm.PowerState -eq "PoweredOff" -and $inv -match $vm.name){
Write-Host "$vm must be PoweredOn" -ForegroundColor Red
$off++
}
Elseif ($vm.PowerState -eq "PoweredOff" -and $inv -notmatch $vm.name){
Write-Host "$vm must stay PoweredOff" -ForegroundColor Gray
}
}
Write-Host "`nPoweredOn: $on - PoweredOff: $off`n" -ForegroundColor Magenta

J’aurai donc ainsi rapidement la liste des machines que je dois arrêter ou redémarrer et leur nombre.

Connaitre la température de vos serveurs ESXi

L’été approche.
Ce script vous permet de connaitre la température actuel de tous vos serveurs ESXi avec PowerCli.

?View Code POWERSHELL
Get-VMHost | Select Name,
    @{N="Temp";E={
        $sensor = $_.Extensiondata.Runtime.HealthSystemRuntime.SystemHealthInfo.NumericSensorInfo | 
            where {$_.Name -like "External Environment 9*"}
        "{0} {1}" -f ($sensor.CurrentReading * [Math]::Pow(10,$sensor.UnitModifier)),$sensor.BaseUnits
    }
}

D’autres capteurs sont disponibles, vous pouvez les lister dans vShpere Client.

Categories: VMWare Tags: , ,

Ajouter le Snap-in Powershell de VMware

Sur un PC ou serveur ou vous avez préalablement installé PowerCli, vous pouvez ajouter le Snap-in de VMware avec la commande:

?View Code POWERSHELL
Add-PSSnapin "VMware.VimAutomation.Core"

Vous pouvez intégrer cet ajout dans les scripts exécutés par des taches planifiées.

Categories: VMWare Tags: ,

Utilisation disque des VMs dans les datastores

Script pour avoir un état de l’espace disque provisionné et utilisé des machines virtuelles dans chaque datastores.

?View Code POWERSHELL
$date = (Get-Date).ToString("ddMMyyyyhhmmss")
$file = ".\Export_vS\" + $date + "-VMByDatastore.csv"
$resfile = New-Item -ItemType file -Path $file -Force
Add-Content -Path $resfile -Value "DatastoreName;VMName;VMHostNme;ProvisionedSpace;UsedSpaceGB"
$Datastores = Get-Datastore
Foreach( $Datastore in $Datastores ){
$name = $Datastore.name
Get-VM -Datastore $name | Foreach {
Add-Content -Path $resfile -Value "$($name );$($_.Name);$($_.VMHost);$($_.ProvisionedSpaceGB);$($_.UsedSpaceGB)"
}
}

Exporter l’état des disques des machines virtuelles

Ce script export dans un fichier la capacité et le taux d’occupation des disques logiques de toutes le machines virtuelles de votre datacenter.
Pour prévenir des problèmes de saturation des disques des machines virtuelles dans un environnement important, je voulais un script qui m’exporte dans un fichier le taux d’occupation des volumes de chacune de VMs sous Windows ou Linux.
Ce script PowerCli consulte toutes les VMs l’architecture et fait un état de chaque disque. Il calcul l’espace en GB et le pourcentage de disque libre.

?View Code POWERSHELL
$date = (Get-Date).ToString("ddMMyyyyhhmmss")
$file = ".\Export_vS\" + $date + "-VMDisksState.csv"
$resfile = New-Item -ItemType file -Path $file -Force
Add-Content -Path $resfile -Value "Name;Volume;Capicty GB;Free GB;Free %"
Get-VM  | foreach { 
$disks = $_.guest.disks
Foreach ($disk in $disks) {
if ( $disk.Capacity -ne $null ){
$FreeSpace = [math]::round([int64]$disk.FreeSpace/1GB,2)
$Pourcent =  [math]::round(([int64]$disk.FreeSpace*100)/$disk.Capacity)
$Capacity = [math]::round([int64]$disk.Capacity/1GB,2)
Add-Content -Path $resfile -Value "$($_.name);$($disk.path);$($Capacity);$($FreeSpace);$($pourcent)"
}
Else {
Add-Content -Path $resfile -Value "$($_.name);Stopped"
}
}
}

Se connecter au vCenter Server avec PowerCli

La première ligne de commande après avoir lancer PowerCli, elle vous permet de vous connecter au vCenter Server et c’est ensuite que vous pourrez agir.

?View Code POWERSHELL
Connect-VIServer -Server 127.0.0.1 -User "domain\vcmadmin" -Password "P@ssW0rd" -Protocol "https"
Categories: VMWare Tags: , , ,