Búsqueda de sitios web

Configuración de un 'servidor de arranque de red PXE' para múltiples instalaciones de distribución de Linux en RHEL/CentOS 7


Servidor PXE: entorno de ejecución previo al inicio: indica a una computadora cliente que inicie, ejecute o instale un sistema operativo directamente desde una interfaz de red, eliminando la necesidad de grabar un CD/DVD o usar 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.

Requisitos

  1. Procedimiento de instalación mínima de CentOS 7
  2. Procedimiento de instalación mínima de RHEL 7
  3. Configurar 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 configurar 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 locales reflejados, fuentes proporcionadas. mediante la imagen ISO del DVD de CentOS 7, con la ayuda del servidor DNSMASQ.

Que proporciona servicios DNS y DHCP, paquete Syslinux que proporciona gestores 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 Trivial de Transferencia de Archivos (TFTP) y el servidor VSFTPD que alojará la imagen de DVD duplicada 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, debe configurarse con una dirección IP estática del mismo rango de IP que pertenece a el segmento de red que proporcionará servicios PXE.

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 pretende ser bastante difícil de editar, debido a sus explicaciones altamente 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 la configuración de su 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: descomente para vincular 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 declaración IP con la dirección IP de su interfaz.
  6. dhcp-option=3,192.168.1.1: reemplace la dirección IP con la puerta de enlace de su segmento de red.
  7. dhcp-option=6,92.168.1.1: reemplace la dirección IP con la IP de su servidor DNS; se pueden definir varias IP DNS.
  8. server=8.8.4.4: coloque las direcciones IP de sus reenviadores DNS.
  9. dhcp-option=28,10.0.0.255: reemplace la dirección IP con la dirección de transmisión de red, opcionalmente.
  10. dhcp-option=42,0.0.0.0: coloque los servidores de hora 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=service: use x86PC para arquitecturas de 32 bits/64 bits e ingrese una 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: utilice /var/lib/tftpboot: la ubicación de todos los archivos de arranque en 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. Después de haber editado y guardado el archivo de configuración principal DNSMASQ, continúe e instale el paquete del gestor de arranque Syslinx PXE emitiendo el siguiente comando.

yum install syslinux

5. Los archivos del cargador 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 complételo con cargadores de arranque SYSLINUX

6. Ahora, pasemos al siguiente paso e instalemos TFTP-Server y, luego, copiemos todos los archivos de arranque proporcionados por el paquete Syslinux desde la ubicación indicada anteriormente a / var/lib/tftpboot 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, MAC). archivos – siguiente, archivo predeterminado – último) alojados en una carpeta llamada pxelinux.cfg, que debe estar ubicada en el directorio especificado en tftp-root declaración 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 válidas de instalación de distribuciones de Linux. 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 utilizar, 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 de instalación de red y las rutas 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 en relación con /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 realice la instalación en un cliente sin cabeza. y el menú etiqueta 2 especifica como
La instalación genera 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 seguir instrucciones y configuraciones completas. se basan únicamente en CentOS 7, así que tenga cuidado al elegir la distribución.

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

9. Para este paso se requieren el kernel CentOS y los archivos initrd. Para obtener esos archivos, necesita la imagen ISO del DVD CentOS 7. 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 mínima de CD es el hecho de que más adelante este contenido del 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 de 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 montada del DVD a la estructura de carpetas de 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 utilizar 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 de directorios.

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

11. Aunque puedes configurar Installation Source Mirrors a través de una variedad de protocolos como HTTP, HTTPS o NFS, para esta guía he elegido FTP protocolo porque es muy confiable y fácil de configurar con la ayuda del servidor vsftpd.

Instala aún más el demonio vsftpd, copia todo el contenido montado en el DVD a la ruta predeterminada del servidor vsftpd (/var/ftp/pub). Esto puede llevar un tiempo dependiendo de los recursos del sistema y del anexo. 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 demonios 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 se inicia 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 FTP

13. Para obtener una lista de todos los puertos que deben estar abiertos en su Firewall para que las máquinas cliente accedan y arranquen desde el servidor PXE, ejecute el comando netstat y agregue CentOS. 7 reglas de firewall de acuerdo con los puertos de escucha dnsmasq y 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 del origen de instalación FTP, abra un navegador local (lynx debería hacerlo) o en una computadora diferente y escriba la dirección IP de su servidor PXE con
Se presenta el protocolo FTP seguido de la ubicación de red /pub en la URL y el resultado debería ser como se presenta en la siguiente captura de pantalla.

ftp://192.168.1.20/pub

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

tailf /var/log/messages

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

umount /mnt

Paso 9: configurar clientes para que arranquen desde la red

17. Ahora sus clientes pueden iniciar e instalar CentOS 7 en sus máquinas configurando Network Boot como dispositivo de inicio principal desde el BIOS de su sistema o presionando una tecla específica durante . Operaciones 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 Entrar para avanzar al menú PXE.

18. Una vez que haya llegado al menú PXE, elija su 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 local. dispositivo de arranque multimedia.

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
En las capturas de pantalla se puede ver un ejemplo de instalación remota de un 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 temas relacionados con la configuración de este 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.