El servidor PXE (Preboot Execution Environment) permite al usuario iniciar una distribución de Linux desde una red e instalarla en cientos de PC a la vez sin ninguna imagen iso de Linux. Si las computadoras de su cliente no tienen unidades de CD/DVD o USB, o si desea configurar varias computadoras al mismo tiempo en una gran empresa, puede usar el servidor PXE para ahorrar dinero y tiempo.
En este artículo, le mostraremos cómo puede configurar un servidor PXE en Ubuntu 14.04.
Configurar redes
Para comenzar, primero debe configurar su servidor PXE para usar una IP estática. Para configurar una dirección IP estática en su sistema, debe editar el archivo «/etc/network/interfaces».
1. Abra el archivo “/etc/network/interfaces”.
sudo nano /etc/network/interfaces
Agregue/edite como se describe a continuación:
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8
Guarda el archivo y cierra. Esto establecerá su dirección IP en «192.168.1.20». Reinicie el servicio de red.
sudo /etc/init.d/networking restart
Instale DHCP, TFTP y NFS:
DHCP, TFTP y NFS son componentes esenciales para configurar un servidor PXE. Primero necesita actualizar su sistema e instalar todos los paquetes necesarios.
Para esto, ejecute los siguientes comandos:
sudo apt-get update sudo apt-get install isc-dhcp-Server inetutils-inetd tftpd-hpa syslinux nfs-kernel-Server
Configurar servidor DHCP:
DHCP significa Protocolo de configuración dinámica de host y se utiliza principalmente para distribuir dinámicamente parámetros de configuración de red, como direcciones IP para interfaces y servicios. Un servidor DHCP en un entorno PXE permite a los clientes solicitar y recibir una dirección IP automáticamente para acceder a los servidores de la red.
1. Edite el archivo “/etc/default/dhcp3-server”.
sudo nano /etc/default/dhcp3-server
Agregue/edite como se describe a continuación:
Guarde (Ctrl + o) y salga (Ctrl + x) del archivo.
2. Edite el archivo “/etc/dhcp3/dhcpd.conf”:
sudo nano /etc/dhcp/dhcpd.conf
Agregue/edite como se describe a continuación:
default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.21 192.168.1.240; option subnet-mask 255.255.255.0; option routers 192.168.1.20; option broadcast-address 192.168.1.255; filename "pxelinux.0"; next-Server 192.168.1.20; }
Guarda el archivo y cierra.
3. Inicie el servicio DHCP.
sudo /etc/init.d/isc-dhcp-server start
Configurar servidor TFTP:
TFTP es un protocolo de transferencia de archivos similar a FTP. Se utiliza cuando no se requiere autenticación de usuario ni visibilidad de directorio. El servidor TFTP siempre está escuchando clientes PXE en la red. Cuando detecta cualquier cliente PXE de red que solicita servicios PXE, proporciona un paquete de red que contiene el menú de arranque.
1. Para configurar TFTP, edite el archivo “/etc/inetd.conf”.
sudo nano /etc/inetd.conf
Agregue/edite como se describe a continuación:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Guardar y salir del archivo.
2. Edite el archivo “/etc/default/tftpd-hpa”.
sudo nano /etc/default/tftpd-hpa
Agregue/edite como se describe a continuación:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="[:0.0.0.0:]:69" TFTP_OPTIONS="--secure" RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Guardar y salir del archivo.
3. Habilite el servicio de arranque para inetd
para iniciarse automáticamente después de cada reinicio del sistema e inicio tftpd
Servicio.
sudo update-inetd --enable BOOT sudo service tftpd-hpa start
4. Verifique el estado.
Mostrará el siguiente resultado:
Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:tftp *:*
Configurar archivos de arranque PXE
Ahora necesita que el archivo de arranque PXE «pxelinux.0» esté presente en el directorio raíz de TFTP. Cree una estructura de directorios para TFTP y copie todos los archivos del cargador de arranque provistos por syslinux desde “/usr/lib/syslinux/” a la ruta “/var/lib/tftpboot/” emitiendo los siguientes comandos:
sudo mkdir /var/lib/tftpboot sudo mkdir /var/lib/tftpboot/pxelinux.cfg sudo mkdir -p /var/lib/tftpboot/Ubuntu/14.04/amd64/ sudo cp /usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/ sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
Configurar el archivo de configuración de PXELINUX
El archivo de configuración de PXE define el menú de inicio que se muestra al cliente PXE cuando se inicia y se comunica con el servidor TFTP. De forma predeterminada, cuando un cliente PXE se inicia, utilizará su propia dirección MAC para especificar qué archivo de configuración leer, por lo que debemos crear ese archivo predeterminado que contenga la lista de núcleos que están disponibles para iniciar.
Edite el archivo de configuración del servidor PXE con opciones de instalación válidas.
Para editar «/var/lib/tftpboot/pxelinux.cfg/default»,
sudo nano /var/lib/tftpboot/pxelinux.cfg/default
Agregue/edite como se describe a continuación:
DEFAULT vesamenu.c32 TIMEOUT 100 PROMPT 0 MENU INCLUDE pxelinux.cfg/PXE.conf NOESCAPE 1 LABEL Try Ubuntu 14.04 Desktop MENU LABEL Try Ubuntu 14.04 Desktop kernel Ubuntu/vmlinuz append boot=casper netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash ENDTEXT LABEL Install Ubuntu 14.04 Desktop MENU LABEL Install Ubuntu 14.04 Desktop kernel Ubuntu/vmlinuz append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash ENDTEXT
Guardar y salir del archivo.
Edite el archivo “/var/lib/tftpboot/pxelinux.cfg/pxe.conf”.
sudo nano /var/lib/tftpboot/pxelinux.cfg/pxe.conf
Agregue/edite como se describe a continuación:
MENU TITLE PXE Server NOESCAPE 1 ALLOWOPTIONS 1 PROMPT 0 MENU WIDTH 80 MENU ROWS 14 MENU TABMSGROW 24 MENU MARGIN 10 MENU COLOR border 30;44 #ffffffff #00000000 std
Guardar y salir del archivo.
Agregar imágenes de arranque de escritorio de Ubuntu 14.04 al servidor PXE
Para esto, se requieren los archivos kernel e initrd de Ubuntu. Para obtener esos archivos, necesita la imagen ISO de escritorio de Ubuntu 14.04. Puede descargar la imagen ISO de Ubuntu 14.04 en la carpeta /mnt emitiendo el siguiente comando:
sudo cd /mnt sudo wget https://releases.ubuntu.com/14.04/ubuntu-14.04.3-desktop-amd64.iso
Nota: la URL de descarga puede cambiar a medida que se actualiza la imagen ISO. Mira esto sitio web para obtener el enlace de descarga más reciente si la URL anterior no funciona.
Monte el archivo ISO y copie todos los archivos en la carpeta TFTP emitiendo los siguientes comandos:
sudo mount -o loop /mnt/ubuntu-14.04.3-desktop-amd64.iso /media/ sudo cp -r /media/* /var/lib/tftpboot/Ubuntu/14.04/amd64/ sudo cp -r /media/.disk /var/lib/tftpboot/Ubuntu/14.04/amd64/ sudo cp /media/casper/initrd.lz /media/casper/vmlinuz /var/lib/tftpboot/Ubuntu/
Configurar el servidor NFS para exportar contenido ISO
Ahora debe configurar los espejos de origen de la instalación a través del protocolo NFS. También puedes usar http
y ftp
para instalación de espejos fuente. Aquí he usado NFS para exportar contenidos ISO.
Para configurar el servidor NFS, debe editar el archivo «/etc/exports».
Agregue/edite como se describe a continuación:
/var/lib/tftpboot/Ubuntu/14.04/amd64 *(ro,async,no_root_squash,no_subtree_check)
Guardar y salir del archivo. Para que los cambios surtan efecto, exporte e inicie el servicio NFS.
sudo exportfs -a sudo /etc/init.d/nfs-kernel-server start
Ahora su servidor PXE está listo.
Configurar cliente PXE de arranque de red
Un cliente PXE puede ser cualquier sistema informático con una opción de activación de arranque de red PXE. Ahora sus clientes pueden iniciar e instalar Ubuntu 14.04 Desktop habilitando las opciones «Arrancar desde la red» desde el BIOS de sus sistemas.
Ahora está listo para comenzar: inicie su máquina cliente PXE con la opción de activación de arranque de red, y ahora debería ver un submenú que se muestra para su escritorio Ubuntu 14.04 que creamos.
Conclusión
La configuración de la instalación de arranque de red mediante el servidor PXE es un método eficiente y que ahorra tiempo. Puede instalar cientos de clientes a la vez en su red local. Todo lo que necesita es un servidor PXE y clientes habilitados para PXE. Pruébelo y háganos saber si esto funciona para usted.
Referencia: Wiki del servidor PXE Servidor PXE Ubuntu
Credito de imagen: fupsol_unl_20