Zoeken op website

Ubuntu installeren via PXE-server met behulp van lokale dvd-bronnen


PXE of Preboot eXecution Environment is een server-clientmechanisme dat een clientmachine instrueert om vanuit een netwerk op te starten.

In deze handleiding laten we zien hoe u Ubuntu Server installeert via een PXE-server met lokale HTTP-bronnen gespiegeld vanaf de Ubuntu-server ISO-image via Apache web server. De PXE-server die in deze tutorial wordt gebruikt, is Dnsmasq Server.

Vereisten:

  1. Installatie van Ubuntu Server 16.04 of 17.04
  2. Een netwerkinterface geconfigureerd met een statisch IP-adres
  3. Ubuntu Server 16.04 of 17.04 ISO-image

Stap 1: DNSMASQ-server installeren en configureren

1. Om de PXE-server in te stellen, logt u bij de eerste stap in met het root-account of een account met root-rechten en installeert u het Dnsmasq-pakket in Ubuntu door de volgende opdracht te geven.

apt install dnsmasq

2. Maak vervolgens een back-up van het hoofdconfiguratiebestand van dnsmasq en begin vervolgens met het bewerken van het bestand met de volgende configuraties.

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

Voeg de volgende configuratie toe aan het bestand 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

Vervang in het bovenstaande configuratiebestand de volgende regels dienovereenkomstig.

  • interface Vervang door de netwerkinterface van uw eigen machine.
  • domein – Vervang het door uw domeinnaam.
  • dhcp-range – Definieer uw eigen netwerkbereik voor DHCP om IP's aan dit netwerksegment toe te wijzen en hoe lang een IP-adres voor een client moet worden toegekend.
  • dhcp-option=3 – Uw gateway-IP.
  • dhcp-option=6 DNS-server-IP's – er kunnen verschillende DNS-IP's worden gedefinieerd.
  • server – DNS-forwarder IP-adres.
  • dhcp-option=28 – Uw netwerkbroadcastadres.
  • dhcp-option=42 – NTP-server – gebruik 0.0.0.0 Adres is voor zelfreferentie.
  • dhcp-boot – het pxe-opstartbestand en het IP-adres van de PXE-server (hier pxelinux.0 en IP-adres van dezelfde machine).
  • pxe-prompt – Gebruikers kunnen op de F8-toets drukken om het PXE-menu te openen of 2 seconden wachten voordat ze automatisch naar het PXE-menu overschakelen.
  • pxe=service – Gebruik x86PC voor 32-bit/64-bit architecturen en voer een menubeschrijvingsprompt in tussen aanhalingstekens. Andere typen waarden kunnen zijn: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI en X86-64_EFI.
  • enable-tftp – Schakelt de ingebouwde TFTP-server in.
  • tftp-root – het systeempad voor net-opstartbestanden.

3. Nadat u klaar bent met het bewerken van het dnsmasq-configuratiebestand, maakt u de map voor de PXE netboot-bestanden aan door de onderstaande opdracht uit te voeren en start de dnsmasq-daemon opnieuw om de wijzigingen toe te passen. Controleer de dnsmasq-servicestatus om te zien of deze is gestart.

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

Stap 2: Installeer TFTP Netboot-bestanden

4. Bij de volgende stap haalt u de nieuwste versie van de Ubuntu-server ISO-image voor 64-bit architectuur op door de volgende opdracht te geven.

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

5. Nadat de Ubuntu-server-ISO is gedownload, koppelt u de afbeelding in de map /mnt en geeft u de inhoud van de gekoppelde map weer door de onderstaande opdrachten uit te voeren.

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

6. Kopieer vervolgens de netboot-bestanden van de Ubuntu-gemounte boom naar het tftp-systeempad door de onderstaande opdracht te geven. Geef ook het tftp-systeempad op om de gekopieerde bestanden te bekijken.

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

Stap 3: Bereid de lokale installatiebronbestanden voor

7. De lokale netwerkinstallatiebronnen voor de Ubuntu-server worden geleverd via het HTTP-protocol. Installeer, start en schakel eerst de Apache-webserver in door de volgende opdrachten te geven.

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

8. Kopieer vervolgens de inhoud van de aangekoppelde Ubuntu-dvd naar het webrootpad van de Apache-webserver door de onderstaande opdrachten uit te voeren. Maak een lijst van de inhoud van het Apache-webrootpad om te controleren of de Ubuntu ISO-gemounte boom volledig is gekopieerd.

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

