NUTANIX - Preparar plantilla para instalar de forma automática las NGT

En este artículo os mostraremos como poder preparar nuestras plantillas Windows en Nutanix para poder instalar de forma automática las Nutanix Guest Tools desde Prism Central. Las pruebas se han realizado con una versión Community Edition y AHV 20191030.415. Hemos supuesto que todas las máquinas tienen los mismos credenciales de administrador local. En futuros posts veremos qué pasa cuando las máquinas tienen diferentes credenciales.

A continuación, os listamos los requerimientos que debemos cumplir para este procedimiento. Si por cualquier motivo la traducción no es clara podéis consultar las notas oficiales en este enlace.

Requisitos Generales

  • Solo funciona en máquinas que residan en AHV o ESX.
  • Para AHV, Prism Central y Prism Element debe estar como mínimo en la versión 5.9.
  • Para ESXi, Prism Central y Prism Element deben estar como mínimo en la versión 5.11.
  • El puerto TCP / 2074 tiene que estar abierto desde las máquinas virtuales hacia la VIP del clúster.

Requisitos para máquinas Linux

  • La version del paquete lvm2 debe ser 2.02.109 o superior.
  • Las CVM tienen que tener acceso SSH a la máquina virtual.
  • Asegúrate de que tienes como mínimo 5 sesiones SSH libres configuradas en “Max Sessions”. Lo puedes comprobar en /etc/ssh/sshd_config.
  • El usuario empleado para la instalación no debe tener acceso sudo a la máquina virtual.
  • Asegúrate de haber deshabilitado “requiretty” para un usuario en particular.
    • sudo sed -i 's/Defaults    requiretty/ #Defaults    requiretty/g' /etc/sudoers
  • Las NGT se instalan en /usr/local y la ISO se monta en /mnt/nutanix/ngt. Asegúrate de que el usuario empleado para la instalación tiene permisos de escritura en esas ubicaciones.

Requisitos para máquinas Windows

  • Como mínimo temenos que tener instalada la versión 3.0 de PowerShell.
  • Es necesaria una cuenta de administrador local para la instalación.
  • La ruta de Powershell debe estar disponible en el entorno para la instalación de NGT. De lo contrario la instalación de NGT fallará.
  • Windows Remote Manager (WinRM) debe estar habilitado y funcionando.
  • Se debe configurar el servicio WinRM con SSL. Ejecuta los siguientes comandos desde Windows PowerShell como administrador:
$certificate = New-SelfSignedCertificate -DnsName $env:computername -CertStoreLocation cert:\LocalMachine\My
winrm create winrm/config/Listener?Address=*+Transport=HTTPS "@{Hostname="$env:computername";CertificateThumbprint="$($certificate.ThumbPrint)"}"
cmd /c 'winrm set winrm/config/service/auth @{Basic="true"}'
netsh advfirewall firewall add rule name=\"WinRM-HTTPS\" dir=in localport=5986 protocol=TCP action=allow

Puertos Necesarios

Protocolo Puerto Orígen Destino Descripcción
ProtocoloPuertoOrígenDestinoDescripcción
TCP2074Todas las máquinasCluster VIPNutanix Guest Tools
TCP5986CVM's + Cluster VIPTodas las máquinasWinRM desde CVM's
TCP22 CVM's + Cluster VIP Todas las máquinasSSH

Durante las pruebas hemos podido comprobar que a parte de abrir el puerto TCP/2074 desde las maquinas del clúster hacia la VIP del mismo para las NGT, también ha sido necesario abrir el puerto TCP/5986 para WinRM desde las CVM hacia las máquinas en las que vamos a instalar las NGT junto con el puerto TCP/22 para SSH. ¡Abridlos!

¿Por qué usaremos un script?

Si configuramos WinRM con SSL en nuestra plantilla  al hacer el Sysprep perderemos la configuración.

Para evitar la pérdida crearemos el script SetupComplete.cmd tal y como indica Microsoft en este enlace. Realizaremos la configuración una vez ha terminado el proceso de Sysprep. Ojo esto no funcionará si utilizamos claves OEM.  

Procedimiento

Primero crearemos la carpeta Scripts en c:\Windows\Setup si no existiera.

Dentro de la carpeta Scripts, crearemos el fichero SetupComplete.cmd.

Ahora escribiremos el siguiente código para lanzar un script en powershell desde nuestro script batch

powershell.exe -NoLogo -ExecutionPolicy Bypass -File C:\Scripts\NGT\Setup.ps1

Continuaremos creando el script en PowerShell con el código para generar el certificado autofirmado y enlazarlo al servicio WinRM. Tal y como podéis comprobar nosotros lo tenemos ubicado en c:\Scripts\NGT\Setup.ps1. Si decidís emplear otra ubicación también tendréis que modificar la ruta en el script “SetupComplete.cmd”.

Copiamos el contenido que aparece en los requisitos dentro del fichero “Setup.ps1”.

Configuraremos el servicio WinRM con arranque automático si no lo estuviera previamente.

Para terminar con la plantilla, hacemos un Sysprep de la máquina para dejarla lista para los despliegues.

Ahora clonaremos la máquina, para ello la seleccionamos y pinchamos sobre clone.

Generamos un clon de forma habitual para comprobar el comportamiento.

Una vez clonada la máquina, la encenderemos y empezaremos a configurarla de forma habitual.

Configuramos el idioma.

Omitimos la clave de producto.

Aceptamos la licencia.

Configuramos la contraseña de administrador local.

Iniciamos sesión.

Abrimos un CMD y ejecutamos el siguiente comando:

 WinRM e winrm/config/listener 

Si todo ha salido según lo previsto veremos la siguiente salida:

Llegados a este punto nuestra máquina ya estaría preparada. Ahora nos dirigimos a nuestro Prism Central y pinchamos sobre "Virtual Infraestructure" y luego en "VMs".

Pinchamos sobre la máquina, en nuestro caso se llama "NGT Test" y dentro del menú pincharemos sobre "More" y para terminar "Install NGT".

Marcamos las opciones que necesitemos y cuando queremos que se reinicie la máquina.

Ahora introduciremos la cuenta de administrador local de nuestra máquina.

Si abrimos la consola de la máquina podremos comprobar como se montan las NGT de forma automática.

Y como se han instalado correctamente.

Como antes hemos indicado que la máquina se reiniciara justo al terminar la instalación, podremos ver el típico mensaje de "Sign Out".

Para terminar volvemos a Prism Central y vemos que el estado de las NGT está en "Latest".

Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *