Despliegue sencillo de servidores ESXi: Guía de instalación y configuración con ESXi-Foreman PXE Deploy
09:46, 04.04.2024
ESXi es una herramienta de virtualización de nivel empresarial. Puede gestionar máquinas virtuales de forma más eficiente que algunos servicios a los que estamos acostumbrados. El servidor ESXi de VMware se instala directamente en el ordenador, sin el sistema operativo del host. Entonces, el servidor puede dirigir los recursos de hardware y generar copias de hardware virtual para su gestión.
Existen dos métodos de instalación para ESXi: a través de Legacy o UEFI. Para esta guía, vamos a utilizar Legacy.
Simplificación de la implantación de servidores ESXi: Modo de instalación heredado
El modo Legacy necesita ser instalado para los sistemas antiguos que no soportan UEFI (Unified Extensible Firmware Interface).
En este paso, vamos a abordar el despliegue del servidor ESXi mediante la instalación del modo Legacy a través de un hipervisor VMware ESXi 8.0. Es necesario tener instalado previamente el software Foreman; si no lo tiene, puede seguir el manual de instrucciones para instalar Foreman. Pero si lo tienes instalado, procederemos.
Primero, necesitamos crear un sistema operativo. Abra Foreman y haga clic en Crear sistema operativo. Allí, inserta lo siguiente:
Name - ESXi-6.7.0-8169922 (ESXi-{OS Version}-{Build Number})
Major version - 6
Minor version - 7
Description - ESXi-6.7.0-8169922
Family - Redhat
Root pass hash -SHA512
Architectures - x86_64
Ha creado una imagen del sistema operativo.
Configuración con plantillas: Un enfoque descriptivo
A continuación, tenemos que crear una plantilla PXELinux (nombre - ESXi-6.7.0-8169922) y una plantilla kickstart (nombre - ESXi Minimal Kickstart).
Para la plantilla PXELinux, inserte lo siguiente:
DEFAULT ESXi
NOHALT 1
LABEL ESXi
KERNEL ../boot/ESXi-6.7.0-8169922/mboot.c32
APPEND -c ../boot-ESXi-6.7.0-8169922.cfg ks=<%= foreman_url("provision") %>
IPAPPEND 2
Para la plantilla kickstart, inserte lo siguiente:
vmaccepteula
keyboard 'US Default'
reboot
rootpw --iscrypted <%= root_pass %>
install --firstdisk --overwritevmfs --novmfsondisk
# Set the network to DHCP on the first network adapter
network --bootproto=dhcp --device=<%= @host.mac %>
%post --interpreter=busybox
# Add temporary DNS resolution so the foreman call works
echo "nameserver <%= @host.subnet.dns_primary %>" >> /etc/resolv.conf
# Inform Foreman that we are done.
wget -O /dev/null <%= foreman_url('built') %>
echo "Done with Foreman call"
Para esta plantilla, es necesario cambiar el tipo de plantilla a "Plantilla de aprovisionamiento" en la pestaña Tipo de la configuración de la plantilla.
Ahora tenemos que establecer ambas plantillas como predeterminadas, seleccionándolas en la sección Plantillas.
Luego necesitamos la imagen del sistema operativo al Foreman, pero antes tenemos que extraer el contenido de esta imagen, que se puede encontrar a través del directorio /var/lib/tftpboot/tftpboot/boot/esxi/8.0.
En lugar de crear una instancia separada de la instalación de ESXi en modo Legacy, pero hizo algunos cambios en el archivo de configuración (/usr/share/foreman/app/models/concerns/pxe_loader_support.rb.):
def all_loaders_map(precision = 'x64')
{
"None" => "",
"PXELinux BIOS" => "pxelinux.0",
"PXELinux UEFI" => "pxelinux.efi",
"PXELinux Alt BIOS" => "syslinux386/pxelinux.0", # Add this line
…
El archivo de configuración tiene el siguiente aspecto en Legacy:
TIMEOUT 10
DEFAULT default_PXELinux_ESXI
LABEL default_PXELinux_ESXI
KERNEL boot/esxi/8.0/mboot.c32
APPEND -c boot/esxi/8.0/boot2.cfg ks=http://address of the server from which we get the file with autosettings/unattended/provision
IPAPPEND 2
En cuanto al gestor de arranque, hemos utilizado uno universal que es compatible con diferentes sistemas operativos. Después de que el servidor se reinicie, comenzará la instalación.
A continuación, el sistema se dirigirá al archivo kickstart del alojamiento del servidor (dirección de ks=http://server/unattended/provision), que incluye la configuración automatizada.
Si ESXi es compatible con su hardware, la instalación se realizará sin problemas. Al final, obtendrá un SO totalmente operativo con dos usuarios con acceso root.
¿Qué hace la plantilla de aprovisionamiento?
La plantilla de aprovisionamiento hace lo siguiente:
- Permite gestionar la configuración de red.
- Instala el sistema en el disco.
- Ignora los errores.
- Especifica el nombre del servidor y la contraseña del usuario con acceso root.
- Permite añadir un usuario más con privilegios de root.
- Configura el cortafuegos.
Agilizando el proceso: Instalación de ESXi en modo UEFI
El sistema operativo VMware ESXi puede instalarse tanto en modo Legacy como UEFI. Por lo tanto, si el nombre de la imagen del sistema operativo contiene ESXi, la configuración se copiará y LiveCD comenzará a ejecutarse.
Cuando LiveCD arranque, verá el script especificando los detalles del disco en el que el SO necesita ser instalado. Ahí, necesita especificar el disco deseado (preferiblemente no tan grande, pero con un mínimo de 20 GB de espacio), y comprobar si tiene parámetros llamados "volumen lógico" o "grupo de volumen" - si están presentes asegúrese de borrarlos del disco.
Después de limpiar el disco, el sistema creará una partición para que el gestor de arranque UEFI comience a funcionar. La creación de la partición tiene este aspecto:
parted -s /dev/${INST_DRIVE} mklabel gpt mkpart fat32 1MiB 1GiB set 1 esp on
EFI_PART=$(lsblk -l | grep "${INST_DRIVE}" | grep part | awk '{print $1}')
mkdir -p /mnt/{iso,efipart,wim}
wget ${medium_uri}/${branch}/esxi${os_version}pe.iso
mount -o loop esxi${os_version}pe.iso /mnt/iso
mkfs.fat -F32 /dev/$EFI_PART
mount /dev/$EFI_PART /mnt/efipart
mkdir -p /mnt/efipart/EFI/redhat/
mkdir -p /mnt/efipart/kickstart
rsync -r /mnt/iso/ /mnt/efipart/
cp /mnt/efipart/EFI/BOOT/BOOTX64.EFI /mnt/efipart/EFI/redhat/grubx64.efi
cp /mnt/efipart/EFI/BOOT/CRYPTO64.EFI /mnt/efipart/EFI/redhat/crypto64.efi
cp /mnt/efipart/EFI/BOOT/SAFEBOOT.EFI /mnt/efipart/EFI/redhat/safeboot.efi
cp /mnt/efipart/boot.cfg /mnt/efipart/EFI/redhat/boot.cfg
curl -s "<http://$>{foreman_fqdn}/unattended/provision?token=${foreman_token}" >> /mnt/efipart/kickstart/ks.cfg
tar -czf /mnt/efipart/kickstart.gz --directory=/mnt/efipart kickstart
###sed -i "s#kernelopt=runweasel cdromBoot#kernelopt=ks=file://kickstart/ks.cfg#g" /mnt/efipart/EFI/redhat/boot.cfg ##for 7.3
sed -i "s#^kernelopt.*#kernelopt=ks=file://kickstart/ks.cfg#g" /mnt/efipart/EFI/redhat/boot.cfg
sed -ie 's#^modules.*$#& --- /kickstart.gz#g' /mnt/efipart/EFI/redhat/boot.cfg
umount /mnt/iso
rm esxi${os_version}pe.iso
/usr/bin/env wget --no-proxy --quiet --output-document=/dev/null --no-check-certificate "<http://$>{foreman_fqdn}/unattended/built?token=${foreman_token}"
umount /mnt/efipart
sync
fi
reboot
Hace lo siguiente:
- Crea una partición de 1 GB.
- Transfiere una imagen ISO a /mnt/efipart/ y además la monta en /mnt/iso.
- Asegura el correcto funcionamiento del cargador Foreman mediante una estructura de directorios.
- Extrae el contenido de la plantilla de aprovisionamiento en Foreman y lo coloca en el archivo de configuración /mnt/efipart/kickstart/ks.cfg.
- Archiva el fichero de configuración y lo añade a los módulos ESXi en la sección UEFI.
- Añade la información del nuevo módulo al archivo de configuración "boot".
- Desmonta la partición y borra una imagen ISO.
- Envía una petición al Foreman para iniciar el proceso de instalación.
- Guía a un servidor hacia el reinicio.
Después de que el servidor se reinicie, la partición UEFI se convierte en una fuente prioritaria de recepción de datos. En esta etapa, Foreman comienza a buscar la partición (en nuestro caso es RedHat, que especificamos en la sección Familia al crear el SO).
Cuando Foreman la encuentra (en este caso, la partición RedHat), envía una señal al sistema para que inicie la instalación de ESXi. El sistema entonces comenzará a desempaquetar módulos actualizados y archivos de configuración, que guían al sistema sobre cómo debe ser instalado y configurado.
Y de nuevo, si el hardware es compatible con el hipervisor ESXi, el sistema se instalará sin errores.
Aspectos clave de la implantación ESXi-Foreman PXE
Con el despliegue ESXi-Foreman PXE, es fácil automatizar la instalación y configuración de servidores virtuales ESXi. También proporciona bases estables para gestionar y controlar todas las etapas de despliegue (incluso si se abordan de forma remota).
ESXi-Foreman permite acortar el tiempo de despliegue y reducir los posibles errores y proporciona una amplia integración con otras herramientas y sistemas para diferentes escenarios de virtualización.