Vmware: Instalación de parches de servidor

VMWare ESXi
VMWare ESXi

Instalación de parches con powershell

Es necesario descargar el parche en local, y descomprimirlo.

Connect-ViServer host1.myorg.org
$host | Install-VMHostPatch -LocalPath ESXi550-201502001/metadata.zip

Instalación de parches por ssh

Activar ssh vía cli

$host = Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } )

Vía ssh:

vim-cmd hostsvc/maintenance_mode_enter
esxcli software vib install -d "/var/tmp/ESXi550-201502001.zip"
esxcli software vib list
vim-cmd hostsvc/maintenance_mode_enter

Power cli: script para mover máquinas virtuales de datastore

VMWare ESXi
VMWare ESXi

Utilizando powershell, podemos hacer un pequeño script que nos libere un datastore completo, moviendo las máquinas virtuales que residen en él a una nueva ubicación.

Además,  desmontamos las vmware tools, si están montadas, como indican en las communities de vmware.

Function migrate_ds  ([string] $old_ds, [string] $new_ds)
{            $vms = Get-VM -Datastore $old_ds
            foreach ($vm in $vms) {  
                    # unmount tools and clean cd drive 
                    $vm | Get-CDDrive | where { $_.IsoPath -or $_.HostDevice -or $_.RemoteDevice } | Set-CDDrive -NoMedia -Confirm:$false
                    $vm  | move-VM -Datastore $new_ds
            
            }
}

migrate_ds my_old_ds my_new_ds

Vmware powercli: Scripts útiles

Los scripts aquí definidos están para descargar en github.

Activar y desactivar de forma masiva ssh en los hosts

Desde la 4.1, se puede activar ssh, sin necesidad de entrar por las ilos de los servidores.

Es importante el -Confirm $false, por que si no , pregunta 100 veces.

Nos hemos basado en esta utilísima entrada de techshifter

Get-Cluster | Foreach {
$cl=$_
Get-Cluster -name $cl | Get-VMHost | Foreach {
# Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } )
# Stop-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } ) -Confirm:$false
}
}

Activar snmp de forma masiva en todos los nodos

Este script es algo más complicado, porque es necesario iniciar sesión contra el servidor vcenter, y depués contra cada uno de los hosts.