miércoles, 30 de junio de 2010

Powershells para ESX 4.0 con Powercli

Esta semana me está tocando pelearme con unos reports para un generoso Datacenter de virtualización de VMWAre de un cliente digamos.... "de los grandes".
Y como uno es así... y barriendo un poco para casa, estoy rehaciendo scripts en powershell para Vsphere Powercli . Powercli es una Snapin adicional para nuestro Powershell que nos ayudará a conectarnos a los virtualcenter y a sus respectivos ESX y trabajar con ellos directamente, acciones contra los Appliances,etc,etc,etc.



Powercli añade un catálogo de cmdlets bastante curioso. El requisito que tendremos será tener una máquina con los puertos de escucha del Virtual Center abiertos (en mi caso 443), la powershell 1.0 y que ejecutemos powercli con un usuario que esté dado de alta en la administración de VMware. La otra forma sería instalar la powercli en cada uno de los virtualcenter y ya desde allí ejecutar en local los scripts. En micaso opté por la primera opción, puesto que no quiero dejar ningún software adicional en los appliance.

Para la descarga he necesitado me proporcionen credenciales de VMware en la web :-

Bueno, aquí os paso algunos cmdlets que he usado:

Para obtener datos del HW de los ESX

Get-VMHost Get-View ForEach-Object { $_.Summary.Hardware } Select-object Vendor, Model, MemorySize, CpuModel, CpuMhz, NumCpuPkgs, NumCpuCores, NumCpuThreads, NumNics, NumHBAs

Para obtener datos de los virtual Center:

pasamos la variable
$vcversion = get-view serviceinstance

y la usamos para pedirle versionados, nombres,etc.
$vcversion.content.about select Version, Build, FullName

Otras variables y sentencias que he usado para los datos del cluster:


$clusters = Get-Cluster Sort Name
$vmhosts = Get-VMHost -Location $cluster
$NumHosts = ($vmhosts Measure-Object).Count
$vmhosts Sort Name -Descending % { $server = $_ get-view; $server.Config.Product select { $server.Name }, Version, Build, FullName }
$vms = Get-VM -Location $cluster Where {$_.PowerState -eq "PoweredOn"}


Para los snapshots:


$snap = get-vm get-snapshot
$snap select vm, name,created,description


Más info en: http://blogs.vmware.com/vipowershell/2009/09/how-to-run-powercli-scripts-from-vcenter-alarms.html

y aquí todos los nuevos cmdlets: http://www.vmware.com/support/developer/windowstoolkit/wintk40u1/html/index.html

No hay comentarios:

Publicar un comentario