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

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.

Vmware vsphere 5.5: Error MKS al abrir una consola

Error: Al conectar con una máquina virtual, se devuelve: Unable to connect to the MKS: malformed response from server

Revisar la conexión por el puerto 902.

Normalmente, un error de MKS al conectar con la consola de una máquina virtual, tiene que ver con un corte en las conexiones entre nuestro PC de origen, y el host que contiene la máquina por el puerto 902.

Definición de los puertos para la versión 5.5.0a

Error periódico en el host. Uso de la imagen para HP

En nuestro caso, revisadas las comunicaciones, se trata de un error de la imagen ESXi 5.5 con blades de HP G8. Os paso un hilo, donde está reportado:

https://communities.vmware.com/thread/462311?start=15&tstart=0

Hay ya un parche que aún no hemos habiltiado:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2063788

Por el momento, hemos optado por parar el servicio de hp ams, con uno de estos dos comandos:

chkconfig hp-ams.sh off

/etc/init.d/hp-ams.sh stop