Com instal·lar Ubuntu mitjançant el servidor PXE utilitzant fonts de DVD locals


PXE o Preboot eXecution Environment és un mecanisme servidor-client que indica a una màquina client que arrenqui des de la xarxa.

En aquesta guia mostrarem com instal·lar Ubuntu Server mitjançant un servidor PXE amb fonts HTTP locals reflectides de la imatge ISO del servidor Ubuntu mitjançant el servidor web Apache. El servidor PXE utilitzat en aquest tutorial és el servidor Dnsmasq.

  1. Instal·lació de l'Ubuntu Server 16.04 o 17.04
  2. Una interfície de xarxa configurada amb una adreça IP estàtica
  3. Imatge ISO de l'Ubuntu Server 16.04 o 17.04

Pas 1: instal·leu i configureu el servidor DNSMASQ

1. Per configurar el servidor PXE, al primer pas inicieu sessió amb el compte root o amb un compte amb privilegis root i instal·leu el paquet Dnsmasq a Ubuntu emetent l'ordre següent.

# apt install dnsmasq

2. A continuació, feu una còpia de seguretat del fitxer de configuració principal dnsmasq i, a continuació, comenceu a editar el fitxer amb les configuracions següents.

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

Afegiu la configuració següent al fitxer 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

Al fitxer de configuració anterior substituïu les línies següents en conseqüència.

  • Interfície Substituïu-la per la vostra pròpia interfície de xarxa de la màquina.
  • domini: substituïu-lo pel vostre nom de domini.
  • dhcp-range: defineix el teu propi interval de xarxa perquè DHCP assigni IP a aquest segment de xarxa i quant de temps s'ha de concedir una adreça IP per a un client.
  • dhcp-option=3: la vostra IP de passarel·la.
  • dhcp-option=6 IP del servidor DNS: es poden definir diverses IP DNS.
  • servidor: adreça IP del reenviador DNS.
  • dhcp-option=28: la vostra adreça de difusió de la xarxa.
  • dhcp-option=42 – Servidor NTP – utilitzeu l'adreça 0.0.0.0 per a l'auto-referència.
  • dhcp-boot: el fitxer d'arrencada pxe i l'adreça IP del servidor PXE (aquí pxelinux.0 i l'adreça IP de la mateixa màquina).
  • pxe-prompt: els usuaris poden prémer la tecla F8 per entrar al menú PXE o esperar 2 segons abans de canviar automàticament al menú PXE.
  • pxe=service: utilitzeu x86PC per a arquitectures de 32/64 bits i introduïu una descripció del menú sota cometes de cadena. Altres tipus de valors poden ser: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI i X86-64_EFI.
  • enable-tftp: activa el servidor TFTP integrat.
  • tftp-root: la ruta del sistema per als fitxers d'arrencada en xarxa.

3. A més, un cop hàgiu acabat d'editar el fitxer de configuració dnsmasq, creeu el directori dels fitxers d'arrencada de xarxa PXE emetent l'ordre següent i reinicieu el dimoni dnsmasq per aplicar els canvis. Comproveu l'estat del servei dnsmasq per veure si s'ha iniciat.

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

Pas 2: instal·leu TFTP Netboot Files

4. Al següent pas, agafeu la darrera versió de la imatge ISO del servidor Ubuntu per a l'arquitectura de 64 bits emetent l'ordre següent.

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

5. Després de baixar la ISO del servidor Ubuntu, munteu la imatge al directori /mnt i enumereu el contingut del directori muntat executant les ordres següents.

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

6. A continuació, copieu els fitxers d'arrencada en xarxa des de l'arbre muntat d'Ubuntu a la ruta del sistema tftp emetent l'ordre següent. A més, enumereu la ruta del sistema tftp per veure els fitxers copiats.

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

Pas 3: prepareu els fitxers font d'instal·lació local

7. Les fonts d'instal·lació de la xarxa local per al servidor Ubuntu es proporcionaran mitjançant el protocol HTTP. Primer, instal·leu, inicieu i activeu el servidor web Apache emetent les ordres següents.

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

8. A continuació, copieu el contingut del DVD d'Ubuntu muntat a la ruta arrel web del servidor web Apache executant les ordres següents. Enumereu el contingut de la ruta arrel web d'Apache per comprovar si l'arbre muntat ISO d'Ubuntu s'ha copiat completament.

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

9. A continuació, obriu el port HTTP al tallafoc i navegueu a l'adreça IP de la vostra màquina mitjançant un navegador (http://192.168.1.14/ubuntu) per provar si podeu accedir a les fonts mitjançant el protocol HTTP.

# ufw allow http

Pas 4: configureu el fitxer de configuració del servidor PXE

10. Per tal de poder pivotar els rootfs mitjançant PXE i fonts locals, cal que l'Ubuntu sigui instruït mitjançant un fitxer de configuració prèvia. Creeu el següent fitxer local-sources.seed a la ruta arrel del document del vostre servidor web amb el contingut següent.

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

Afegiu la línia següent al fitxer local-sources.seed.

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

Aquí, assegureu-vos de substituir l'adreça IP en conseqüència. Hauria de ser l'adreça IP on es troben els recursos web. En aquesta guia, les fonts web, el servidor PXE i el servidor TFTP estan allotjats al mateix sistema. En una xarxa plena de gent, potser voldreu executar PXE, TFTP i serveis web en màquines separades per millorar la velocitat de la xarxa PXE.

11. Un servidor PXE llegeix i executa els fitxers de configuració situats al directori arrel TFTP pxelinux.cfg en aquest ordre: fitxers GUID, fitxers MAC i fitxer predeterminat.

El directori pxelinux.cfg ja està creat i emplenat amb els fitxers de configuració PXE necessaris perquè abans hem copiat els fitxers d'arrencada en xarxa de la imatge ISO muntada d'Ubuntu.

Per afegir el fitxer de declaració de configuració prèvia anterior a l'etiqueta d'instal·lació d'Ubuntu al fitxer de configuració PXE, obriu el fitxer següent per editar-lo emetent l'ordre següent.

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

Al fitxer de configuració d'Ubuntu PXE txt.cfg, substituïu la línia següent tal com es mostra a l'extracte següent.

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

El fitxer /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg hauria de tenir el contingut global següent:

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 cas que vulgueu afegir la declaració d'url preconfigurada al menú de rescat d'Ubuntu, obriu el fitxer següent i assegureu-vos que actualitzeu el contingut tal com es mostra a l'exemple següent.

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

Afegiu la configuració següent al fitxer 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ínia important que hauríeu d'actualitzar és url=http://192.168.1.14/ubuntu/preseed/local-sources.seed que especifica l'adreça URL on es troba el fitxer premut a la vostra xarxa.

13. Finalment, obriu el fitxer Ubuntu pxe menu.cfg i comenteu les tres primeres línies per tal d'ampliar la pantalla d'arrencada PXE tal com es mostra a la captura de pantalla següent.

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

Comenta aquestes tres línies següents.

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

Pas 5: obriu els ports del tallafoc a Ubuntu

14. Executeu l'ordre netstat amb privilegis d'arrel per identificar els ports oberts dnsmasq, tftp i web en estat d'escolta al vostre servidor, tal com es mostra a l'extracte següent.

# netstat -tulpn

15. Després d'identificar tots els ports necessaris, emet les ordres següents per obrir els ports al tallafoc ufw.

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

Pas 6: instal·leu Ubuntu amb fonts locals mitjançant PXE

16. Per instal·lar el servidor Ubuntu mitjançant PXE i utilitzar les fonts d'instal·lació de la xarxa local, reinicieu el vostre client de la màquina, indiqueu a la BIOS que arrenqui des de la xarxa i, a la primera pantalla del menú PXE, trieu la primera opció tal com s'il·lustra a les imatges següents.

17. El procediment d'instal·lació s'ha de fer com és habitual. Quan l'instal·lador arribi a la configuració del país mirall de l'arxiu d'Ubuntu, utilitzeu la fletxa amunt del teclat per anar a la primera opció, que diu: introduïu la informació manualment.

18. Premeu la tecla [Enter] per actualitzar aquesta opció, suprimiu la cadena de rèplica i afegiu l'adreça IP de les fonts de rèplica del servidor web i premeu Intro per continuar tal com es mostra a la imatge següent.

http://192.168.1.14

19. A la pantalla següent, afegiu el vostre directori d'arxiu mirall com es mostra a continuació i premeu la tecla Intro per continuar amb el procés d'instal·lació i normalment.

/ubuntu

20. En cas que vulgueu veure informació sobre quins paquets es descarreguen des de la rèplica local de la vostra xarxa, premeu les tecles [CTRL+ALT+F2] per canviar la consola virtual de la màquina i emetre l'ordre següent.

# tail –f /var/log/syslog

21. Un cop finalitzada la instal·lació del servidor Ubuntu, inicieu sessió al sistema recentment instal·lat i executeu l'ordre següent amb privilegis d'arrel per actualitzar els paquets de dipòsits des de fonts de xarxa locals a rèpliques oficials d'Ubuntu.

Els miralls s'han de canviar per actualitzar el sistema mitjançant els repositoris d'Internet.

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

Assegureu-vos de substituir l'adreça IP segons l'adreça IP de les vostres fonts locals web.

Això és tot! Ara podeu actualitzar el vostre sistema de servidor Ubuntu i instal·lar tot el programari necessari. La instal·lació d'Ubuntu mitjançant PXE i un mirall d'origen de xarxa local pot millorar la velocitat d'instal·lació i estalviar ample de banda d'Internet i costos en cas de desplegar un gran nombre de servidors en un curt període de temps a les vostres instal·lacions.