Update full install & configure a PXE server
This commit is contained in:
parent
a35f537982
commit
b8320092a7
139
HowtoPXE.md
139
HowtoPXE.md
|
@ -1,64 +1,117 @@
|
||||||
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
---
|
||||||
|
title: Howto PXE
|
||||||
|
...
|
||||||
|
|
||||||
Nous allons voir comment mettre en place rapidement un serveur de boot PXE pour installer un système via le réseau.
|
Nous allons voir comment mettre en place un serveur de boot PXE qui va nous servire à installer des système depuis le réseau au lieu des clés USB (que l'on peut perdre facilement!)
|
||||||
|
Pour ce faire, deux protocoles nous intéresse : [DHCP](https://fr.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol) et [TFTP](https://fr.wikipedia.org/wiki/Trivial_File_Transfer_Protocol).
|
||||||
|
|
||||||
Nous allons installer 3 serveurs :
|
Toutes les manipulations seront à réaliser sur le même serveur (192.168.0.10) dont son réseau logique sera en 192.168.0.0/24 avec la passerelle en 192.168.0.254
|
||||||
|
|
||||||
* un serveur DHCP, pour fournir les informations réseau à la machine ;
|
On notera que dans le BIOS, il y a besoin d'activer et de mettre en priorité l'interface réseau (avant de pouvoir booter sur un disque) et d'être en mode "BIOS" et non pas "UEFI".
|
||||||
* un serveur TFTP, pour le transfert des fichiers nécessaires au boot ;
|
|
||||||
* et bien sûr, le serveur PXE en lui même.
|
|
||||||
|
|
||||||
Packets nécessaires :
|
# Installation du service DHCP :
|
||||||
|
|
||||||
|
Commençons par installer le paquet suivant qui est simple d'utilisation :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# aptitude install dhcp3-server pxe atftpd
|
apt-get install isc-dhcp-server
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
## Configuration du réseau
|
Ensuite, nous décrivons la configuration réseau dans le fichier /etc/dhcp/dhcpd.conf
|
||||||
|
|
||||||
*Attention :* Pour éviter d'interférer avec le serveur DHCP de votre réseau, il est nécessaire de recréer un second réseau, à l'aide d'un switch par exemple, et isolé de votre premier réseau.
|
|
||||||
|
|
||||||
### Attribution d'une IP à la carte réseau
|
|
||||||
|
|
||||||
On fixe l'adresse IP du serveur PXE :
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
ifconfig eth0 192.168.0.254
|
#allow booting;
|
||||||
~~~
|
|
||||||
|
|
||||||
### Configuration du serveur DHCP
|
subnet 192.168.0.0 netmask 255.255.255.0 {
|
||||||
|
range 192.168.0.100 192.168.0.150;
|
||||||
Premièrement, il faut renseigner les interfaces gérées dans le fichier _/etc/default/dhcp3-serveur_
|
option broadcast-address 192.168.0.255;
|
||||||
|
option routers 192.168.0.254;
|
||||||
~~~
|
option domain-name-servers 192.168.0.254;
|
||||||
INTERFACES="eth0"
|
next-server 192.168.0.10; # Correspond à l'IP du serveur PXE
|
||||||
~~~
|
filename "pxelinux.0";
|
||||||
|
|
||||||
Ensuite, nous décrivons la configuration réseau dans le fichier _/etc/dhcp3/dhcpd.conf_
|
|
||||||
|
|
||||||
~~~
|
|
||||||
subnet 192.168.0.0 netmask 255.255.255.0
|
|
||||||
{
|
|
||||||
range 192.168.0.1 192.168.0.100;
|
|
||||||
option routers 192.168.0.100;
|
|
||||||
option subnet-mask 255.255.255.0;
|
|
||||||
option broadcast-address 192.168.0.255;
|
|
||||||
filename "/debian-5.0-amd64/pxelinux.0";
|
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
L'option filename indique le chemin (à partir du chroot du serveur TFTP) du fichier image à booter.
|
## Avertissements
|
||||||
|
|
||||||
## Configuration du serveur TFTP
|
*Attention :* Pour éviter d’interférer avec le serveur DHCP de votre réseau ou pour effectuer des test, il est nécessaire de recréer un second réseau de manière à ce qu'ils ne puissent pas communiquer entre eux.
|
||||||
|
|
||||||
Nous utilisons atftp comme serveur TFTP. Aucune configuration n'est nécessaire, il est fonctionnel dès l'installation. Par défaut il est lancé par inetd. Pour désactiver ce comportement, remplacez la ligne `USE_INETD=true` par `false`.
|
Vu que l'on doit pas interférer avec l'autre réseau, on peut utiliser une IP dédié à ce projet en modifiant le fichier /etc/default/isc-dhcp-server
|
||||||
|
Il s'agira alors de modifier le paramètre suivant :
|
||||||
|
|
||||||
Suivant si inetd est utilisé ou pas, il est possible de modifier les options de atftpd, soit dans le fichier _/etc/inetd.conf_ soit dans le fichier _/etc/default/atftp_.
|
~~~
|
||||||
|
INTERFACES="eth1"
|
||||||
|
~~~
|
||||||
|
|
||||||
À l'installation, un répertoire /tftpboot est créé. Il contient les fichiers qui seront servit par atftpd.
|
On prend en compte ce changement :
|
||||||
|
|
||||||
## Configuration de PXE
|
~~~
|
||||||
|
systemctl restart isc-dhcp-server
|
||||||
|
~~~
|
||||||
|
|
||||||
La configuration se fait dans le fichier _/etc/pxe.conf_
|
# Installation du service TFTP
|
||||||
|
|
||||||
TODO rdessort : à terminer suivant la conf de l'eeepc
|
L'avantage de ce protocole est qu'il est simple d'utilisation car il y a juste besoin de l'installer.
|
||||||
|
Nous allons utiliser l'installateur de Debian pour avoir la liberté de sélectionner son futur système.
|
||||||
|
|
||||||
|
~~~
|
||||||
|
apt-get install tftpd-hpa
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Nos déploiement se trouverons dans le dossier :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
cd /srv/tftp
|
||||||
|
~~~
|
||||||
|
|
||||||
|
On télécharge l'installateur Debian puis on le décompresse (par la même occasion, on vérifie que le service est bien démarré) :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
wget http://cdn-fastly.deb.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz
|
||||||
|
tar xf netboot.tar.gz
|
||||||
|
systemctl restart tftpd-hpa
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Ainsi nous avons ce fichier binaire pxelinux.0 qui sera demandé par le DHCP.
|
||||||
|
Il est maintenant possible d'installer un système Debian depuis le réseau.
|
||||||
|
On peut voir que tous nos services sont en écoutes :
|
||||||
|
|
||||||
|
|
||||||
|
~~~
|
||||||
|
# netstat -lntpu |grep -e dhclient -e tftp
|
||||||
|
udp 0 0 0.0.0.0:1987 0.0.0.0:* 411/dhclient
|
||||||
|
udp 0 0 0.0.0.0:68 0.0.0.0:* 411/dhclient
|
||||||
|
udp 0 0 10.0.0.11:69 0.0.0.0:* 3525/in.tftpd
|
||||||
|
udp6 0 0 :::18502 :::* 411/dhclient
|
||||||
|
~~~
|
||||||
|
|
||||||
|
# Utiliser une ISO via PXE
|
||||||
|
|
||||||
|
Ajoutons un peu de difficulté en souhaitant utiliser les fichiers ISO pour voir le choix de son futur OS.
|
||||||
|
Admettons que nous voulons OpenBSD, on va lui créer son dossier pour simplifier l'organisation des ISO (supposons que l'on en fait la collection) :
|
||||||
|
|
||||||
|
Créons le dossier et téléchargeons l'ISO :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mkdir bsd
|
||||||
|
wget http://mirrors.ircam.fr/pub/OpenBSD/6.0/amd64/install60.iso -O bsd/openbsd.iso
|
||||||
|
~~~
|
||||||
|
|
||||||
|
On doit ensuite modifier le fichier debian-installer/amd64/boot-screens/txt.cfg pour ajouter ceci :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
label OpenBSD Install
|
||||||
|
menu label OpenBSD Install
|
||||||
|
kernel memdisk
|
||||||
|
initrd bsd/openbsd.iso
|
||||||
|
append iso raw
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Il nous reste à télécharger un dernier paquet pour avoir la possibilité de charger automatiquement les modules que le système aura besoin.
|
||||||
|
|
||||||
|
~~~
|
||||||
|
apt-get install syslinux
|
||||||
|
cp /usr/lib/syslinux/memdisk /srv/tftp/
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Vous devez maintenant avoir le menu qui propose d'installer un OpenBSD.
|
Loading…
Reference in a new issue