Doel
Het doel van deze how-to is om inzicht te geven hoe je in SUSE Linux Enterprise server of OpenSUSE een Pre Execute Environment (PXE) kunt opzetten voor het uitrollen van bijvoorbeeld Linux servers. In een later stadium zal gekeken worden of het ook mogelijk is om dit te combineren met eventuele imaging software zodat ook Windows werkstations kunnen worden uitgerold.
Voor een goed werkende PXE omgeving heb je de volgende software componenten nodig:
- TFTP Server.
- DHCP Server.
- syslinux.
- Installatie DVD’s van SUSE Linux.
Benodigde software
Via Yast moet de volgende software installeren:
- DHCP-SERVER
- TFTP (niet de client software)
- YAST2-TFTP-SERVER
- YAST2-NFS-SERVER
- SYSLINUX
DHCP Server op SUSE
Het inrichten van een Standaard DHCP server is niet zo heel erg ingewikkeld en ik ga er dan ook vanuit dat je dit wel kunt zonder verdere uitleg. Echter om PXE aan de gang te krijgen moet je iets meer dan in de bestaande DHCP configuratie, namelijk:
- De optie “filename” moet ingevuld worden.
- De optie “Next Server” moet ingevuld worden.
De volgende stappen moeten worden genomen om deze paramters in vullen.
-
Op de server die ook dienst doet als DHCP server start YaST2.
-
Klik vervolgens om “DHCP Server” om de eigenschappen van de DHCP Server aan te passen.
-
Vervolgens in de DHCP server configuratie selecteer het Subnet onder de “Global Options” en klik op “Edit”
-
Klik nu op het de Add knop en voeg de volgende opties toe:
-
filename met de waarde pxelinux.0
-
next-server met de waarde <ip adres van de tftp server>
-
Vervolgens klik je op OK. En daarna op Finish.
-
De configuratie zal nu worden opgeslagen en de DHCP server zal (opnieuw) worden gestart.
TFTP server.
De volgende stap is het configureren van de TFTP server zodat de machines die PXE boot willen doen ook een PXE omgeving kunnen laden via het netwerk.
Wederom in YaST2 klik op FTPT-Server
Zorg dat de service ingeschakeld is door de optie “Enabled” aan te vinken. Zet vervolgens de Boot Image Directory op een locatie waar de PXE kernel komt te staan.
Wanneer je gebruik maakt van de SuSE Firewall zorg dan de porten ook worden opgezet in de firewall zodat andere machines er straks ook bij kunnen.
NFS Server.
De laatste stap die via YaST2 moet worden gedaan is het configureren van de NFS server.
In Yast2 klik op NFS Server om de eigenschappen te bewerken. Als de NFS server nog niet geïnstalleerd is zal YaST2 dat melden en vragen of je dit alsnog wilt doen.
Zorg ervoor dat de NFS Server wordt gestart en klik vervolgens op Next.
Vervolgens moet er een directory worden aangewezen waarin de installatie bestanden van de te installeren distributie’s staan. Maak bijvoorbeeld een directory /sources aan. Vervolgens kun je bij de hosts aangeven vanaf welk netwerk of machine deze NFS share benaderd kan worden. De standaard waarden zijn voldoende om ieder willekeurige machine vanaf de netwerk share te laten lezen.
Installatie bronnen
Alles wat we via YaST2 hebben kunnen doen hebben we nu gedaan. Nu wordt het tijd dat we ook daadwerkelijk iets beschikbaar gaan stellen zodat de PXE omgeving ook iets te doen heeft voor ons.
SUSE installatie bron.
In dit voorbeeld zorgen we ervoor dat we SUSE Linux Enterprise Server 10 SP 2 via PXE kunnen installeren. Dus we moeten de Installatie DVD beschikbaar maken via de NFS share die we eerder gemaakt hebben.
TIP: Maak voor elke distributie een eigen subdirectory.
Maak een subdirectory voor de installatie van SLES10SP2. Dit doe je door op de command line de volgende regel in te toetsen:
mkdir /sources/sles10sp2
Vervolgens kopieer je de inhoud van de SLES10SP2 DVD naar deze directory. Als je de DVD niet bij de hand hebt maar je maakt gebruik van de ISO files kun je doen door eerst de iso te mounten in bijvoorbeeld /mnt en daarna de inhoud te kopiëren naar /sources/spes10sp2
mount -o /iso-files/sles10sp2.iso /mnt
cp -r /mnt/ /sources/sles10sp2/
Wanneer je bijvoorbeeld ook SUSE Linux Enterprise Server 11 via PXE wilt aanbieden maak je een nieuwe directory onder je /source directory en noem deze dan bijvoorbeeld sles11.
Kopieer hier dan de inhoud van de DVD van SLES11 in.
PXE.
Als het goed is hebben we alles gedaan om ervoor te zorgen dat we PXE zouden kunnen gaan gebruiken. Alleen hebben we nog geen PXE omgeving in onze TFTP directory staan.
PXE kernel klaar zetten.
In de /tftpboot directory moeten we eerst een directory aanmaken met de naam “pxelinux.cfg”
Dit is geen type fout er staat inderdaad pxelinux punt cfg. In deze directory gaan we een bestand maken dat default heet. Hierin moeten de volgende regels worden opgenomen.
(let op de caption)
PROMPT 1
DEFAULT local
TIMEOUT 50
label local
LOCALBOOT 0
nu we dit hebben gedaan moeten we het bestand “pxelinux.0” kopieren naar onze tftpboot directory. Hiervoor kun je het volgende commando gebruiken:
cp /usr/share/syslinux/pxelinux.0 /tftpboot
In feite moet je nu PXE boot kunnen toepassen alleen is er nog niet echt een manier om de linux installatie te starten.
SUSE Boot images
We willen eigenlijk dezelfde installatie procedure starten als die je op de DVD aan treft.
Maak in de directory /tftpboot de volgende subdirectories aan: “ftpboot/linux/SLES10-SP2”
mkdir -p /tftpboot/linux/SLES10-SP2
TIP: Door op deze manier de verschillende versie die je wilt aanbieden via PXE te scheiden van elkaar ben je heel flexibel met het uitrollen van verschillende distributies. Maak voor elk te distribueren distro een eigen subdirectory aan.
Vervolgens moeten er nog twee bestanden naar deze directory worden gekopieerd zodat de SUSE installatie ook daadwerkelijk zal starten.
cp /mnt/boot/x86_64/loader/linux /tftpboot/linux/SLES10-SP2/
cp /mnt/boot/x86_64/loader/initrd /tftpboot/linux/SLES10-SP2/
PXE Menu aanpassen
Het bestand default in /tftpboot/pxelinux.cfg moet worden aangepast zodat je de verschillende boot images kunt starten vanaf het netwerk.
Bewerk dit bestand en voeg de volgende tekst toe:
label SLES10-SP2
kernel linux/SLES10-SP2/linux
append initrd=linux/SLES10-SP2/initrd ramdisk_size=65536 install=nfs://<ip-adres-van-je-server>/sources/sles10sp2 splash=verbose showopts
Opmerking: Alles wat an append initrd komt moet op een regel staan. Door de tekst verwerker kan het lijken alsof dit veschillende regels zijn maar dat is zeker niet het geval.
In de aanpassing hier voor zorgen we ervoor dat de SUSE boot images geladen worden vanuit onze /tftpboot/linux/SLES10-SP2 directory. Je ziet de /tftpboot echter niet staan omdat die de root directory is gezien vanuit de TFPT server.
Zodra de kernel is geladen, wordt als aanvulling op de kernel initrd geladen met als optie onder andere install=nfs://ipadres van nfs server/sources/sles10-sp. Deze extra opdracht zorgt ervoor de rest van de installatie geladen wordt vanaf de nfs share.
PXE menu opleuken
Ondanks dat PXE nu wel zal werken is het nog niet echt gebruikers vriendelijk. Om het wat beter te laten smoelen moet je in de /tftpboot/pxelinux.cfg de volgende regel bovenaan invoegen:
DISPLAY welcome.msg.
Vervolgens voeg je boven de label SLES10-SP2 de volgende regel toe.
F1 SLE.msg.
Nu je een verwijzing hebt gemaakt naar het welcome.msg bestand en het SLE.msg bestand is het ook wel slim om deze te maken. Deze twee bestanden moeten in de directory /tftpboot/ komen staan.
PXE welcome.msg
De inhoud van het welcome.msg zou kunnen zijn:
----------------------------------- Test Lab PXE ]-------------------------
This is a Pre Execute Environment server.
------------------------------------------------------------------------------ --------
The distributions provided by this PXE Server are :
SUSE Linux Enterprise Server 10 SP 2
SUSE Linux Enterprise Server 11
Press F1 for help.
omdat we in het default bestand hebben gezegt dat wanneer er op F1 wordt gedrukt het bestand SLE.msg zichtbaar moet worden gemaakt moeten we dit bestand ook aanmaken in /tftpboot/
SLE.msg
De inhoud van het SLE.msg zou kunnen zijn:
Type the name of the label at the boot prompt, of the Distribution you want to install.
e.g. boot:SLES10-SP2
SLES10-SP2 - Install SUSE Linux Enterprise server 10 SP2
SLES11 - Install SUSE Linux Enterprise Server 11
Currently only the X86-64 version are available on this server.
Nu heb je alles om via PXE een Linux server te installeren.
Ik heb zelf (nog) geen Windows installatie gedaan via PXE dus ik kan je niet precies zeggen hoe dat in zijn werk gaat.
Het zal erg afhangen van welke versie van Windows je wilt installeren.
Je zou hier eens kunnen kijken Walkthrough: Deploy an Image by using PXE Microsoft legt hier uit hoe je Windows via PXE kunt installeren maar ze gaan er wel vanuit dat de PXE server een Windows server is. Dus je zult dit creatief moeten bekijken.
Een andere mogelijkheid is deze tutorial door te nemen Installing Windows Server 2003 with Linux + PXE + DHCP + TFTP LG #177
En als je gebruik wilt maken van imaging zou je CloneZilla Clonezilla Live on PXE server of van FOG(PXE - FOGProject Wiki) via PXE kunnen starten en dan je machine(s) klonen.
Als je gaat klonen moet je ook even naar sysprep kijken How to use the Sysprep tool to automate successful deployment of Windows XP