Configuración de un servidor de arranque de red PXE para varias instalaciones de distribución de Linux en RHEL/CentOS 7


Servidor PXE - Entorno de ejecución de prearranque - indica a una computadora cliente que arranque, ejecute o instale un sistema operativo directamente desde una interfaz de red, eliminando la necesidad de grabar un CD/DVD o utilizar un medio físico, o puede facilitar el trabajo de instalar distribuciones de Linux en su infraestructura de red en varias máquinas al mismo tiempo.

  1. Procedimiento mínimo de instalación de CentOS 7
  2. Procedimiento de instalación mínimo de RHEL 7
  3. Configure la dirección IP estática en RHEL/CentOS 7
  4. Eliminar servicios no deseados en RHEL/CentOS 7
  5. Instale el servidor NTP para establecer la hora correcta del sistema en RHEL/CentOS 7

Este artículo explicará cómo puede instalar y configurar un servidor PXE en RHEL / CentOS 7 x64 bits con repositorios de instalación local reflejados, fuentes proporcionadas por la imagen ISO del DVD de CentOS 7, con la ayuda del servidor DNSMASQ .

Que proporciona servicios DNS y DHCP , paquete Syslinux que proporciona cargadores de arranque para el arranque en red, TFTP-Server , que hace imágenes de arranque disponibles para descargar a través de la red utilizando el Protocolo de transferencia de archivos trivial (TFTP) y el servidor VSFTPD que alojará la imagen de DVD reflejada montada localmente, que actuará como un RHEL oficial/Repositorio de instalación espejo de CentOS 7 desde donde el instalador extraerá los paquetes necesarios.

Paso 1: instalar y configurar el servidor DNSMASQ

1. No es necesario recordarle que es absolutamente exigente que una de las interfaces de su tarjeta de red, en caso de que su servidor posea más NIC, deba configurarse con una dirección IP estática del mismo rango de IP que pertenece al segmento de red que proporcionará PXE. servicios.

Entonces, después de haber configurado su dirección IP estática, actualizado su sistema y realizado otras configuraciones iniciales, use el siguiente comando para instalar el demonio DNSMASQ .

# yum install dnsmasq

2. El archivo de configuración principal predeterminado de DNSMASQ ubicado en el directorio /etc se explica por sí mismo pero tiene la intención de ser bastante difícil de editar, debido a sus explicaciones muy comentadas.

Primero asegúrese de hacer una copia de seguridad de este archivo en caso de que necesite revisarlo más tarde y, luego, cree un nuevo archivo de configuración en blanco usando su editor de texto favorito emitiendo los siguientes comandos.

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

3. Ahora, copie y pegue las siguientes configuraciones en el archivo dnsmasq.conf y asegúrese de cambiar las declaraciones explicadas a continuación para que coincidan con su configuración de red en consecuencia.

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
# DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
# 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 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Las declaraciones que necesita cambiar son las siguientes:

  1. interfaz : interfaces que el servidor debe escuchar y proporcionar servicios.
  2. bind-interfaces : elimine el comentario para enlazar solo en esta interfaz.
  3. dominio : reemplácelo con su nombre de dominio.
  4. dhcp-range : reemplácelo con el rango de IP definido por su máscara de red en este segmento.
  5. dhcp-boot : reemplace la instrucción IP con la dirección IP de su interfaz.
  6. dhcp-option u003d 3 , 192.168.1.1 - Reemplace la dirección IP con su puerta de enlace de segmento de red.
  7. dhcp-option u003d 6 , 92.168.1.1 - Reemplace la dirección IP con la IP de su servidor DNS; se pueden definir varias direcciones IP de DNS.
  8. server u003d 8.8.4.4 : coloque las direcciones IP de los reenviadores de DNS.
  9. dhcp-option u003d 28 , 10.0.0.255: reemplace la dirección IP con la dirección de transmisión de red, opcionalmente.
  10. dhcp-option u003d 42 , 0.0.0.0: coloque los servidores de tiempo de su red, opcionalmente (la dirección 0.0.0.0 es para autorreferencia).
  11. pxe-prompt : déjelo como predeterminado: significa presionar la tecla F8 para ingresar al menú 60 con un tiempo de espera de segundos ..
  12. pxe u003d servicio : use x86PC para arquitecturas de 32 bits/64 bits e ingrese un mensaje de descripción del menú debajo de las comillas. Otros tipos de valores pueden ser: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI y X86-64_EFI.
  13. enable-tftp : habilita el servidor TFTP integrado.
  14. tftp-root : use/var/lib/tftpboot: la ubicación de todos los archivos de inicio de red.

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

