Powercli: Configurar máquinas virtuales para que instalen tools en el inicio

A raíz del artículo de Brian Graf y de LucD sobre cambios de especificaciones de máquinas virtuales, hemos hecho un pequeño script configure_vmtools_power_cycle.ps1 capaz de marcar en las máquinas virtuales el atributo “tools upgrade”vmware.vmtools.upgrade.power.cycle

Se invoca desde powercli

.\configure_vmtools_power_cycle.ps1

Requiere configuración para definir en qué contenedor (Location) va a aplicar el cambio de políticas.

Para evitar que queden vmware tools montadas en los linux, sólo aplica el cambio sobre máquinas definidas como Windows y encendidas.

En la versión de powercli 5.5 que estamos trabajando, sólo está relleno el cambio vm.Guest.OsFullname si la máquina está encendida. En el caso de máquinas apagadas, no podemos discriminar por sistema operativo. Por ello, se ha puesto también la opción en la función de forzar la aplicación.

 

 
Function configure_vmtools_power_cycle ( $vm, [bool] $force )
{
       

   
    # Comment if you want to upgrade non windows vm
    if ((($vm.Guest.State -eq "PoweredOn") -and  ($vm.Guest.OSFullName.Contains("Windows")) -or ($force)))
        
       {
    
        write-host "Configure vmtools check and upgrade in every powercycle: " $vm.Name $vm.Guest.OSFullName

        # This line creates the object that encapsulates the settings for reconfiguring the VM
        $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
        # This line creates the object we will be modifying
        $vmConfigSpec.Tools = New-Object VMware.Vim.ToolsConfigInfo
        # This line sets the Tools upgrades policy checkbox
        $vmConfigSpec.Tools.ToolsUpgradePolicy = "UpgradeAtPowerCycle"
        # This line commits the change to each virtual machine
        # Get-View -ViewType VirtualMachine | %{    $_.ReconfigVM($vmConfigSpec)}
    
        # Reconfigure vm
        $vm | Get-View | %{ $_.ReconfigVM($vmConfigSpec)}
        
        
   }
 }

 

Instalación vmware tools (9344) en linux Debian

Al instalar la versión 5.6 de vmware vcenter, hemos tenido que instalar todas las tools, concretamente la versión VMwareTools-9.4.5-1598834.tar.gz

En los debian, hemos seguido el procedimiento normal:

mkdir -p /media/cdrom
 mount -t iso9660 /dev/cdrom  /media/cdrom -o ro
 tar -xvzf /media/cdrom/VMwareTools-*.tar.gz
 ./vmware-tools-distrib/vmware-install.pl

Nos hemos encontrado con un problema porque las tools quieren parchear también las cabeceras del núcleo.

Enter the path to the kernel header files for the 2.6.32-5-amd64 kernel?

The path "" is not a valid path to the 2.6.32-5-amd64 kernel headers.

En nuestro caso, no las habíamos instalado:

apt-get install linux-headers-$(uname -r)
# En nuestro caso:
apt-get install linux-headers-3.2.0-4-686-pae

Desmontamos el cliente:

 umount /media/cdrom
 rm -rf vmware-tools-distrib/