Instale varias distribuciones de Linux mediante el arranque de red PXE en RHEL/CentOS 8


Servidor PXE: el entorno de ejecución de prearranque es una arquitectura cliente-servidor estandarizada que indica a un sistema cliente que arranque, ejecute o instale varios sistemas operativos Linux utilizando una interfaz de red compatible con PXE en su infraestructura de red.

    • Instalación del servidor mínimo CentOS 8
    • Instalación de RHEL 8 Minimal Server
    • Configure la dirección IP estática en RHEL/CentOS 8

    En este artículo, aprenderá a instalar y configurar un servidor de arranque de red PXE en CentOS/RHEL 8 con repositorios de instalación locales reflejados proporcionados por CentOS 8 y RHEL 8 ISO Images.

    Para esta configuración de arranque de red PXE, instalaremos los siguientes paquetes en el sistema:

    • DNSMASQ: un reenviador de DNS ligero que proporciona servicios DNS y DHCP con soporte para PXE y un servidor TFTP.
    • Syslinux: un cargador de arranque de Linux que proporciona cargadores de arranque para el arranque en red.
    • Servidor TFTP: un simple protocolo de transferencia de archivos bloqueado que crea imágenes de arranque disponibles para descargar a través de una red.
    • Servidor VSFTPD: un protocolo seguro de transferencia de archivos que alojará la imagen de DVD reflejada montada localmente, que actuará como un repositorio oficial de instalación de espejo RHEL/CentOS 8 desde donde el instalador sacará los paquetes necesarios.

    Paso 1: instalar y configurar el servidor DNSMASQ

    1. Es importante recordarle que una de sus interfaces de red debe configurarse con una dirección IP estática del mismo rango de IP de red que proporciona servicios PXE.

    Una vez que haya configurado una dirección IP estática, actualice los paquetes de software de su sistema e instale el demonio DNSMASQ.

    # dnf install dnsmasq
    

    2. Una vez instalado DNSMASQ, encontrará su archivo de configuración predeterminado en el directorio /etc/dnsmasq.conf , que se explica por sí mismo pero es más difícil de configurar, debido a sus explicaciones muy comentadas.

    Primero, asegúrese de hacer una copia de seguridad de este archivo en caso de que lo necesite para revisarlo más tarde y luego, cree un nuevo archivo de configuración usando su editor favorito como se muestra.

    # mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
    # nano /etc/dnsmasq.conf
    

    3. Ahora, copie y pegue las siguientes configuraciones en el archivo /etc/dnsmasq.conf y cambie los parámetros de configuración de acuerdo con la configuración de su red.

    interface=enp0s3,lo
    #bind-interfaces
    domain=tecmint
    # DHCP range-leases
    dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
    # PXE
    dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
    # Gateway
    dhcp-option=3,192.168.1.1
    # DNS
    dhcp-option=6,92.168.1.1, 8.8.8.8
    server=8.8.4.4
    # Broadcast Address
    dhcp-option=28,10.0.0.255
    # NTP Server
    dhcp-option=42,0.0.0.0
    
    pxe-prompt="Press F8 for menu.", 60
    pxe-service=x86PC, "Install CentOS 8 from network server 192.168.1.2", pxelinux
    enable-tftp
    tftp-root=/var/lib/tftpboot
    

    Se siguen las declaraciones de configuración que necesita cambiar:

    • interfaz: una interfaz de red del servidor debe escuchar y proporcionar servicios.
    • bind-interfaces: elimine el comentario para vincular la interfaz a una tarjeta de red determinada.
    • dominio: reemplácelo con su nombre de dominio.
    • dhcp-range: cámbielo con el rango de IP de su red.
    • dhcp-boot: reemplácelo con la dirección IP de su interfaz de red.
    • dhcp-option u003d 3,192.168.1.1 - Reemplácelo con su puerta de enlace de red.
    • dhcp-option u003d 6,92.168.1.1 - Reemplácelo con la IP de su servidor DNS.
    • server u003d 8.8.4.4: agregue las direcciones IP de los reenviadores de DNS.
    • dhcp-option u003d 28,10.0.0.255 - Reemplácelo con su dirección IP de transmisión de red opcionalmente.
    • dhcp-option u003d 42,0.0.0.0 -Agregue sus servidores de tiempo de red (la dirección 0.0.0.0 es para autorreferencia).
    • pxe-prompt: manténgalo como predeterminado.
    • pxe u003d service: use x86PC para arquitecturas de 32 bits/64 bits y agregue un mensaje de descripción de menú debajo de las comillas.
    • enable-tftp: habilita el servidor TFTP integrado.
    • tftp-root: agregue la ubicación de los archivos de arranque de red/var/lib/tftpboot.

    Para conocer otras opciones avanzadas relacionadas con los archivos de configuración, no dude en leer el manual de dnsmasq.

    Paso 2: Instale los cargadores de arranque SYSLINUX

    4. Una vez realizada la configuración principal de DNSMASQ, instale el paquete del cargador de arranque Syslinx PXE con el siguiente comando.

    # dnf install syslinux
    

    5. Los cargadores de arranque Syslinx PXE están instalados en /usr/share/syslinux , puede confirmarlo ejecutando el comando ls como se muestra.

    # ls /usr/share/syslinux
    

    Paso 3: Instale TFTP-Server y cópielo con los cargadores de arranque SYSLINUX

    6. Ahora, instale TFTP-Server y copie todos los cargadores de arranque de Syslinux desde /usr/share/syslinux/ a /var/lib/tftpboot como se muestra.

    # dnf install tftp-server
    # cp -r /usr/share/syslinux/* /var/lib/tftpboot
    

    Paso 4: Configurar el archivo de configuración del servidor PXE

    7. De forma predeterminada, el servidor PXE lee su configuración de un conjunto de archivos específicos que se encuentran en pxelinux.cfg , que deben encontrarse en el directorio descrito en la configuración tftp-root del archivo de configuración DNSMASQ anterior. .

    Primero, cree un directorio pxelinux.cfg y cree un archivo predeterminado emitiendo los siguientes comandos.

    # mkdir /var/lib/tftpboot/pxelinux.cfg
    # touch /var/lib/tftpboot/pxelinux.cfg/default
    

    8. Ahora abra y edite el archivo de configuración PXE default con las opciones de instalación de distribución de Linux correctas. Además, asegúrese de recordar que las rutas establecidas en este archivo deben ser relativas al directorio /var/lib/tftpboot .

    # nano /var/lib/tftpboot/pxelinux.cfg/default
    

    El siguiente es un archivo de configuración de ejemplo que puede usar, pero asegúrese de cambiar las imágenes de instalación, los protocolos y las direcciones IP para reflejar los repositorios y ubicaciones de origen de la instalación de red en consecuencia.

    default menu.c32
    prompt 0
    timeout 300
    ONTIMEOUT local
    
    menu title ########## PXE Boot Menu ##########
    
    label 1
    menu label ^1) Install CentOS 8 x64 with Local Repo
    kernel centos8/vmlinuz
    append initrd=centos7/initrd.img method=ftp://192.168.1.2/pub devfs=nomount
    
    label 2
    menu label ^2) Install CentOS 8 x64 with http://mirror.centos.org Repo
    kernel centos8/vmlinuz
    append initrd=centos8/initrd.img method=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ devfs=nomount ip=dhcp
    
    label 3
    menu label ^3) Install CentOS 8 x64 with Local Repo using VNC
    kernel centos8/vmlinuz
    append  initrd=centos8/initrd.img method=ftp://192.168.1.2/pub devfs=nomount inst.vnc inst.vncpassword=password
    
    label 4
    menu label ^4) Boot from local drive
    

    En la configuración anterior, puede observar que las imágenes de arranque de CentOS 8 (kernel e initrd) residen en un directorio centos7 relativo a /var/lib/tftpboot (es decir, /var/lib/tftpboot/centos7 ) y se puede acceder a los repositorios del instalador utilizando el protocolo FTP en 192.168.1.2/pub (dirección IP del servidor PXE).

    Además, la etiqueta de menú 2 describe los repositorios espejo de las fuentes de instalación oficiales de CentOS 8 (la conexión a Internet es obligatoria en el sistema cliente) y la etiqueta de menú 3 describe que la instalación del cliente debe realizarse a través de un VNC remoto (aquí reemplace la contraseña de VNC con una contraseña segura).

    Importante: como puede ver en la configuración anterior, hemos utilizado la imagen de CentOS 8 con fines de demostración, pero también puede utilizar imágenes de RHEL 8.

    Paso 5: agregue imágenes de arranque de CentOS 8 al servidor PXE

    9. Para agregar imágenes de CentOS 8 al servidor PXE, necesita el comando wget y montarlo.

    # wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
    # mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt
    

    10. Una vez que haya descargado CentOS 8, debe crear un directorio centos7 y copiar el kernel de arranque y las imágenes initrd.

    # mkdir /var/lib/tftpboot/centos8
    # cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos8
    # cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos8
    

    La razón detrás de este enfoque es que luego puede tener directorios separados para cada nueva distribución de Linux en /var/lib/tftpboot sin estropear toda la estructura de directorios.

    Paso 6: Cree la fuente de instalación de réplica local de CentOS 8

    11. Hay una variedad de protocolos (HTTP, HTTPS o NFS) que están disponibles para configurar los espejos de origen de instalación local de CentOS 8, pero he elegido el protocolo FTP porque es fácil de configurar usando el servidor vsftpd.

    Instalemos el servidor Vsftpd y copiemos todo el contenido del DVD de CentOS 8 en el directorio FTP /var/ftp/pub como se muestra.

    # dnf install vsftpd
    # cp -r /mnt/*  /var/ftp/pub/ 
    # chmod -R 755 /var/ftp/pub
    

    12. Ahora que se completó toda la configuración del servidor PXE, puede iniciar, habilitar y verificar el estado de los servidores DNSMASQ y VSFTPD.

    # systemctl start dnsmasq
    # systemctl status dnsmasq
    # systemctl start vsftpd
    # systemctl status vsftpd
    # systemctl enable dnsmasq
    # systemctl enable vsftpd
    

    13. A continuación, debe abrir puertos en su firewall para que los sistemas cliente accedan y arranquen desde el servidor PXE.

    # firewall-cmd --add-service=ftp --permanent  	## Port 21
    # firewall-cmd --add-service=dns --permanent  	## Port 53
    # firewall-cmd --add-service=dhcp --permanent  	## Port 67
    # firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
    # firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
    # firewall-cmd --reload  ## Apply rules
    

    14. Para verificar la ubicación de red de la fuente de instalación FTP, abra su navegador y escriba la dirección IP del servidor PXE con el protocolo FTP seguido de la ubicación de red /pub .

    ftp://192.168.1.2/pub
    

    Paso 7: configurar los clientes para que arranquen desde la red

    15. Ahora configure los sistemas cliente para que arranquen e instalen CentOS 8 en sus sistemas configurando Network Boot como dispositivo de arranque principal desde el menú BIOS.

    Después de que el sistema se inicie, obtendrá un mensaje PXE, donde debe presionar la tecla F8 para ingresar a la presentación y luego presionar la tecla Enter para avanzar al menú PXE.

    Eso es todo para configurar un servidor PXE mínimo en CentOS/RHEL 8.