Paso 2: Instale los cargadores de arranque SYSLINUX

4. Una vez que haya editado y guardado el archivo de configuración principal DNSMASQ , continúe e instale el paquete de cargador de arranque Syslinx PXE mediante la ejecución del siguiente comando.

# yum install syslinux

5. Los archivos de los cargadores de arranque PXE residen en la ruta absoluta del sistema /usr/share/syslinux , por lo que puede verificarlo enumerando el contenido de esta ruta. Este paso es opcional, pero es posible que deba conocer esta ruta porque en el siguiente paso copiaremos todo su contenido en la ruta del Servidor TFTP .

# ls /usr/share/syslinux

Paso 3: Instale TFTP-Server y rellénelo con los cargadores de arranque SYSLINUX

6. Ahora, pasemos al siguiente paso e instalemos TFTP-Server y, luego, copiemos todos los archivos de bootloders proporcionados por el paquete Syslinux desde la ubicación indicada arriba a /var/lib/tftpboot ruta emitiendo los siguientes comandos.

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

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

7. Normalmente, el servidor PXE lee su configuración de un grupo de archivos específicos (archivos GUID - primero, archivos MAC - después, Archivo predeterminado (último) alojado en una carpeta llamada pxelinux.cfg , que debe estar ubicada en el directorio especificado en la declaración tftp-root del archivo de configuración principal de DNSMASQ .

Cree el directorio requerido pxelinux.cfg y rellénelo con un archivo predeterminado emitiendo los siguientes comandos.

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

8. Ahora es el momento de editar el archivo de configuración del Servidor PXE con opciones de instalación de distribuciones de Linux válidas. También tenga en cuenta que todas las rutas utilizadas en este archivo deben ser relativas al directorio /var/lib/tftpboot .

A continuación, puede ver un archivo de configuración de ejemplo que puede usar, pero modifique las imágenes de instalación (archivos kernel e initrd), los protocolos (FTP, HTTP, HTTPS, NFS) y las IP para reflejar los repositorios de origen y las rutas de instalación de su red en consecuencia.

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

Agregue el siguiente extracto completo al archivo.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount

label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append  initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

Como puede ver, las imágenes de arranque de CentOS 7 (kernel e initrd) residen en un directorio llamado centos7 relativo a /var/lib/tftpboot (en una ruta absoluta del sistema esto significaría /var/lib/tftpboot/centos7 ) y se puede acceder a los repositorios del instalador mediante el protocolo FTP en la ubicación de red 192.168.1.20/pub - en este caso, los repositorios se alojan localmente porque la dirección IP es la misma que la dirección del servidor PXE).

Además, el menú etiqueta 3 especifica que la instalación del cliente debe realizarse desde una ubicación remota a través de VNC (aquí reemplace la contraseña de VNC con una contraseña segura) en caso de que lo instale en un cliente sin cabeza. y el menú etiqueta 2 especifica como
La instalación obtiene un espejo de Internet oficial de CentOS 7 (este caso requiere una conexión a Internet disponible en el cliente a través de DHCP y NAT).

Importante: Como puede ver en la configuración anterior, hemos utilizado CentOS 7 con fines de demostración, pero también puede definir imágenes de RHEL 7, y las instrucciones y configuraciones completas se basan solo en CentOS 7, así que tenga cuidado al elegir la distribución.

Paso 5: Agregar imágenes de arranque de CentOS 7 al servidor PXE

9. Para este paso, se requieren el kernel de CentOS y los archivos initrd. Para obtener esos archivos, necesita la imagen CentOS 7 DVD ISO . Entonces, continúe y descargue CentOS DVD Image, colóquelo en su unidad de DVD y monte la imagen en la ruta del sistema /mnt emitiendo el siguiente comando.

