[RT] Android Ice Cream Sandwich 4.0 Beta 1 po…

 

[RT] Android Ice Cream Sandwich 4.0 Beta 1 pour le Samsung Galaxy S i9000 http://t.co/wEKZop3z – RT @laVeilleTechno

 

[RT] [Infographie] – La guerre des brevets …

 

[RT] [Infographie] – La guerre des brevets – Apple vs Samsung http://t.co/4r8ZdeAd – RT @jfruiz

 

[RT] Linux Mint 201109 Debian (Gnome & Xfce) …

 

[RT] Linux Mint 201109 Debian (Gnome & Xfce) released: http://t.co/61F9s0WU – RT @Linux_Mint – Retour aux fondamentaux, pour les power-users

 

Installation d’un serveur PXE sous Debian Squeeze

 

[Comme le design de ce micro-blog ne permet pas un affichage digne de ce nom, je vous met à disposition une version PDF de cet article.]

Préambule

Comme il m’a été extrêmement difficile de trouver une méthode pour monter un serveur PXE (méthodes non fonctionnelles, articles pas à jours, etc.) j’ai décidé de vous faire partager ici une procédure fonctionnelle basée sur la dernière version de Debian.

Comme vous pourrez le constater, cet article est basé sur la procédure décrite sur Yoann’s Blog, mais remise au goût du jour et adaptée aux évolutions des outils utilisés.

PXE ??

Avant de commencer il semble nécessaire de présenter ce qu’est le PXE et quels en sont les avantages.

L’amorçage PXE (sigle de Pre-boot eXecution Environment) permet à une station de travail de démarrer depuis le réseau en récupérant une image de système d’exploitation qui se trouve sur un serveur. [Wikipedia]

En résumé, au moment du boot (bios) il est possible, sur certaines machines équipée de booter un OS depuis un serveur PXE comme on booterait à partir d’un CD ou d’une clé USB. Sur d’autres machines non équipées pour le PXE, il est possible de booter depuis un CD un mini-OS (gPXE) qui permet le boot PXE, mais j’y reviendrais sûrement d’ici quelques temps.

L’avantage de monter un tel serveur devient vite évident lorsque l’on souhaite installer un même OS sur plusieures machines possèdant des hardwares hétérogènes (pas de Ghost possible). Ce genre de serveurs est donc très largement répandu dans le monde de l’entreprise.

Pré-requis

Pour bien comprendre les prochaines étape de cet article, posons un peu les choses.

Un serveur PXE se compose d’un serveur DHCP (si vous n’en avez pas déjà un), d’un serveur TFTP et du serveur PXE proprement dit.

Le serveur DHCP permet d’attribuer automatiquement une IP à la machine voulant récupérer l’OS et le serveur TFTP permet de transférer les fichiers nécessaires à l’installation.

Pour monter notre serveur, nous allons avoir besoin de:

  • Un PC / Serveur / Machine virtuelle sur le(la)quel(le) est installé Debian Squeeze (6.0)
  • Une connexion Internet pour l’installation des paquets
  • Si vous avez un routeur qui fait office de DHCP sur le réseau, pensez à désactiver ce service.
  • Être root sur la machine lors de cette procédure.

Nous définirions l’environnement ainsi:

  • Plage IP: 192.168.200.0/24
  • IP serveur: 192.168.200.1
  • IP routeur: 192.168.200.254

Installation du DHCP

Nous allons utiliser le serveur « dhcp3″ (différent de « dhcpd ») qui supporte, semble-t-il, correctement le PXE.

Pour l’ensemble des installations et configuration, placez vous en root.

Installation:

apt-get install dhcp3-server

Configuration:

Éditez (vi, nano, pico, …) le fichier /etc/default/dhcp3-server (s’il n’existe pas créez le) de manière à spécifier sur quelle interface doit répondre le serveur DHCP. (j’utilise eth1 car je possède deux cartes réseaux, mais si vous n’en avez qu’une choisissez eth0)

INTERFACES="eth1"

Éditez aussi le fichier /etc/dhcp/dhcpd.conf :

authoritative; ddns-update-style interim; ignore client-updates;
subnet 192.168.200.0 netmask 255.255.255.0 {
 range 192.168.200.120 192.168.200.145;
 option domain-name-servers 192.168.200.1;
 option routers 192.168.200.254;
 option subnet-mask 255.255.255.0;
 option broadcast-address 192.168.200.255;
 default-lease-time 43200;
 max-lease-time 86400;
 server-name "PXE";
 next-server 192.168.200.1;
 filename "pxe/pxelinux.0";
}

