La Tecnología hecha fácil en Español y ahora en English
VMware, como plataforma líder en virtualización, ha generado la necesidad de contar con herramientas especializadas que simplifiquen la gestión y el monitoreo de entornos virtualizados. Entre estas herramientas, destacan RVTools, vCheck, vDiagram y AsBuiltReport, cada una ofreciendo características únicas para optimizar la administración de máquinas virtuales.
RVTools es una aplicación de código abierto que proporciona información detallada sobre tus entornos de VMware vSphere.
Descarga: https://www.robware.net/rvtools/
RVTools se ha convertido en una herramienta fundamental para administradores de VMware, ofreciendo visibilidad completa y simplificando la resolución de problemas.
vCheck es un marco de scripting que permite generar informes detallados y personalizables sobre entornos VMware.
vDiagram es una herramienta de visualización que crea diagramas visuales de entornos VMware vCenter.
Descarga: https://github.com/Tony-SouthFLVMUG/vDiagram2.0
La capacidad de visualizar la topología del entorno facilita la comprensión y la toma de decisiones informadas.
AsBuiltReport es una herramienta que genera informes automáticos y detallados sobre la configuración de entornos VMware.
Descarga: AsBuiltReport
AsBuiltReport simplifica la documentación y asegura que tu entorno siga las mejores prácticas recomendadas por la comunidad.
Luego de comentarle sobre las anteriores herramientas, me gustaría compartirle la experiencia que viví hace unos días, dado que me vi en la necesidad de contar con un reporte de una gran plataforma VMware, pero resulto que a pesar de mis esfuerzo con las diferentes herramientas antes mencionadas no lograba obtener los resultados deseados dado que las herramientas en algún punto de la generación de los reportes me daban error y generaban un reporte incompleto. Entonces no me quedo otro cosa que crear mi propio script para poder generar el reporte deseado, así que tuve que recurrir al PowerCli de VMware y escribir mi propio script en PowerShell, fue fácil no, fue difícil pienso que tampoco, solo tener un poco de paciencia e ir aprendiendo de los comando durante el proceso.
Así que antes de terminar este artículo les dejo el proceso que tuve que realizar para crear el script y generar mi propio reporte:
1.- Validamos la versión del PowerShell con el comando $psversiontable, para ello abrimos powershell con privilegio administrador
2.- Instalar el modulo de PowerCli para PowerShell, ejecutamos el siguiente comando
# Install-Module -Name VMware.PowerCLI, seleccione la opción que se ajuste a su necesidad, en mi caso A para que se instale todo
3.- Luego de instalada verificamos que se pueden listar los diferentes comando de PowerCli
# Get-Module -ListAvailable -Name VM*
4.- Ahora que ya tenemos el Módulo de PowerCli instalado procedemos a conectarnos a la plataforma VMware con el siguiente comando:
# Connect-VIServer -Server ip-vCenter -User Nombre-user@dominio -Password clave-usuario
5.- A partir de ahora ya estarás conectado a la plataforma VMware y solo debes ejecutar los comando que requieras para obtener los datos y reportes que desees, toma en consideración que al terminar debes ejecutar el siguiente comando para desconectarte de la plataforma VMware o lo que es lo mismo cerrar la sesión.
# Disconnect-VIServer -Server * -Force -Confirm:$false
Les dejo por acá 2 scripts que he utilizado
Este genera un reportes de las VM que se encuentran apagadas y guarda la información en un archivo *.csv
Connect-VIServer -Server x.x.x.x
$Report = @()
$VMs = Get-VM | Where-Object {$_.PowerState -eq “PoweredOff”}
$Datastores = Get-Datastore | Select Name, Id
foreach ($VM in $VMs) {
$row = ” | Select VMName, Powerstate, OS, Host, Cluster, Datastore, NumCPU, MemMb, DiskGb, PowerOFF
$row.VMName = $VM.Name
$row.Powerstate = $VM.Powerstate
$row.OS = $VM.Guest.OSFullName
$row.Host = $VM.VMHost.Name
$row.Cluster = $VM.VMHost.Parent.Name
$row.Datastore = ($Datastores | Where-Object {$_.ID -match ($VM.Datastore | Select-Object -First 1).Id} | Select-Object Name).Name
$row.NumCPU = $VM.NumCPU
$row.MemMb = $VM.MemoryMB
$row.DiskGb = ((($VM.HardDisks | Measure-Object -Property CapacityKB -Sum).Sum * 1KB / 1GB) -as [int])
$PowerOffEvent = Get-VIEvent -Entity $VM -MaxSamples 1 | Where-Object {$_.GetType().Name -eq “VmPoweredOffEvent”}
if ($PowerOffEvent) {
$row.PowerOFF = $PowerOffEvent.CreatedTime
} else {
$row.PowerOFF = “N/A”
}
$Report += $row
}
$Report | Sort VMName | Export-Csv -Path “C:\Reports\VM-PowerOFF.csv” -NoTypeInformation -UseCulture
Disconnect-VIServer -Server * -Force -Confirm:$false
Este script genera un archivo *.csv con la información principal de las VMs en la plataforma. Si desean mas información de cada VM solo deben ir agregando los campos deseados.
Connect-VIServer -Server ‘x.x.x.x’ -User ‘user@dominio.local’ -Password ‘contraseña’
$vmReport = Get-VM | Select-Object Name, PowerState, NumCpu, MemoryGB,
@{N=‘ProvisionedSpaceGB’; E={[math]::Round($_.ProvisionedSpaceGB, 1)}},
@{N=‘UsedSpaceGB’; E={[math]::Round($_.UsedSpaceGB, 1)}},
@{N=‘vDisk#’; E={(Get-HardDisk -VM $_).Count}},
@{N=‘Controller#’; E={(Get-ScsiController -VM $_).Count}},
@{N=‘NetworkAdapter#’; E={(Get-NetworkAdapter -VM $_).Count}},
@{N=‘IPAddresses’; E={ (Get-NetworkAdapter -VM $_ | Where-Object {$_.IPAddresses -ne $null} | ForEach-Object { $_.IPAddresses }) -join ‘, ‘ }}
$vmReport | Export-Csv -Path “C:\Reports\reporte.csv” -NoTypeInformation
Disconnect-VIServer -Confirm:$false
Estas herramientas ofrecen una visión más clara y detallada de los entornos VMware, mejorando la eficiencia operativa y permitiendo a los administradores tomar decisiones más informadas. Al integrar RVTools, vCheck, vDiagram y AsBuiltReport en tus procesos de administración, puedes optimizar la gestión de máquinas virtuales y asegurarte de que tu entorno virtualizado esté en su mejor forma, pero cuando ninguna de ellas logra funcionar siempre podemos acudir al PowerCli desde PowerShell.