Vmware: Subir compatibilidad de forma automática con los reinicios

VMWare ESXi
VMWare ESXi

Estamos subiendo la compatibilidad de todas nuestras máquinas virtuales a vmx-10 que son las compatibles con ESXi 5.5 or higher.

Requiere reinicio, y aún tenemos muchas máquinas en versiones vmx-07  y vmx-08, que provienen de las versiones esxi 4.1 y 4.5 respectivamente.

Por ello, hemos optado por programarlo de forma automática, de forma que sean los usuarios en el reinicio los que suban de versión:

    https://communities.vmware.com/message/2249221#2249221

Hemos tenido que hacer un cambio en la línea 65 para que actúe sobre las máquinas que están en versión menor a 10:

if ($vmversion -ne "vmx-10") {

y que la versión que instale sea vmx-10, en la linea 72

$spec.ScheduledHardwareUpgradeInfo.versionKey = 'vmx-10'

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

The power of puppet. Curso introductorio de puppet labs

puppetlabts

Hemos comenzado con el curso que dan desde Puppet Labs para comprender mejor y sacarle todo el partido posible a puppet.

El curso es gratuito, y la máquina virtual tiene una función de quests que va midiendo tu aprendizaje. Así es mucho más motivador y más fácil de seguir.

Problema con la máquina virtual para vmware

Al desplegar la máquina virtual sobre vmware, hemos encontrado un primer problema, ya que nos decía que no había host capaz de ejecutar el sistema operativo.

Sustituir en el fichero learn_puppet_centos-6.5-pe-3.3.2-disk1.vmx

guestOS = "redhat"

por

guestOS = "centos-64"

Otra particularidad que hemos visto en la máquina es que hacer un snapshot la rompe. Por ello, hemos tenido que dejarla en una carpeta de la que no se hace backup nunca.

Antes de empezar

Teclas en castellano:

loadkeys es
echo "loadkeys es >> .bashrc"

Configuración de red

system-config-network
services network restart

Configuración ssh

grep /etc/ssh/sshd_config
PermitRootLogin yes
services sshd restart

Configuración de proxy en bash, puppet y wget

  grep proxy ~/.bashrc
export http_proxy =http://192.128.2.2:80

grep proxy /etc/wgetrc
https_proxy = http://192.128.2.2:80
http_proxy =http://192.128.2.2:80
ftp_proxy =http://192.128.2.2:80

 grep proxy   /etc/puppetlabs/puppet/puppet.confgrep proxy /etc/puppetlabs/puppet/puppet.conf
 http_proxy_host = 192.128.2.2
 http_proxy_port = 80



Forzar la configuración de puppet en un momento dado

puppet agent –test

Validar un archivo de puppet

puppet parser validate FILENAME.pp

Encontrar la ruta para los módulos de puppet

puppet agent --configprint modulepath

Simular un manifiesto en local, sin aplicarlo

puppet apply --noop byte.pp

 Aplicar verdaderamente un manifierto en máquina local:

puppet apply byte.pp

Emacs: Configuración para colorear puppet

cat ~/.emacs
(add-to-list 'load-path "/root/.emacs.d")
(autoload 'puppet-mode "puppet-mode.el" "Major mode for editing puppet manifests")
(add-to-list 'auto-mode-alist '("\\.pp$" . puppet-mode))

;; Enable font lock mode globally, because we love our users.
(require 'font-lock)
(global-font-lock-mode 1)

Instalar, actualizar y desinstalar módulos desde puppet forge

puppet module install puppetlabs-mysql --version 2.2.2 --ignore-requirements
puppet module upgrade puppetlabs-mysql
puppet module uninstall puppetlabs-mysql

 

Ver los módulos ya instalados

puppet module list --tree
Configurar el proxy
root@puppet:/etc/puppet/manifests# grep proxy  /etc/puppet/puppet.conf
http_proxy_host=proxy.myorg.org
http_proxy_port = 80

Nueva versión vcenter vsca version 5.5.0 Update 2a

Ya ha salido la nueva versión (update2) de vsca vmware vcenter.

Para actualizar, simplemente se puede hacer a través del interfaz web, en la pestaña Update.

Vendor:
VMware Inc.
Appliance Name:
VMware vCenter Server Appliance
Appliance Version:
5.5.0.20100 Build 2170515
VMware vCenter Server Appliance
Update to version 5.5.0 Update 2a

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/

Powercli – Clonar varias máquinas a la vez

Queremos clonar de forma automática un número de máquinas, con un patrón concreto. Para ello, hemos usado de powershell:

  • -Match
  • -notmatch

La autentación contra vcenter está fuera del script. Debe hacerse antes de llamarlo.

Al no tener resource pools configurados, la nueva máquina, debe dejarse en el resourcepool “Resources”. Con get-resourcepool podemos consultar cuáles tenemos disponibles en nuestra arquitectura.

# Basado en http://vmwaremine.com/2013/05/28/powercli-clone-vm/
#
# Ester Niclos Ferreras
# Last updated: 29/2/14

# PRe: connect-viserver vc

#
# SourceVM:
#
$vmlist= get-vm pattern* | WHERE   { $_.Name -notMatch “no_pattern” }

$datastore = Get-Datastore “my_datastore”
$folder = get-folder “my_folder” -Location “my_datacenter”
$respool = get-ResourcePool Resources -Location “manvmecluster”

foreach ( $sourceVM in $vmlist) {
$cloneName = $sourceVM.Name +’-clone’

#write-host $sourceVM $cloneName $datastore  $folder

if (New-VM -Name $cloneName -ResourcePool $respool -VM $sourceVM -Location $folder -Datastore $datastore -DiskStorageFormat Thin )
{“DONE”}
else
{“Something wrong with cloning”}
}

 

Vsphere 5.5: Update Manager

Tras la instalación de vcenter vsca, llegamos al momento de revisar Vmware update Manager. Para nuestra sorpresa, a día de hoy sigue pidiendo la instalación sobre windows, y con una base de datos SQLServer no empotrada.

 

Before you install Update Manager, you must set up an Oracle or Microsoft SQL Server database. If your deployment is relatively small and contains up to 5 hosts and 50 virtual machines, you can use the bundled SQL Server 2008 R2 Express database, which you can install during the Update Manager installation.

Esperamos que vmware tome otro camino, por que es un producto excelente; pero SQLServer sube muchísimo el coste de despliegue.

 Guía de instalación y documentación general: Vmware update Manager

Windows 7 y posteriores: XP Mode compartido en todos los usuarios Menú de inicio y escritorio para todos los usuarios

Necesitamos poner un enlace en el escritorio de una máquina que apunte a una aplicación en XPmode.

Es necesario, que para cada usuario, según haga login en el sistema, tenga el icono.

Por ello, siguiendo este tutorial de infoinnova, hemos copiado los enlaces del menú inicio de un usuario concreto (testuser) en la carpeta de menú inicio de todos los usuarios:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Después, hacemos lo mismo con el escritorio:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Aún así, tenemos un problema fundamental, al tratarse de una herramienta en XP mode: Las máquinas virtuales accesibles a un usuario residen en su espacio propio de usuario, y no hay manera de cambiarlo.

Si intentamos acceder a nuestro enlace del escritorio, desde un usuario distinto de quien lo creó, tenemos el error: “The virtual machine configuration names ‘Windows XP Mode’ could not be found”

Por ello, tenemos que copiar archivo vmxc en cada carpeta de los usuarios que vayan a usar esta versión:

C:\Users\%USERNAME%\Virtual Machines\Windows XP Mode.vmxc

En el caso de tener el error: windows XP Mode no se pudo restaurar por que el procesador host no coincide o falta compatibilidad con la virutalización asistida por hardware en el sistema; es necesario renombrar el archivo .vsv y reiniciar la máquina.

 

 

 

Actualizar vcenter vsca 5.5.0a a vcenter 5.5.0b

Cuando estábamos resignados a reinstalar, vmware nos ha dado una alegría: ¡VSCA se puede actualizar desde paquetes a través del interfaz web!

Ni está muy claro en la página de vmware, ni en la guía está entre los procedimientos de actualizacion. Sin embargo en el blog de vpros sí hacían referencia a ello.

  1. Crear un clon de vcenter
  2. Entrar por la interfaz de administración:
    https://vcenter:5480/#update.Status

  1. Aplicar el parche.