Herramientas de usuario

Herramientas del sitio


unattended_installations:linux_pxe

¿Qué es PXE?

Preboot eXecution Environment (PXE) (Entorno de ejecución de prearranque), es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados. (Según la Wikipedia)

Vamos a ver cómo instalar y configurar un servidor PXE en un sistema operativo Debian.

Iniciar sesión como root en nuestro servidor Debian.

1.- Instalar las herramientas requeridas (DHCP, TFTP, Syslinux, NFS):

  apt-get install isc-dhcp-server tftpd-hpa syslinux nfs-kernel-server

La instalación del paquete tftpd-hpa nos preguntará qué directorio utilizaremos como directorio raíz, lo dejaremos tal cuál está (/srv/tftp).

DHCP es un protocolo encargado de proporcionar configuraciones de red a los equipos de la misma, dotando de acceso a la red a los equipos cliente que lo soliciten; TFTP es un protocolo con una funcionalidad semejante a la de FTP sólo que mucho más sencillo, de ahí su nombre (Trivial File Transfer Protocol) , se encargará de descargar los ficheros requeridos por PXE; Syslinux nos proporciona los cargadores de arranque que se servirán cuando se solicite, mientras que NFS enviará los ficheros del sistema operativo al cliente.

2.- Configurar el servicio DHCP:

Para configurar el servicio DHCP hay que añadir lo siguiente al final del fichero /etc/dhcp/dhcpd.conf:

  subnet 192.168.x.x netmask 255.255.255.0{
  range 192.168.x.x 192.168.x.x;
  option broadcast-address 192.168.x.x;
  filename "pxelinux.0";
  }

La sentencia filename indicará a los clientes cuál es el fichero ejecutable que deberá ser cargado por el protocolo PXE. En la imagen siguiente puede verse cómo quedaría la configuración en el propio fichero, puede verse una sentencia a mayores next-server, esta sólo es necesario añadirla en caso de que el servicio TFTP no se encuentre en el mismo servidor que el servicio DHCP, siendo así habría que poner mediante la cláusula next-server la dirección del servidor TFTP

Para terminar con la configuración del servicio DHCP hay que indicarle cuál será la interfaz encargada de escuchar las peticiones de los clientes, para ello editamos el fichero /etc/default/isc-dhcp-server dejándolo así (en caso de que la interfaz sea eth0):

  INTERFACES="eth0"

Reiniciamos el servicio con:

  service isc-dhcp-server restart

3.- Configurar TFTP:

Lo primero es crear el directorio pxelinux.cfg dentro de /srv/tftp para ello:

  mkdir /srv/tftp/pxelinux.cfg

Después tenemos que crear el fichero default dentro de la carpeta creada en el paso anterior, el fichero default digamos que será el encargado de crear el menú de arranque que se mostrará una vez cargado PXE.

  touch /srv/tftp/pxelinux.cfg/default

Más adelante rellenaremos el fichero default, ahora vamos a obtener los cargadores de arranque que se entregarán por PXE a los clientes. Estos cargadores de arranque nos los proporciona syslinux y sólo tenemos que copiarlos de su carpeta a la raíz del servidor TFTP:

  cp /usr/lib/syslinux/vesamenu.c32 /srv/tftp
  cp /usr/lib/syslinux/menu.c32 /srv/tftp
  cp /usr/lib/syslinux/chain.c32 /srv/tftp
  cp /usr/lib/syslinux/mboot.c32 /srv/tftp
  cp /usr/lib/syslinux/pxelinux.0 /srv/tftp

4.- Ejemplo de una configuracion:

Dentro de /srv/tftp creamos un directorio llamado “test” para meter ahí todo lo de este sistema operativo que se valla a configurar

  mkdir /srv/tftp/test
  cd /srv/tftp/test

Montar (.iso) la imagen en una carpeta del equipo y copiamos todos los ficheros dentro de la carpeta:

  mkdir /mnt/test
  mount -o loop /srv/tftp/test/testt.iso /mnt/test
  cp -R /mnt/test/* /srv/tftp/test

Ahora podemos desmontar la imagen y eliminarla para reducir el tamaño de espacio ocupado:

  umount /mnt/test
  rm /srv/tftp/test/testt.iso

Y para finalizar le damos permisos de escritura, lectura y ejecución para todos a la carpeta “test”:

  chmod -R 777 /srv/tftp/test

5.- Configurar el fichero default de PXE:

Ahora que tenemos cada cosa en su sitio podemos proceder con la configuración del fichero default que deberá contener lo siguiente:

  default vesamenu.c32
  prompt 0
  timeout 300
  ONTIMEOUT test
  menu rows        5
  menu vshift        6
  menu color border    0 #ffffffff #ee000000 std
  menu color title    0 #ffffffff #ee000000 std
  menu color sel        0 #ffff0000 #85000000 std
  menu color unsel    0 #ffffffff #ee000000 std
  menu color pwdheader    0 #ff000000 #99ffffff rev
  menu color pwdborder    0 #ff000000 #99ffffff rev
  menu color pwdentry    0 #ff000000 #99ffffff rev
  menu color hotkey    0 #ff00ff00 #ee000000 std
  menu color hotsel    0 #ffffffff #85000000 std
  menu resolution        800 600
  LABEL test
      MENU LABEL ^1) Arrancar test
      KERNEL test/xxx/vmlinuz   // hay que buscar la carpeta en que esta vmlinuz
      APPEND boot=xxx netboot=nfs nfsroot=192.168.x.x:/srv/tftp/test initrd=test/xxx/initrd.lz splash –

6.- Por último sólo nos queda configurar NFS:

La configuración del sistema NFS es muy sencilla, sólo debemos añadir la siguiente linea al final del fichero /etc/exports:

  /srv/tftp/test

Esto hará que dicha carpeta sea compartida mediante NFS por la red, por tanto será accesible para PXE y de ahí es de donde cargará todo lo necesario. Ponemos la carpeta a compartir con el comando:

  exportfs -av

Y ya habremos terminado con la configuración del servidor PXE y todo lo requerido para empezar a distribuir el sistema operativo por nuestra red, de forma que sea accesible para todos y cada uno de los equipos que en ella se encuentren y tengan una tarjeta de red compatible con PXE (todas hoy en día).

unattended_installations/linux_pxe.txt · Última modificación: 2022/11/02 17:58 por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki