Le but de ce post n'est pas de décrire comment se déroule l'installation de OpenBSD (tout en texte, donc diablement simple), mais de mettre en place un serveur qui permettra cette installation par boot PXE.
Le client sur lequel sera installé OpenBSD doit pouvoir booter sur le réseau. Même si les cartes réseaux et les BIOS supportent de plus en plus souvent cette option, elle n'est pas toujours disponible. Des solutions logicielles – telles que celles fournies par rom-o-matic – existent. Le serveur utilisé est sous Debian testing, mais les configurations seront les mêmes sur la plupart des linux/unix, à quelques détails près.
Installations
Services
Première étape, installation des paquets nécessaires :
apt-get install dhcp3-server tftpd xinetd
Un serveur dhcp est nécessaire pour assigner une IP au client. tftpd est un client ftp très léger, configuré pour tourner à l'aide de xinetd sous Debian.
Fichiers
Il nous faut deux fichiers pour le boot. Ce sont le noyau BSD pour l'installation (bsd.rd) et le fichier de boot PXE (pxeboot), téléchargeable sur les FTP OpenBSD (i386).
Ils sont à placer dans le dossier /tftpboot dont nous reparlerons plus tard :
# mkdir /tftpboot
# chmod 777 /tftpboot
# mv bsd.rd pxeboot /tftpboot
Configurations
Serveur dhcp
Son fichier de configuration est /etc/dhcp3/dhcpd.conf :
default-lease-time 86400;
max-lease-time 90000;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
range 192.168.0.10 192.168.0.20;
option subnet-mask 255.255.255.0;
next-server 192.168.0.1;
filename "pxeboot";
}
J'utilise ici le sous réseau "192.168.0.0", c'est une valeur arbitraire qui peut être remplacée, de même que l'adresse IP du routeur, et la plage (range) d'adresses disponibles pour les clients dhcp.
filename "pxeboot" décrit le nom du fichier à utiliser par le client pour booter.
C'est eth0 qui sera l'interface réseau pour le serveur. J'ai inclus sa configuration dans /etc/network/interfaces :
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
tftp
tftp utilise xinetd pour démarrer (sous Debian). Sa configuration par défaut est appliquée dans /etc/inetd.conf mais nécessite une petite modification. Editez ce fichier et remplacez la ligne de configuration de tftp (celle qui commence par tftp !) par celle-ci :
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd -s /tftpboot
On retrouve notre /tftpboot qui est le dossier racine pour les clients se connectant au serveur tftp.
Par défaut le boot PXE va chercher un noyau nommé bsd, qui n'existe pas pour nous. Il faudra donc indiquer à notre client PXE que nous voulons booter le noyau bsd.rd. C'est faisable en créant un simple fichier de configuration /etc/boot.conf dans le dossier racine de tftp :
# mkdir /tftpboot/etc
# echo "/bsd.rd" > /tftpboot/etc/boot.conf
Redémarrer les services
Redémarrez dhcp et xinetd :
# /etc/init.d/networking restart # pour appliquer les changement faits sur eth0
# /etc/init.d/dhcp3-server restart
# /etc/init.d/xinetd restart
Et voilà ! Il ne reste qu'à booter votre client PXE et à suivre les étape d'installation de BSD. Notez qu'il peut être intéressant d'installer un serveur web sur le serveur et d'en faire un miroir OpenBSD (pratique si la machine sur laquelle est installé BSD n'a pas accès à internet, ou sur un réseau local).
Pour vous familiariser avec l'ambiance OpenBSD (si vous ne connaissez pas), la première chose à faire après l'installation est :
man afterboot
Pour un peu plus d'info :
Derniers commentaires