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 ;
|
||||
* un serveur TFTP, pour le transfert des fichiers nécessaires au boot ;
|
||||
* et bien sûr, le serveur PXE en lui même.
|
||||
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".
|
||||
|
||||
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
|
||||
|
||||
*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 :
|
||||
Ensuite, nous décrivons la configuration réseau dans le fichier /etc/dhcp/dhcpd.conf
|
||||
|
||||
~~~
|
||||
ifconfig eth0 192.168.0.254
|
||||
~~~
|
||||
#allow booting;
|
||||
|
||||
### Configuration du serveur DHCP
|
||||
|
||||
Premièrement, il faut renseigner les interfaces gérées dans le fichier _/etc/default/dhcp3-serveur_
|
||||
|
||||
~~~
|
||||
INTERFACES="eth0"
|
||||
~~~
|
||||
|
||||
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";
|
||||
subnet 192.168.0.0 netmask 255.255.255.0 {
|
||||
range 192.168.0.100 192.168.0.150;
|
||||
option broadcast-address 192.168.0.255;
|
||||
option routers 192.168.0.254;
|
||||
option domain-name-servers 192.168.0.254;
|
||||
next-server 192.168.0.10; # Correspond à l'IP du serveur PXE
|
||||
filename "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 New Issue