Last active
December 4, 2015 04:47
-
-
Save gcanales75/bd327082c5ba56ed7fac to your computer and use it in GitHub Desktop.
Reporte Configuracion vSphere (Kindda memoria tecnica)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Script que genera CSV con informacion de la configuracion de distintos elementos en una | |
## instalacion de vSphere (5.1/5.5). Pensada en que corra al terminar una instalacion o con | |
## cierta frecuencia para mantener actualizada la informacion del entorno vSphere. | |
## Archivos CSV que va a generar el reporte | |
## -> Reporte de VMs | |
## -> Reporte de discos virtuales y configuracion | |
## -> Configuracion de politicas en PortGroups | |
## -> Configuracion de red en PortGroups | |
## -> IP y funcionalidades en PortGroups | |
## -> Datastores VMFS | |
## -> Datastores NFS | |
## -> Configuracion host ESXi | |
## -> Licencias hosts ESXi | |
## -> Cluster | |
## -> HostId de los ESXi | |
## Completar con la informacion de vCenter Server!! | |
$vCenter = "IP_de_vCenter_Server" | |
$user = "Usuario_con_derechos_de_administrador_de_vCenter" | |
$password = "contraseña_usuario_administrador" | |
## Variables que utizaremos mas tarde | |
$ok = "Si" | |
$noresp = "No" | |
$na ="N/A" | |
$on = "Encendida" | |
$off = "Apagada" | |
$running = "Running" | |
$current = "guestToolsCurrent" | |
$unmanaged = "guestToolsUnmanaged" | |
$noact = "No Actualizado" | |
$date = Get-Date | |
$foldername = Get-Date -Format yyMMdd | |
## Crea el directorio donde se depositaran los TXT | |
Set-Location -path c:\temp | |
md -Name $foldername | |
## Credenciales de vCenter y PS Snapin | |
Add-PSSnapin -name VMware.VimAutomation.Core | |
Connect-VIServer -Server $vCenter -User $user -Password $password | |
## Reporte de VMs | |
Get-VMHost -Name * | Get-VM | | |
Select @{Name="VM";E={$_.name}}, | |
@{Name="Nombre DNS";E={$_.guest.hostname}}, | |
@{Name="IP";E={$_.guest.ipaddress[0]}}, | |
@{Name="vCPU";E={$_.numcpu}}, | |
@{Name="Memoria (GB)";E={$_.memorygb}}, | |
@{Name="VMware Tools";E={ if (($_.guest.ExtensionData.Toolsversionstatus -eq $current) -or ($_.guest.ExtensionData.Toolsversionstatus -eq $unmanaged)) { $ok } else { $noact }}}, | |
@{Name="Sistema Operativo";E={$_.ExtensionData.Summary.config.guestfullname}}, | |
@{Name="Estado";E={ if ($_.guest.state -eq $running) { $on } else { $off }}} | Export-Csv c:\temp\$foldername\VMs.csv | |
Add-Content c:\temp\$foldername\VMs.csv "`r`nReporte generado: $date" | |
## Reporte de discos virtuales y configuracion | |
Get-VM * | Get-HardDisk | | |
Select @{Name="VM";Expression={$_.Parent}}, | |
@{Name="Disco";Expression={$_.name}}, | |
@{Name="Capacidad GB";Expression={"{0:N1}" -f $_.CapacityGB}}, | |
@{Name="Formato";Expression={if ($_.StorageFormat -eq 'Thin') { "Thin" } else { "Thick" }}}, | |
@{Name="RDM";Expression={if ($_.ExtensionData.backing.LunUuid -ne $null) { "Si" } else { "No" }}}, | |
@{Name="Independiente";Expression={if ($_.Persistence -eq 'Persistent') { "No" } else { "Si" }}}, | |
@{Name="Persistente";Expression={if ($_.Persistence -eq 'IndependentPersistent' -or 'Persistent') { "Si" } else { "No" }}}, | |
@{Name="Datastore";Expression={$_.FileName.Split(']')[0].TrimStart('[')}}, | |
@{Name="Folder/VMDK";Expression={$_.filename.Split(']')[1]}} | Export-Csv c:\temp\$foldername\discos.csv | |
Add-Content c:\temp\$foldername\discos.csv "`r`nReporte generado: $date" | |
## Configuracion de politicas en PortGroups | |
Get-VMHost * | Get-VirtualPortGroup | | |
Select @{Name="Portgroup";E={$_.name}}, | |
@{Name="Promiscuous Mode";E={$_.ExtensionData.ComputedPolicy.security.allowpromiscuous}}, | |
@{Name="Mac Address Changes";E={$_.ExtensionData.ComputedPolicy.security.MacChanges}}, | |
@{Name="Forged Transmits";E={$_.ExtensionData.ComputedPolicy.security.ForgedTransmits}}, | |
@{Name="Host";E={$_.vmhostid}} | Export-Csv c:\temp\$foldername\politicas-sw.csv | |
Add-Content c:\temp\$foldername\politicas-sw.csv "`r`nReporte generado: $date" | |
## Configuracion de red en PortGroups | |
Get-VMHost * | Get-VirtualPortGroup | | |
Select @{Name="Portgroup";E={$_.name}}, | |
@{Name="Active NIC";E={$_.ExtensionData.ComputedPolicy.nicteaming.nicorder.activenic}}, | |
@{Name="Standby NIC";E={$_.ExtensionData.ComputedPolicy.nicteaming.nicorder.StandbyNic}}, | |
@{Name="Balance Protocol";E={$_.ExtensionData.ComputedPolicy.nicteaming.Policy}}, | |
@{Name="Failback";E={$_.ExtensionData.ComputedPolicy.nicteaming.ReversePolicy}}, | |
@{Name="Notify switch";E={$_.ExtensionData.ComputedPolicy.nicteaming.NotifySwitches}}, | |
@{Name="VLAN";E={$_.VLanId}}, | |
@{Name="Host";E={$_.vmhostid}} | Export-Csv c:\temp\$foldername\conf-PG.csv | |
Add-Content c:\temp\$foldername\conf-PG.csv "`r`nReporte generado: $date" | |
## IP y funcionalidades en PortGroups | |
Get-VMHost * | Get-VMHostNetworkadapter | Where {$_.Name -like "vmk*"} | | |
Select @{Name="Portgroup";E={$_.PortGroupName}}, | |
@{Name="IP";E={$_.IP}}, | |
@{Name="Netmask";E={$_.SubnetMask}}, | |
@{Name="Management";E={$_.ManagementTrafficEnabled}}, | |
@{Name="vMotion";E={$_.VMotionEnabled}}, | |
@{Name="Fault Tolerance";E={$_.FaultToleranceLoggingEnabled}}, | |
@{Name="Host";E={$_.vmhostid}} | Export-Csv c:\temp\$foldername\conf-IP-vmkernel.csv | |
Add-Content c:\temp\$foldername\conf-IP-vmkernel.csv "`r`nReporte generado: $date" | |
## Datastores VMFS | |
Get-Datastore | where{$_.Type -eq "VMFS"} | | |
Select @{Name="Datastore";E={$_.Name}}, | |
@{Name="Capacity (GB)";E={$_.capacityGB}}, | |
@{Name="Type";E={$_.Type}}, | |
@{Name="Version";E={$_.FileSystemVersion}}, | |
@{Name="Canonical Name";E={(Get-ScsiLun -datastore $_ | Select -First 1).canonicalname}}, | |
@{Name="URL (Folder)";E={$_.ExtensionData.Summary.Url}}, | |
@{Name="Hosts conectados";E={$_.ExtensionData.Host.Key}}| Export-Csv c:\temp\$foldername\datastores-VMFS.csv | |
Add-Content c:\temp\$foldername\datastores-VMFS.csv "`r`nReporte generado: $date" | |
## Datastores NFS | |
Get-Datastore | where{$_.Type -eq "NFS"} | | |
Select @{Name="Datastore";E={$_.Name}}, | |
@{Name="Capacity (GB)";E={$_.capacityGB}}, | |
@{Name="Type";E={$_.Type}}, | |
@{Name="NFS Server";E={$_.RemoteHost}}, | |
@{Name="Folder";E={$_.RemotePath}}, | |
@{Name="Hosts conectados";E={$_.ExtensionData.Host.Key}} | Export-Csv c:\temp\$foldername\datastores-NFS.csv | |
Add-Content c:\temp\$foldername\datastores-NFS.csv "`r`nReporte generado: $date" | |
## Configuracion host ESXi | |
Get-VMHost | | |
Select @{Name="Name";E={$_.Name}}, | |
@{Name="Model";E={$_.Model}}, | |
@{Name="Processor Model";E={$_.ProcessorType}}, | |
@{Name="Cores";E={$_.NumCpu}}, | |
@{Name="Sockets";E={$_.extensiondata.hardware.cpuinfo.numcpupackages}}, | |
@{Name="Total cores";E={$_.ExtensionData.Hardware.CpuInfo.NumCpuCores}}, | |
@{Name="Memory";E={$_.MemoryTotalGB}}, | |
@{Name="Version ESXi";E={$_.Version}}, | |
@{Name="Build";E={$_.Build}} | Export-Csv c:\temp\$foldername\hosts.csv | |
Add-Content c:\temp\$foldername\hosts.csv "`r`nReporte generado: $date" | |
## Licencias hosts ESXi | |
Get-VMHost | | |
Select @{Name="Name";E={$_.Name}}, | |
@{Name="License Key";E={$_.LicenseKey}} | Export-Csv c:\temp\$foldername\licencias-esx.csv | |
Add-Content c:\temp\$foldername\licencias-esx.csv "`r`nReporte generado: $date" | |
## Cluster | |
Get-Cluster | | |
Select @{Name="Name";E={$_.Name}}, | |
@{Name="HA Enabled";E={$_.HAEnabled}}, | |
@{Name="DRS Enabled";E={$_.DRSEnabled}} | Export-Csv c:\temp\$foldername\cluster.csv | |
Add-Content c:\temp\$foldername\cluster.csv "`r`nReporte generado: $date" | |
## HostId de los ESXi | |
Get-VMHost | Select Name,Id | Export-Csv c:\temp\$foldername\vmhostId.csv | |
## Desconectar sesion de vCenter Server | |
Disconnect-VIServer -Server $vCenter -Force -Confirm:$false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment