Installation serveur PXE pour installation
Un article de Casys (Canadian Sysadmins).
Auteur: Thomas Boutry
Sommaire |
Description
Nous perdons beaucoup de temps dans l'installation de nos serveurs, en plus de la perte de temps nous sommes sujet à des risques d'erreurs humaines, dernier point nous voulons avoir des serveurs le plus uniforme possible. Je pourrais aussi dire que nous économisons le gravage de CD mais c'est le dernier de mes soucis.
La solution est d'automatiser la tâche d'installation, le serveur ou la station de travail boot sur le réseau et grâce à un petit menu nous allons choisir le type d'installation que l'on désire.
Installation
Nous allons installer les applications sur le serveurs : - Xinetd va nous permettre de faire la gestion du port 69/udp pour le serveur tftp - tftpd-hpa est le serveur tftp qui nous permettre de fournir le kernel au portable qui boot - dhcp3-server founira l'adresse ip indispensable pour faire une installation réseaux - lftp qui doit sûrement être déjà installé nous servira a tester le setup.
sudo apt-get install xinetd tftpd-hpa dhcp3-server lftp
Nous pouvons, malgré les erreurs affiché a l'ecran valider que le service tftp est en fonction :
sudo netstat -uap | grep tftp
ceci doit vous fournir le résultat suivant :
udp 0 0 *:tftp *:* 8628/xinetd
Comme toujours l'installation n'est pas longue à coté de la configuration :P
Configuration
Configuration du serveur DHCP
ATTENTION : Si vous avez déjà un serveur DHCP sur le réseau vous risquez d'avoir des problèmes, il est important soit d'arréter l'autre serveur ou d'appliquer les configurations suivantes à ce dernier.
- Copie du fichier original et supprésion de l'ancienne configue.
sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd-ori-`date +%F`.conf
- Création de notre configuration
sudo mkdir /etc/dhcp3/RCS sudo vi /etc/dhcp3/dhcpd.conf
# dhcp3.conf
#
# $Id$
#
# Configuration file for dhcpd.
#
# Boutry Thomas 10 Juillet 2008
#
option domain-name-servers 10.10.10.10,24.200.241.37,24.201.245.77,24.200.243.189;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.201 10.10.10.220;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.10.255;
option routers 10.10.10.1;
}
# EOF
sudo ci -u /etc/dhcp3/dhcpd.conf
L'instruction filename "pxelinux.0"; indique le fichier qui sera envoyé à la station qui boot en PXE , si vous ne pouvez pas remplacer le serveur DHCP actuelle il vous faudra mettre cette ligne dans la configuration du serveur DHCP actuelle et ajouté l'instruction : next-server ip_de_votre_serveur;
- Configuration des interfaces pour le serveur DHCP
sudo mkdir /etc/default/RCS sudo vi /etc/default/dhcp3-server
INTERFACES="eth0"
Ajouter le nom de toutes les interfaces pour qui le serveur doit fournir le DHCP.
sudo ci -u /etc/default/dhcp3-server
- Redemarrez le service dhcp
sudo /etc/init.d/dhcp3-server restart
Configuration du serveur tftp (PXE)
Pour que le portable puisse démarrer nous avons besoin d'un kernel afin de pouvoir initialiser le matériel. Dans le cas présent je vais utilisez ce qui est fournie avec Ubuntu , ceci sera valide pour toutes les distribution Unix.
- Création des répertoires:
Par défault le serveur tftp prend ces fichier dans le répertoire /var/lib/tftpboot/
sudo mkdir -p /var/lib/tftpboot/ubuntu/hardy sudo mkdir -p /var/lib/tftpboot/ubuntu/intrepid sudo mkdir -p /var/lib/tftpboot/centos/5/ sudo mkdir -p /var/lib/tftpboot/freebsd/7.0/boot
Installation de Ubuntu (Hardy/Intrepid)
Ici nous allons faire l'installation automatique de Ubuntu Hardy et de Intrepid cependant ceci s'applique à toutes les distribitions Ubuntu.
- ATTENTION confirmément au bug décrit dans ce thread:
https://bugs.launchpad.net/ubuntu/+source/net-retriever/+bug/234486
Il ne faut pas prendre l'image d'installation d'origine de Hardy car il est bugé utilisé le lien "update" suivant : http://archive.ubuntu.com/ubuntu/dists/hardy-updates/main/installer-i386/current/images/netboot/ubuntu-installer/i386/
- Récupération des fichiers pour l'installation réseau
mkdir /tmp/ubuntu-intrepid-install mkdir /tmp/ubuntu-hardy-install cd /tmp/ubuntu-intrepid-install lftp -c "open http://archive.ubuntu.com/ubuntu/dists/intrepid/main/installer-i386/current/images/; mirror netboot " cd /tmp/ubuntu-hardy-install lftp -c "open http://archive.ubuntu.com/ubuntu/dists/hardy-updates/main/installer-i386/current/images/; mirror netboot "
- Copie des fichiers d'installation dans le répertoire du serveur tftp
sudo mv /tmp/ubuntu-hardy-install/netboot/ubuntu-installer/* /var/lib/tftpboot/ubuntu/hardy/ sudo mv /tmp/ubuntu-intrepid-install/netboot/ubuntu-installer/* /var/lib/tftpboot/ubuntu/intrepid/
Installation de CentOs
Ici nous allons faire l'installation automatique de CentOs 5.5 cependant ceci s'applique à toutes les distributions Centos
- Récupération des fichiers pour l'installation réseau
cd /var/lib/tftpboot/centos/5/ sudo wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5/os/i386/images/pxeboot/initrd.img sudo wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5/os/i386/images/pxeboot/vmlinuz
Installation de FreeBSD =
Ici nous allons faire l'installation automatique de FreeBSD 7.0 cependant ceci s'applique pour tous les BSD
- Récupération des fichier pour l'installation réseau
cd /var/lib/tftpboot/freebsd/7.0/
Configuration du serveur PXE pour les distributions Unix
- Copie des fichiers de configuration lors de la connection tftp
sudo mv /tmp/ubuntu-hardy-install/netboot/* /var/lib/tftpboot/
La dernière opération ne devrait copier que les fichiers relatif au démarrage par le système PXE tftp , en d'autre mot les fichiers suivant :
boot.img.gz mini.iso netboot.tar.gz pxelinux.0 pxelinux.cfg/
Contrairement au fichier d'installation ces fichiers sont commun a toutes les distrobutions.
- Edition du fichiers d'option du boot
sudo vi /var/lib/tftpboot/pxelinux.cfg/default
DISPLAY boot.txt
DEFAULT Ubuntu_hardy_install
LABEL Ubuntu_hardy_install
kernel ubuntu/hardy/i386/linux
append vga=normal initrd=ubuntu/hardy/i386/initrd.gz --
LABEL Ubuntu_hardy_cli
kernel ubuntu/hardy/i386/linux
append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu/hardy/i386/initrd.gz --
LABEL Ubuntu_hardy_expert
kernel ubuntu/hardy/i386/linux
append priority=low vga=normal initrd=ubuntu/hardy/i386/initrd.gz --
LABEL Ubuntu_hardy_rescue
kernel ubuntu/hardy/i386/linux
append vga=normal initrd=ubuntu/hardy/i386/initrd.gz rescue/enable=true --
LABEL Ubuntu_intrepid_install
kernel ubuntu/intrepid/i386/linux
append vga=normal initrd=ubuntu/intrepid/i386/initrd.gz --
LABEL Ubuntu_intrepid_cli
kernel ubuntu/intrepid/i386/linux
append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu/intrepid/i386/initrd.gz --
LABEL Ubuntu_intrepid_expert
kernel ubuntu/intrepid/i386/linux
append priority=low vga=normal initrd=ubuntu/intrepid/i386/initrd.gz --
LABEL Ubuntu_intrepid_rescue
kernel ubuntu/intrepid/i386/linux
append vga=normal initrd=ubuntu/intrepid/i386/initrd.gz rescue/enable=true --
LABEL Centos_5
kernel centos/5/vmlinuz
append initrd=centos/5/initrd.img
PROMPT 1
TIMEOUT 1000
- Création de la liste des options:
sudo vi /var/lib/tftpboot/boot.txt
Available Boot Options:
=======================
UBUNTU:
HARDY:
- Ubuntu_hardy_server
- Ubuntu_hardy_desktop
INTREPID:
- Ubuntu_intrepid_server
- Ubuntu_intrepid_desktop
CENTOS:
- Centos_5
FREEBSD:
- FreeBSD_7
Références
http://www.howtoforge.com/ubuntu_pxe_install_server : Setting Up A PXE Install Server For Multiple Linux Distributions With Ubuntu Edgy Eft
http://www.diablotins.org/index.php/Installation_PXE
http://wiki.netbsd.se/How_to_mount_FFS_partition_under_Linux
http://phaq.phunsites.net/2007/09/20/chaining-freebsds-pxeboot-with-pxelinux/
http://phaq.phunsites.net/2007/02/14/convert-freebsd-iso-image-for-pxe-bootstrap/
