lunes, 30 de junio de 2014

Comandos útiles PowerCli

Hola de nuevo,

PowerCli es un módulo de powershell con CmdLets para gestionar un entorno de vSphere directamente desde la consola. Por supuesto como se tratan de comandos powershell podemos incluirlos en un script para realizar varias tareas a la vez, usar los famosos pipes de powershell, etc...
A continuación pongo unos cuantos comandos de los que a mí me resultan más útiles:

1. Para conectar a un servidor ESX o a un servidor vCenter (nos pedirá los credenciales necesarios para conectar a ese servidor):

 Connect-VIServer <IP del servidor>

2. En caso de estar conectado a un servidor vCenter, para obtener un listado de los host ESX conectados:

 Get-VMHost

(Nos aparece un listado Nombre - Estado - Número de CPUs - Uso de CPU)

3. Para obtener información avanzada de los hosts ESX

 get-vmhost | Get-VMHostAdvancedConfiguration

4. Para obtener un listado de los datastores presentados a los servidores de Vmware y del espacio libre que tienen.

Get-Datastore

5. Si queremos información más detallada de los datastores:

Get-Datastore | select Name, FileSystemVersion, FreeSpaceGB, CapacityGB


 6. Para ver las máquinas virtuales tienen discos dentro de un datastore concreto:

Get-Datastore <nombre datastore> | Get-VM

7. Para obtener un reporte de las máquinas virtuales que tenemos

 Get-VM

(Nos aparece un listado con las columnas Nombre - Estado - CPU's - RAM)

Además en este comando (y en otros también) podemos obtener resultados filtrados según el nombre de las máquinas virtuales con el parámetro -Name

 Get-VM -Name <*texto*>

(Devolverá el listado de máquinas virtuales que su nombre contenga el texto pasado por parámetro)

8. Existen otras maneras de filtrar. Como he comentado antes podemos usar pipes, y en la variable $_ tenemos el resultado del pipe anterior. Así, con el siguiente comando obtenemos las máquinas virtuales que están encendidas.

 Get-VM | Where {$_.PowerState -eq "PoweredOn"}

9. Para obtener más información de las máquinas virtuales: El comando Get-VM nos devuelve una lista de objetos de tipo "VMware.VimAutomation.Types.VirtualMachine" con diferentes propiedades, de las cuales podemos obtener información. Las que encuentro más útiles son:

Guest: Sistema operativo de la máquina virtual
HardDisks: Información sobre los discos de la máquina virtual
Host: Información sobre el host ESX
NumCPU: Número de CPU's
PowerState: Para saber si está encendida
Version: Versión del hardware de la màquina virtual (7,8....)
VMResourceConfig: Información sobre la configuración de compartición de recursos (shares para los que ya sabéis de que va el tema)
VMSwapfilePolicy: Información sobre donde se guarda el fichero de swap de la máquina virtual.

Podemos listar estas propiedades con el mismo comando:

 Get-VM | select Name, Description, NumCpu, MemoryGB, Version, Host, {$_.Guest.IPAddress}

10. Existen otros comandos que podemos usar con pipes para obtener información más detallada:

Máquinas con discos persistentes:
 get-VM | Get-HardDisk | Where {$_.Persistence -eq "IndependentPersistent"}

 Información avanzada de la máquina virtual y sus dicheros de configuración
 Get-VM | get-View 

Máquinas virtuales con snapshots creados

get-vm | get-snapshot | format-table vm,name,sizeMB,IsCurrent,PowerState,created

11. Para acabar, algún comando útil de los que se suelen usar en powershell para exportar resultados a ficheros o para ordenar los resultados obtenidos:

get-vm | get-snapshot | format-list | out-file c:\snaps.txt

Get-VM | select Name, NumCpu, MemoryGB | Export-Csv -path “<path CSV>” -NoTypeInformation

Get-VM | select Name, Description, NumCpu, MemoryGB | sort MemoryGB | Export-Csv -path “<path>” –NoTypeInformation



De momento esto es todo, evidentemente existen un montón de comandos más en PowerCLi para gestionar un entorno de virtualización con Vmware, pero he querido retratar en estos primeros pasos unos cuantos comandos para obtener información sobre el entorno, algo útil por si tenemos que sacar de manera rápida algún resumen de nuestro sistema.

Hasta la próxima entrada!




1 comentario: