Un ESXi en modo día de la marmota @ Samquejo | 2021-02-02T18:05:31+01:00 | 5 minutos de lectura | Actualizado en 2021-02-02T18:05:31+01:00

Ya se que no es el día de la marmota.
Pero ¿A quién le apetece reinstalar cada 60 días?

Un ESXi en modo día de la marmota

Es sencillo, pero no tanto.

Antes de seguir, ya lo he comentado pero lo repito.

Si os registráis en la web de Vmware, justo donde se descarga la ISO de ESXi, al darnos de alta obtendremos una licencia de tipo perpetuo y con las funcionalidades de la versión “free”.
Este procedimiento lo utilizo para cuando tengo que entregar una instalación a un cliente, que mi trabajo no consuma los 60 días de prueba que tiene por derecho, y en caso de fallo de su licencia, lo necesitará.
Ni es un procedimiento soportado ni es un procedimiento “legal”, pero que en ciertas ocasiones nos permitirá hacer cosas que de otra manera no podríamos. Si no sabes a que me refiero, esto no es para ti.

Y por su puesto, como siempre, disclaimer, pliego de descargo o como lo queramos llamar.

Aviso: Este procedimiento lo libero con fines pedagógicos y de prueba. No es legítimo en entornos de producción.
Aviso: Este procedimiento funciona para un ESXi Server independiente entre las versiones 3.5 y 7.0.
Aviso: El procedimiento no es operativo en servidores conectados a un vCenter Server.
Aviso: Usar con precaución y bajo vuestra propia responsabilidad.

Base de trabajo, la consola ssh

Lo primero que necesitamos es habilitar la consola ssh:
primera captura

Y por supuesto, accedemos. Por ssh.
segunda captura

Los ficheros que nos interesan son /etc/vmware/vmware.lic y /etc/vmware/license.cfg.

/etc/vmware/.#license.cfg Contiene la clave privada base para la generación de nuevas claves.
/etc/vmware/license.cfg Contiene la clave firmada a fecha de la activación del periodo de gracia. En principio, la fecha de la instalación.

tercera captura

¿Qué hay que hacer?
Pues tan simple como eliminar un fichero y sustituirlo por el otro, y luego reiniciar los agentes.

rm -r /etc/vmware/license.cfg
cp /etc/vmware/.#license.cfg /etc/vmware/license.cfg
/etc/init.d/vpxa restart

Como podéis apreciar, en busybox no está permitido el renombrado directo ni la sobreescritura.
cuarta captura

Tras reiniciar los agentes, podemos ir a host, sección manage y pestaña licensing, con una nueva fecha de expiración.
quinta captura

En la pestaña principal, también podemos verlo, y lo mejor de todo, no hemos alterado el uptime para nada.
sexta captura

Una mejora. Mantener el reinicio de la licencia sin perderlo en caso de reinicio o caída

Lo que vengo a decir es que hay que hacerlo cada sesenta días a mano, y automatizarlo con cron no es la panacea, pero es viable.
Así que el primer paso es que lo pongamos, en un datastore accesible, un script y sus debidos permisos.

#!/bin/sh
## Eliminar licencia
rm -r /etc/vmware/license.cfg
## Cambiar a una nueva licencia de 60 días
cp /etc/vmware/.#license.cfg /etc/vmware/license.cfg
## reinicio de servicios
/etc/init.d/vpxa restart

Algo como esto:
séptima captura

Para modificar el fichero cron, necesitaremos tirar de la documentación, pero como es inexacta para mi gusto, todo lo que podáis leer tanto en la documentación como aquí lo voy a mejorar un poco.

Lo primero, para obtener la información de los procesos, no tendremos ps como tal si no que es el binario de busybox el que lo emula por lo tanto hay que ser creativo.

Necesitaremos la línea de comandos que invoca el proceso, el tipo y que no se coma los valores. Para ello, ps -ctv es la vía a diferencia de lo que propone la documentación.

¿Que más hace falta? pues filtrar. Tenemos un montón de filtros y un montón de datos.

  • Lo primero será seleccionar los registros que apunten a crond con lo que podemos usar grep o egrep. Si no hay varios, mala historia, mejor reiniciar.
  • Lo siguiente será extraer tan solo el primero de los procesos. Para ello usaremos head como head -1.
  • Y por último, el filtro potente de verdad, awk, que nos saque el primer campo, con '{print $1}'.
  • y para rizar el rizo y meterlo en un oneliner…
kill $(ps -ctv | egrep "crond" | head -1 | awk '{print $1}')

Vale, ya hemos matado el demonio, y hay que tocar el ficero localizado en /var/spool/cron/crontabs/root

/bin/echo "0 22 1 * * /vmfs/volumes/SSD-LOCAL/evaluacion.sh" >> /var/spool/cron/crontabs/root

Se ejecuta a las 10 de la noche de cada día 1 de cada mes

Solo queda rearrancar con /usr/lib/vmware/busybox/bin/busybox crond que el propietario es busybox.

octava captura

No queremos que cada reinicio, deseado o no, implique tener que hacer de nuevo el cambio, así que sería razonable introducir el script como proceso parte del proceso de arranque.
Esto se realiza desde /etc/rc.local.d/local.sh y queda tal que así, que dejo a propósito para que se pueda copiar y pegar.

#!/bin/sh

# local configuration options

# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
kill $(ps -ctv | egrep "crond" | head -1 | awk '{print $1}')
/bin/echo "0 22 1 * * /vmfs/volumes/SSD-LOCAL/evaluacion.sh" >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond

Así reescribe el fichero root cuando reiniciemos la máquina.

Espero que haya sido de utilidad.

Una bonita postdata

He visto por ahí, en otros manuales, que más simple que buscar un proceso es localizar su pid en el sistema de ficheros. Quedaría algo parecido a:

kill $(cat /var/run/crond.pid)

YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://feedpress.me/sospechososhabituales
Y sin más, os dejo los enlaces:

Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://www.youtube.com/channel/UC0R70cABSsmC6TFyXth0qPg
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70

© 2019 - 2024 YoVirtualizador

Powered by Hugo with theme Dream.

avatar

El blog de YoVirtualizadorTu podcast y blog de confianza

Acerca de YoVirtualizador

YoVirtualizador es la marca de varios proyectos

Podcast de informática profesional. Canal de Youtube sobre el blog, el podcast y de temática profesional. Blog de contenido diverso, con temática BOFH y técnica.

Gracias por la lectura.

Política de comentarios

En YoVirtualizador todos los comentarios serán bienvenidos pero moderados.

Respetos guardan respetos.

El contenido irrelevante u ofensivo será eliminado.

Galletas

Política de cookies

En YoVirtualizador no usamos cookies para nada, pero los servicios de discus y analytics recopilan datos en servidores ajenos a YoVirtualizador sin que yo pueda hacer nada.

Este aviso es sólo porque algún político tenía que justificar su existencia.

Si hace clic en un enlace de afiliado y compra un producto o servicio, es posible que ese comerciante nos pague una tarifa.