WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo configurar un servidor de arranque PXE en Linux

Editado 1 hace un día por ExtremeHow Equipo Editorial

Arranque de redPXEConfiguración del servidorImplementaciónConfiguraciónAdministrador del sistemaTFTPLínea de comandosInstalaciónCreación de imágenes

Cómo configurar un servidor de arranque PXE en Linux

Traducción actualizada 1 hace un día

En esta guía, aprenderemos cómo configurar un servidor de arranque Preboot Execution Environment (PXE) en una máquina Linux. Este proceso permite a una computadora arrancar usando una imagen proporcionada a través de la red en lugar de almacenamiento local. PXE es útil para los administradores de sistemas que necesitan desplegar sistemas operativos o software en múltiples máquinas a través de una red.

1. Introducción al arranque PXE

PXE, que significa Preboot Execution Environment, permite que una computadora inicie a través de una interfaz de red independientemente del dispositivo de almacenamiento de datos disponible o del sistema operativo instalado. Es de gran ayuda en la automatización del despliegue de servidores y puede ser utilizado para la instalación en red del sistema operativo Linux y otros sistemas operativos.

Esencialmente, PXE consta de dos componentes principales:

Con un servidor de arranque PXE, puedes instalar sistemas operativos de manera rápida y eficiente en múltiples máquinas desde una ubicación centralizada.

2. Requisitos

Para configurar un servidor de arranque PXE en Linux, necesitarás los siguientes componentes:

3. Configuración de un servidor DHCP

El servidor DHCP asigna una dirección IP a los clientes PXE e informa sobre el siguiente servidor a contactar para el proceso de arranque.

Instala el servidor DHCP usando tu gestor de paquetes. Si estás utilizando una distribución como Ubuntu o Debian, el comando será el siguiente:

sudo apt-get install isc-dhcp-server

Después de la instalación, comienza editando el archivo de configuración del servidor DHCP, que generalmente se encuentra en /etc/dhcp/dhcpd.conf. Necesitarás configurarlo para especificar la dirección IP del cliente PXE, máscara de subred y detalles del archivo de arranque.

A continuación se muestra un fragmento básico de configuración:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    option routers 192.168.1.1;
    filename "pxelinux.0";
    next-server 192.168.1.5; # Dirección IP de tu Servidor PXE
    option broadcast-address 192.168.1.255;
}

Una vez configurado, reinicia el servicio DHCP para aplicar los cambios:

sudo systemctl restart isc-dhcp-server

Asegúrate de que el servidor DHCP se inicie al arrancar:

sudo systemctl enable isc-dhcp-server

4. Instalación del servidor TFTP

El servidor TFTP (Protocolo de Transferencia de Archivos Trivial) entrega el cargador de arranque al cliente PXE. Instálalo usando lo siguiente:

sudo apt-get install tftpd-hpa

Edita el archivo de configuración TFTP en /etc/default/tftpd-hpa para asegurarte de que esté configurado correctamente para servir tus archivos de arranque:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Asegúrate de que el directorio especificado (por defecto /var/lib/tftpboot) esté creado y pueda ser accedido. Reinicia y habilita el servicio TFTP:

sudo systemctl restart tftpd-hpa
sudo systemctl enable tftpd-hpa

5. Configuración del cargador de arranque

SYSLINUX proporciona un cargador de arranque PXE llamado pxelinux. Primero, instala syslinux si aún no está instalado:

sudo apt-get install syslinux-common

Copia los archivos requeridos al directorio tftpboot:

sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

Para proporcionar un menú de arranque, debes crear un archivo de configuración en /var/lib/tftpboot/pxelinux.cfg. Crea un archivo llamado default:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 50
ONTIMEOUT local
LABEL linux
    MENU LABEL ^Install Linux
    KERNEL vmlinuz
    APPEND initrd=initrd.img

Esta configuración proporciona un menú de arranque para seleccionar una imagen de arranque por red, como Linux.

6. Preparar el kernel de arranque y el initrd

Copia los archivos del kernel y initrd desde tus medios de instalación de Linux al directorio /var/lib/tftpboot:

sudo cp /path-to-linux-iso/vmlinuz /var/lib/tftpboot/
sudo cp /path-to-linux-iso/initrd.img /var/lib/tftpboot/

Asegúrate de que los permisos sean correctos:

sudo chmod 644 /var/lib/tftpboot/*

7. Configuración de NFS o HTTP

Debes alojar los archivos de instalación reales usando NFS o HTTP. Cada método es apropiado según los requisitos de tu red.

Para NFS:

Instala el servidor NFS:

sudo apt-get install nfs-kernel-server

Edita el archivo de exportación /etc/exports para incluir el directorio que contiene tus archivos de instalación:

/path-to-your-linux-files 192.168.1.0/24(ro,sync,no_root_squash)

Reinicia los servicios NFS:

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

Para HTTP:

Instala un servidor HTTP como Apache:

sudo apt-get install apache2

Vincula tus medios de instalación a un directorio accesible por web:

sudo ln -s /path-to-your-linux-files /var/www/html/linux

Reinicia Apache:

sudo systemctl restart apache2

Asegúrate de que tu firewall permita los puertos NFS/HTTP:

sudo ufw allow 2049
sudo ufw allow 80

8. Arrancar tus clientes PXE

Finalmente, configura tu cliente para iniciar desde la red. Usualmente se configura en la BIOS o configuración de firmware UEFI. Una vez que el cliente PXE inicie, se conectará a tu red y obtendrá una IP del servidor DHCP. Luego carga el archivo del cargador de arranque desde tu servidor TFTP y comienza el proceso de instalación usando los archivos proporcionados por NFS/HTTP.

Siguiendo los pasos anteriores, habrás configurado con éxito un servidor de arranque PXE que tus máquinas de red pueden usar para cargar sistemas operativos a través de la red.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios