Configurar servidor PXE en Ubuntu 14.04

Configurar servidor PXE en Ubuntu 14.04

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.

pxe

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

Experto Geek - Tu Guía en Tendencias Tecnológicas