La razón para usar el DVD y no una imagen de CD mínima es el hecho de que más adelante este contenido de DVD se usaría para crear el
repositorios de instaladores locales para fuentes FTP .

# mount -o loop /dev/cdrom  /mnt
# ls /mnt

Si su máquina no tiene unidad de DVD, también puede descargar CentOS 7 DVD ISO localmente usando las utilidades wget o curl desde un espejo CentOS y montarlo.

# wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
# mount -o loop /path/to/centos-dvd.iso  /mnt

10. Una vez que el contenido del DVD esté disponible, cree el directorio centos7 y copie el kernel de arranque de CentOS 7 y las imágenes initrd desde la ubicación del DVD montado en la estructura de carpetas centos7.

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

La razón para usar este enfoque es que, más adelante, puede crear nuevos directorios separados en la ruta /var/lib/tftpboot y agregar otras distribuciones de Linux al menú PXE sin estropear toda la estructura del directorio.

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

11. Aunque puede configurar espejos de origen de instalación a través de una variedad de protocolos como HTTP, HTTPS o NFS, para esta guía, he elegido el protocolo FTP porque es muy confiable y fácil de configurar con la ayuda del servidor vsftpd .

Instale aún más el demonio vsftpd, copie todo el contenido montado en DVD a la ruta predeterminada del servidor vsftpd (/var/ftp/pub ); esto puede llevar un tiempo dependiendo de los recursos del sistema y anexar permisos legibles para esta ruta emitiendo los siguientes comandos.

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

Paso 7: iniciar y habilitar daemons en todo el sistema

12. Ahora que la configuración del servidor PXE finalmente ha finalizado, inicie los servidores DNSMASQ y VSFTPD , verifique su estado y habilítelo en todo el sistema para que se inicie automáticamente después de cada reinicio del sistema. ejecutando los siguientes comandos.

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

Paso 8: Abra el firewall y pruebe la fuente de instalación de FTP

13. Para obtener una lista de todos los puertos que deben estar abiertos en su Firewall para que las máquinas cliente lleguen y arranquen desde el servidor PXE, ejecute el comando netstat y agregue las reglas de CentOS 7 Firewalld de acuerdo con dnsmasq y puertos de escucha vsftpd.

# netstat -tulpn
# 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 probar la ruta de red de la fuente de instalación FTP, abra un navegador localmente (lynx debería hacerlo) o en una computadora diferente y escriba la dirección IP de su servidor PXE con
Protocolo FTP seguido de la ubicación de red /pub en la URL archivada y el resultado debe ser como se muestra en la siguiente captura de pantalla.

ftp://192.168.1.20/pub

15. Para depurar el servidor PXE en busca de posibles errores de configuración u otra información y diagnósticos en el modo en vivo, ejecute el siguiente comando.

# tailf /var/log/messages

16. Finalmente, el último paso requerido que debe hacer es desmontar CentOS 7 DVD y quitar el medio físico.

# umount /mnt

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

17. Ahora sus clientes pueden arrancar e instalar CentOS 7 en sus máquinas configurando Network Boot como dispositivo de arranque principal desde el BIOS de su sistema o presionando una tecla específica durante las operaciones de BIOS POST . como se especifica en el manual de la placa base.

Para elegir el arranque en red. Después de que aparezca el primer mensaje PXE, presione la tecla F8 para ingresar a la presentación y luego presione la tecla Enter para avanzar al menú PXE.

18. Una vez que haya llegado al menú PXE, elija el tipo de instalación de CentOS 7, presione la tecla Enter y continúe con el procedimiento de instalación de la misma manera que lo haría desde un dispositivo de arranque de medios locales.

Tenga en cuenta que el uso de la variante 2 de este menú requiere una conexión a Internet activa en el cliente de destino. Además, a continuación
capturas de pantalla puede ver un ejemplo de una instalación remota de cliente a través de VNC.

Eso es todo para configurar un servidor PXE mínimo en CentOS 7 . En mi próximo artículo de esta serie, discutiré otros problemas relacionados con esta configuración de servidor PXE, como cómo configurar instalaciones automatizadas de CentOS 7 usando archivos Kickstart y agregando otras distribuciones de Linux. al menú PXE - Ubuntu Server y Debian 7 .