Cómo instalar Ubuntu a través del servidor PXE usando fuentes de DVD locales


PXE o Entorno de ejecución de prearranque es un mecanismo servidor-cliente que le indica a una máquina cliente que arranque la red de formularios.

En esta guía, mostraremos cómo instalar Ubuntu Server a través de un servidor PXE con fuentes locales HTTP reflejadas desde la imagen ISO del servidor Ubuntu a través de la web de Apache servidor. El servidor PXE utilizado en este tutorial es Dnsmasq Server .

  1. Ubuntu Server 16.04 or 17.04 Installation
  2. A network interface configured with Static IP address
  3. Ubuntu Server 16.04 or 17.04 ISO image

Paso 1: Instalar y configurar el servidor DNSMASQ

1. Para configurar el servidor PXE , en el primer paso inicie sesión con la cuenta raíz o una cuenta con privilegios de raíz e instale el paquete Dnsmasq en Ubuntu emitiendo el siguiente comando.

# apt install dnsmasq

2. A continuación, realice una copia de seguridad del archivo de configuración principal dnsmasq y luego comience a editar el archivo con las siguientes configuraciones.

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

Agregue la siguiente configuración al archivo dnsmasq.conf .

interface=ens33,lo
bind-interfaces
domain=mypxe.local

dhcp-range=ens33,192.168.1.230,192.168.1.253,255.255.255.0,1h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-option=6,8.8.8.8
server=8.8.4.4
dhcp-option=28,10.0.0.255
dhcp-option=42,0.0.0.0

dhcp-boot=pxelinux.0,pxeserver,192.168.1.14

pxe-prompt="Press F8 for menu.", 2
pxe-service=x86PC, "Install Ubuntu 16.04 from network server 192.168.1.14", pxelinux
enable-tftp
tftp-root=/srv/tftp

En el archivo de configuración anterior, reemplace las siguientes líneas en consecuencia.

  • interface Replace with your own machine network interface.
  • domain – Replace it with your domain name.
  • dhcp-range – Define your own network range for DHCP to allocate IPs to this network segment and how long should an IP address for a client should be granted.
  • dhcp-option=3 – Your Gateway IP.
  • dhcp-option=6 DNS Server IPs – several DNS IPs can be defined.
  • server – DNS forwarder IPs Address.
  • dhcp-option=28 – Your network broadcast address.
  • dhcp-option=42 – NTP server – use 0.0.0.0 Address is for self-reference.
  • dhcp-boot – the pxe boot file and the IP address of the PXE server (here pxelinux.0 and IP address of the same machine).
  • pxe-prompt – Uses can hit F8 key to enter PXE menu or wait 2 seconds before automatically switching to PXE menu.
  • pxe=service – Use x86PC for 32-bit/64-bit architectures and enter a menu description prompt under string quotes. Other values types can be: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI.
  • enable-tftp – Enables the build-in TFTP server.
  • tftp-root – the system path for net boot files.

3. Además, una vez que haya terminado de editar el archivo de configuración dnsmasq , cree el directorio para el PXE netboot emitiendo el siguiente comando y reinicie el demonio dnsmasq para aplicar los cambios. Compruebe el estado del servicio dnsmasq para ver si se ha iniciado.

# mkdir /srv/tftp
# systemctl restart dnsmasq.service
# systemctl status dnsmasq.service

Paso 2: Instalar archivos TFTP Netboot

4. En el siguiente paso, tome la última versión de la imagen ISO del servidor Ubuntu para una arquitectura de 64 bits con el siguiente comando.

# wget http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso

5. Una vez que se haya descargado el servidor ISO de Ubuntu, monte la imagen en el directorio /mnt y haga una lista del contenido del directorio montado ejecutando los siguientes comandos.

# mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/
# ls /mnt/

6. A continuación, copie los archivos netboot del árbol montado en Ubuntu a la ruta del sistema tftp emitiendo el siguiente comando. Además, liste la ruta del sistema tftp para ver los archivos copiados.

# cp -rf /mnt/install/netboot/* /srv/tftp/
# ls /srv/tftp/

Paso 3: Preparar archivos de origen de instalación local

7. Las fuentes de instalación de la red local para el servidor Ubuntu se proporcionarán a través del protocolo HTTP. Primero, instale, inicie y habilite el servidor web Apache emitiendo los siguientes comandos.

# apt install apache2
# systemctl start apache2
# systemctl status apache2
# systemctl enable apache2

8. Luego, copie el contenido del Ubuntu DVD en la ruta de la raíz web del servidor web Apache ejecutando los siguientes comandos. Liste el contenido de la ruta de la raíz web de Apache para verificar si el árbol montado en Ubuntu ISO se ha copiado completamente.

# cp -rf /mnt/* /var/www/html/
# ls /var/www/html/

9. A continuación, abra el puerto HTTP en el firewall y navegue hasta la dirección IP de su máquina a través de un navegador ( http://192.168.1.14/ubuntu ) para comprobar si Puede llegar a las fuentes a través del protocolo HTTP.

# ufw allow http

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

10. Para poder hacer pivotar los rootfs a través de PXE y fuentes locales, Ubuntu debe ser instruido a través de un archivo preseed. Cree el siguiente archivo local-sources.seed en la ruta raíz del documento de su servidor web con el siguiente contenido.

# nano /var/www/html/ubuntu/preseed/local-sources.seed

Agregue la siguiente línea al archivo local-sources.seed .

d-i live-installer/net-image string http://192.168.1.14/ubuntu/install/filesystem.squashfs

Aquí, asegúrese de reemplazar la dirección IP en consecuencia. Debe ser la dirección IP donde se encuentran los recursos web. En esta guía, las fuentes web, el servidor PXE y el servidor TFTP están alojados en el mismo sistema. En una red atestada es posible que desee ejecutar PXE, TFTP y servicios web en máquinas separadas para mejorar la velocidad de la red PXE.

11. Un servidor PXE lee y ejecuta los archivos de configuración ubicados en pxelinux.cfg Directorio raíz TFTP en este orden: archivos GUID, archivos MAC y archivo predeterminado.

El directorio pxelinux.cfg ya está creado y se rellena con los archivos de configuración PXE requeridos porque anteriormente hemos copiado los archivos de arranque de red de la imagen ISO montada en Ubuntu.

Para agregar el archivo de declaración anterior a la etiqueta de instalación de Ubuntu en el archivo de configuración de PXE, abra el siguiente archivo para editarlo y ejecute el siguiente comando.

# nano /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg

En el archivo de configuración txt.cfg de Ubuntu PXE, reemplace la siguiente línea como se ilustra en el extracto a continuación.

append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

El archivo /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg debe tener el siguiente contenido global:

default install
label install
	menu label ^Install Ubuntu 16.04 with Local Sources
	menu default
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
	menu label ^Command-line install
	kernel ubuntu-installer/amd64/linux
	append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

12. En caso de que desee agregar la declaración de URL precede al menú de Rescate de Ubuntu , abra el archivo siguiente y asegúrese de actualizar el contenido como se ilustra en el siguiente ejemplo.

# nano /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg

Agregue la configuración siguiente a rqtxt.cfg .

label rescue
	menu label ^Rescue mode
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet

La línea importante que debe actualizar es url = http: //192.168.1.14/ubuntu/preseed/local-sources.seed que especifica la dirección URL donde se encuentra el archivo en su red.

13. Finalmente, abra el archivo Ubuntu pxe menu.cfg y comente las primeras tres líneas para expandir la pantalla de inicio PXE como se ilustra en la captura de pantalla a continuación.

# nano /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg

Comenta estas tres líneas siguientes.

#menu hshift 13
#menu width 49
#menu margin 8

Paso 5: Abrir puertos de firewall en Ubuntu

14. Ejecute el comando netstat con privilegios de root para identificar dnsmasq, tftp y puertos web abiertos en estado de escucha en su servidor, como se ilustra en el extracto a continuación.

# netstat -tulpn

15. Una vez que hayas identificado todos los puertos necesarios, ejecuta los siguientes comandos para abrir los puertos en el firewall ufw.

# ufw allow 53/tcp
# ufw allow 53/udp
# ufw allow 67/udp
# ufw allow 69/udp
# ufw allow 4011/udp

Paso 6: Instalar Ubuntu con fuentes locales a través de PXE

16. Para instalar el servidor Ubuntu a través de PXE y usar las fuentes de instalación de la red local, reinicie el cliente de su máquina, indique a la BIOS que arranque desde la red y en la primera pantalla del menú PXE, elija la primera opción como se ilustra en debajo de imagenes

17. El procedimiento de instalación debe realizarse como de costumbre. Cuando el instalador llegue a la configuración de país de duplicación del archivo de Ubuntu , use la flecha hacia arriba del teclado para pasar a la primera opción, que dice: ingrese la información manualmente .

18. Presione la tecla [ingresar] para actualizar esta opción, elimine la cadena de réplica y agregue la dirección IP de las fuentes de réplica del servidor web y presione Entrar para continuar como se ilustra en la debajo de la imagen

http://192.168.1.14

19. En la siguiente pantalla, agregue su directorio de archivo espejo como se muestra a continuación y presione la tecla Intro para continuar con el proceso de instalación y generalmente.

/ubuntu

20. En caso de que desee ver información sobre qué paquetes se descargan de su espejo local de red, presione las teclas [CTRL + ALT + F2] para cambiar la consola virtual de la máquina y ejecute el siguiente comando.

# tail –f /var/log/syslog

21. Una vez que finalice la instalación del servidor Ubuntu, inicie sesión en el sistema que acaba de instalar y ejecute el siguiente comando con privilegios de root para actualizar los paquetes de repositorios de las fuentes de la red local a los duplicados oficiales de Ubuntu.

Es necesario cambiar los espejos para actualizar el sistema utilizando los repositorios de Internet.

$ sudo sed –i.bak ‘s/192.168.1.14/archive.ubuntu.com/g’ /etc/apt/sources.list

Asegúrese de reemplazar la dirección IP de acuerdo con la dirección IP de sus propias fuentes web locales.

¡Eso es todo! Ahora puede actualizar su sistema de servidor Ubuntu e instalar todo el software requerido. La instalación de Ubuntu a través de PXE y una fuente de red local puede mejorar la velocidad de instalación y puede ahorrar ancho de banda y costos en Internet en caso de implementar una gran cantidad de servidores en un corto período de tiempo en sus instalaciones.