9. Open vervolgens de HTTP-poort in de firewall en navigeer via een browser naar het IP-adres van uw machine (http://192.168.1.14/ubuntu) om te testen of u kan bronnen bereiken via het HTTP-protocol.

ufw allow http

Stap 4: Stel het PXE-serverconfiguratiebestand in

10. Om de rootfs via PXE en lokale bronnen te kunnen draaien, moet Ubuntu geïnstrueerd worden via een preseed-bestand. Maak het volgende local-sources.seed-bestand in het hoofdpad van uw webserverdocument met de volgende inhoud.

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

Voeg de volgende regel toe aan het local-sources.seed bestand.

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

Zorg ervoor dat u hier het IP-adres dienovereenkomstig vervangt. Dit moet het IP-adres zijn waar webbronnen zich bevinden. In deze handleiding worden de webbronnen, de PXE-server en de TFTP-server op hetzelfde systeem gehost. In een druk netwerk wilt u wellicht PXE-, TFTP- en webservices op afzonderlijke machines uitvoeren om de PXE-netwerksnelheid te verbeteren.

11. Een PXE-server leest en voert configuratiebestanden uit die zich in de pxelinux.cfg TFTP-hoofdmap bevinden, in deze volgorde: GUID-bestanden, MAC-bestanden en standaardbestand.

De map pxelinux.cfg is al gemaakt en gevuld met de vereiste PXE-configuratiebestanden, omdat we eerder de netboot-bestanden hebben gekopieerd van de op Ubuntu gemonteerde ISO-image.

Om het bovenstaande preseed-instructiebestand toe te voegen aan het Ubuntu-installatielabel in het PXE-configuratiebestand, opent u het volgende bestand om te bewerken door de onderstaande opdracht uit te voeren.

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

Vervang in het Ubuntu PXE txt.cfg configuratiebestand de volgende regel zoals geïllustreerd in het onderstaande fragment.

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

Het bestand /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg moet de volgende algemene inhoud bevatten:

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. Als u de preseed-URL-instructie wilt toevoegen aan het Ubuntu Rescue-menu, opent u het onderstaande bestand en zorgt u ervoor dat u de inhoud bijwerkt, zoals geïllustreerd in het onderstaande voorbeeld.

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

Voeg de volgende configuratie toe aan het bestand 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

De belangrijke regel die u moet bijwerken is url=http://192.168.1.14/ubuntu/preseed/local-sources.seed, die het URL-adres specificeert waar het ingedrukte bestand zich in uw netwerk bevindt.

13. Open ten slotte het Ubuntu pxe menu.cfg bestand en geef commentaar op de eerste drie regels om het PXE-opstartscherm uit te vouwen, zoals geïllustreerd in de onderstaande schermafbeelding.

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

Commentaar op deze drie volgende regels.

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

Stap 5: Open firewallpoorten in Ubuntu

14. Voer de opdracht netstat uit met rootrechten om dnsmasq-, tftp- en web-open poorten in luisterstatus op uw server te identificeren, zoals geïllustreerd in het onderstaande fragment.

netstat -tulpn

15. Nadat u alle vereiste poorten heeft geïdentificeerd, voert u de onderstaande opdrachten uit om de poorten in ufw firewall te openen.

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

Stap 6: Installeer Ubuntu met lokale bronnen via PXE

16. Om de Ubuntu-server via PXE te installeren en de lokale netwerkinstallatiebronnen te gebruiken, start u uw machineclient opnieuw op, instrueert u het BIOS om vanaf het netwerk op te starten en kiest u in het eerste PXE-menuscherm de eerste optie, zoals geïllustreerd in de onderstaande afbeeldingen.

17. De installatieprocedure moet zoals gewoonlijk worden uitgevoerd. Wanneer het installatieprogramma de configuratie van Ubuntu-archiefspiegelland bereikt, gebruikt u de pijl-omhoog op het toetsenbord om naar de eerste optie te gaan, die zegt: gegevens handmatig invoeren.

18. Druk op [enter] om deze optie bij te werken, verwijder de mirror-string en voeg het IP-adres van de webserver-mirrorbronnen toe en druk op enter om door te gaan zoals geïllustreerd in de onderstaande afbeelding.

http://192.168.1.14

19. Voeg op het volgende scherm uw mirror-archiefmap toe, zoals hieronder weergegeven, en druk op de Enter-toets om door te gaan met het installatieproces.

/ubuntu

20. Als u informatie wilt zien over welke pakketten zijn gedownload van uw lokale netwerkspiegel, drukt u op de toetsen [CTRL+ALT+F2] om de virtuele console van de machine te wijzigen en geef het volgende commando.

tail –f /var/log/syslog

21. Nadat de installatie van de Ubuntu-server is voltooid, logt u in op het nieuw geïnstalleerde systeem en voert u de volgende opdracht uit met rootrechten om de repositorypakketten bij te werken van lokale netwerkbronnen naar officiële Ubuntu-mirrors.

De spiegels moeten worden gewijzigd om het systeem te kunnen updaten met behulp van de internetopslagplaatsen.

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

Zorg ervoor dat u het IP-adres vervangt volgens het IP-adres van uw eigen lokale webbronnen.

Dat is alles! U kunt nu uw Ubuntu-serversysteem bijwerken en alle vereiste software installeren. Het installeren van Ubuntu via PXE en een lokale netwerkbronspiegel kan de installatiesnelheid verbeteren en internetbandbreedte en -kosten besparen als u in korte tijd een groot aantal servers op uw locatie moet inzetten.