Vous noterez qu’ici j’ai configuré le DHCP de manière à ne distribuer que 25 adresses (.120 à .145) … à vous d’adapter selon vos besoins.

Voici la commande permettant d’arrêter et relancer le serveur DHCP:

/etc/init.d/isc-dhcp-server stop
/etc/init.d/isc-dhcp-server start

Jusqu’ici, nous n’avons pas configuré l’interface réseau sur laquelle va répondre le DHCP (toujours eth0 ou eth1 selon votre cas). Si une telle configuration doit vous priver du net, attendez la fin des installations avant de la mettre en place.

ifconfig eth1 up
ifconfig eth1 192.168.200.1/24

Si vous souhaitez faire cette configuration de manière permanente, éditez le fichier/etc/network/interfaces et affectez une adresse statique.

Installation du serveur TFTP

Nous choisirons ici d’installer le serveur « tftpd-hpa » plutôt que « atftpd » ou « tftpd ».

Installation:

apt-get install tftpd-hpa

Lorsqu’il vous sera demandé d’entrer le répertoire dans lequel doit officier le serveur, entrez: /tftpboot

Configuration:

Éditez ensuite le fichier /etc/default/tftpd-hpa:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="192.168.200.1:69"
TFTP_OPTIONS="--secure"

Éditez enfin le fichier /etc/inetd.conf et commentez (#) la ligne suivante:

#:BOOT: TFTP service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
#tftp dgram udp4 wait nobody /usr/sbin/tcpd /usr/sbin/in.tftp [...]

Les commandes pour arrêter et relancer le serveur sont:

/etc/init.d/tftpd-hpa stop
/etc/init.d/tftpd-hpa start

Enfin, il faut crée le répertoire dans lequel va officier le serveur TFTP:

mkdir /tftpboot
chmod 777 /tftpboot -R

Notez que les droit sont ici placés en 777 et qu’une fois votre serveur 100% fonctionnel il serait plus prudent de sécuriser tout cela. ;D

Installation de PXE

Nous allons maintenant installer le serveur PXE proprement dit.

Installation:

apt-get install pxe syslinux

Configuration:

Editez le fichier /etc/pxe.conf de manière à avoir les paramètres suivant (adaptez selon eth0 ou eth1):

# which interface to use interface=eth1 default_address=192.168.200.1
# tftpd base dir
tftpdbase=/tftpboot

Les commandes pour arrêter et relancer le serveur sont:

/etc/init.d/pxe stop
/etc/init.d/pxe start

Nous avons maintenant terminé l’installation des composants principaux du système. La prochaine étape consiste ajouter à notre serveur PXE l’OS à installer sur les machines.

Préparation du serveur

Pour commencer, comme votre serveur TFTP peut servir à plusieurs usages, on va créer un sous dossier spécialement pour le PXE:

mkdir /tftpboot/pxe/

Maintenant  il est nécessaire de récupérer l’image de l’OS. Ici nous choisirons d’installer Debian Lenny, mais n’importe quelle version de Debian / Ubuntu est aussi compatible avec cette procédure.

Téléchargement de l’image netboot

wget http://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz -O /tmp/netboot-debian-lenny-i386.tar.gz

Création du répertoire temporaire

mkdir -p /tmp/netboot-debian-lenny-i386/

Décompression de l’image dans le répertoire temporaire

cd /tmp/netboot-debian-lenny-i386/; tar zxvf /tmp/netboot-debian-lenny-i386.tar.gz

Création de l’arborescence

mkdir -p /tftpboot/pxe/
mkdir -p /tftpboot/pxe/boot-screens/
mkdir -p /tftpboot/pxe/pxelinux.cfg/
mkdir -p /tftpboot/pxe/debian-lenny/i386/

Copie des fichiers depuis le répertoire temporaire vers l’arborescence netboot

cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/pxelinux.0 /tftpboot/pxe/
cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/boot-screens/splash.png /tftpboot/pxe/boot-screens/
cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/boot-screens/vesamenu.c32 /tftpboot/pxe/boot-screens/
cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/initrd.gz /tftpboot/pxe/debian-lenny/i386/
cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/linux /tftpboot/pxe/debian-lenny/i386/

On crée ensuite le fichier /tftpboot/pxe/pxelinux.cfg/default qui permet de configurer le boot de l’OS et surtout de spécifier le fichier permettant d’afficher le menu (comme sur une installation Debian classique).

include /boot-screens/menu.cfg
default /boot-screens/vesamenu.c32
prompt 0
timeout 0

Vient le tours du fichier /tftpboot/pxe/boot-screens/menu.cfg permettant la personnalisation du menu:

menu hshift 13
 menu width 49
menu title LTU Installer boot menu
 menu color title        * #FFFFFFFF *
 menu color border       * #00000000 #00000000 none
 menu color sel          * #ffffffff #76a1d0ff *
 menu color hotsel       1;7;37;40 #ffffffff #76a1d0ff *
 menu color tabmsg       * #ffffffff #00000000 *
 menu vshift 12
 menu rows 10
 menu tabmsgrow 16
 menu timeoutrow 17
 menu tabmsg Press ENTER to boot or TAB to edit a menu entry
 menu autoboot Starting Local System in # seconds
prompt 0
label bootlocal
 menu label ^Boot from local disk
 menu default
 localboot 0
 timeout 200           #timeout which is displayed, Wait 10 seconds unless the user types somethin
 totaltimeout 1200     #timeout which executes the default definitely, always boot after 2 minutes
menu begin debian
 menu title Debian
 label mainmenu
 menu label ^Back..
 menu exit
 menu begin debian-lenny
 menu title Debian Lenny
 label mainmenu
 menu label ^Back..
 menu exit
 menu begin debian-lenny-i386
 menu title Debian Lenny i386
 label mainmenu
 menu label ^Back..
 menu exit
 default install
 label install
 menu label ^Install
 kernel debian-lenny/i386/linux
 append vga=normal initrd=debian-lenny/i386/initrd.gz -- quiet
 label expert
 menu label ^Expert install
 kernel debian-lenny/i386/linux
 append priority=low vga=normal initrd=debian-lenny/i386/initrd.gz --
 label rescue
 menu label ^Rescue mode
 kernel debian-lenny/i386/linux
 append vga=normal initrd=debian-lenny/i386/initrd.gz rescue/enable=true -- quiet
 label auto
 menu label ^Automated install
 kernel debian-lenny/i386/linux
 append auto=true priority=critical vga=normal initrd=debian-lenny/i386/initrd.gz -- quiet
 menu end
 menu end
menu end

Une fois tous ces fichiers en place vous devriez obtenir l’arborescence suivante:

/tftpboot/:
 pxe
/tftpboot/pxe:
 boot-screens  debian-lenny  pxelinux.0  pxelinux.cfg
/tftpboot/pxe/boot-screens:
 menu.cfg  splash.png  vesamenu.c32
/tftpboot/pxe/debian-lenny:
 i386
/tftpboot/pxe/debian-lenny/i386:
 initrd.gz  linux
/tftpboot/pxe/pxelinux.cfg:
 default

Lancement du serveur

Si vous n’aviez pas modifier l’IP de votre interface réseau, c’est le moment de le faire.
Lancez ensuite le serveur PXE, TFTP puis DHCP (pensez à désactiver tout autre DHCP sur votre réseau).

Normalement tous les serveurs doivent se lancer sans erreurs. Un tail -f /var/logs/syslog devrait vous en apprendre plus à ce sujet.

Vous pouvez tester le serveur TFTP avec un client TFTP tel que « atftp ».

Boot

Maintenant que le serveur fonctionne, il est temps de booter votre / vos machine(s) et de lancer l’installation. Pour cela dans les options de boot choisissez Network Boot (ou toute autre formulation s’en rapprochant).

Dans les logs (syslog) vous devriez constater que votre DHCP à attribué des IPs et sur les machines le menu de choix de l’installation doit apparaître.

Lancez l’installation et enjoy !

Autres OS

Cet article ne décrit pour le moment que l’installation de système de type Debian. Pour d’autres OS Linux je vous renvoie à l’article ayant inspiré celui-ci qui traite notamment de CentOS et Fedora.


 

 

[RT] Vidéo Microsoft : un tour dans les data…

 

[RT] Vidéo Microsoft : un tour dans les data centers http://t.co/nDIYwrj – RT @Rmanniez

 

[RT] Les langages de programmation http://t.c…

 

[RT] Les langages de programmation http://t.co/lf0t06t – RT @korben_rss

 

[RT] WinParrot : un logiciel d’automatisation…

 

[RT] WinParrot : un logiciel d’automatisation de tâches pour Windows http://t.co/2yTmbfC – RT @laVeilleTechno

 

[INFO] If Microsoft’s Yearly Revenue Is “…

 

[INFO] If Microsoft’s Yearly Revenue Is “Wow!”, Apple’s Is “Holy Sh*t!” – http://t.co/mF8h4B1