Démarrage en PXE

Le but de ce how-to est de configurer notre serveur SME pour amorcer des systèmes directement depuis le réseau, en PXE. Finit les LiveCD à graver tout le temps pour dépanner une machine. Il suffit maintenant de la démarrer sur le réseau (toutes les machines récentes supportent cette technique, il suffit de l'activer dans le BIOS).

Pour ça, nous allons utiliser les contributions smeserver-thinclient (http://wiki.contribs.org/Thinclient) et smeserver-tftp-server (http://wiki.contribs.org/Tftp_server).

Chaque système que nous allons installer (nous appellerons un système une distribution) pourra être utilisé de deux façons différentes:

la distribution par défaut démarrera sur un menu qui nous permettra choisir la distribution à démarrer parmi toutes celles disponibles

une distribution par système sera aussi créée

Ceci nous permettra de choisir sur quoi la machine va démarrer (en fonction de sa MAC)

Installation de la contribution thinclient

yum --enablerepo=smecontribs install smeserver-thinclient smeserver-tftp-server
config setprop tftpd status enabled signal-event tftpd-conf

PXELinux

Télécharger la dernière version de syslinux depuis http://www.kernel.org/pub/linux/utils/boot/syslinux/ et extraire le binaire pxelinux.0 dans /tftpboot, ainsi que le fichier menu.c32

cd /tmp
wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.06.tar.bz2
tar xvjf syslinux-4.06.tar.bz2
cd syslinux-4.06
cp core/pxelinux.0 /tftpboot/
cp com32/menu/menu.c32 /tftpboot/
mkdir -p /tftpboot/pxelinux.cfg
cd
rm -rf /tmp/syslinux*
db thinclient set default dist dir "" install Manual prog pxelinux.0
signal-event thinclient-conf

Nus allons créer la base d'un fichier de configuration pxelinux, qui permettra de sélectionner la distribution de notre choix:

vim /tftpboot/pxelinux.cfg/default

et placez-y le code suivant:

default menu.c32
prompt 0
timeout 600

Voilà, nous sommes prêt (enfin, manque plus qu'à ajouter nos distributions)

Gparted

Télécharger la dernière version de l'ISO (en archive zip) de gparted-livecd depuis ici: http://sourceforge.net/projects/gparted/files/gparted-live-stable/

mkdir /tftpboot/gparted/ cd /tmp/ wget http://downloads.sourceforge.net/project/gparted/gparted-live-stable/0.14.1-1/gparted-live-0.14.1-1.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fgparted%2Ffiles%2Fgparted-live-stable%2F0.14.1-1%2F&ts=1356359059&use_mirror=heanet unzip gparted-live-0.14.1-1.zip -d /tftpboot/gparted rm -f gparted-live-0.14.1-1.zip cd /tftpboot/gparted cp -a ../pxelinux.0 ./ mkdir pxelinux.cfg vim pxelinux.cfg/default

Puis, placer ce code dans le fichier default:

default gparted
timeout 1
label gparted
kernel live/vmlinuz
append initrd=live/initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://192.168.7.1/gparted/live/filesystem.squashfs gl_lang=fr_FR gl_kbd=fr keyb=fr gl_batch

Il ne reste plus qu'à définir gparted en tant que distribution dans le panel ThinClient

db thinclient set gparted dist dir "gparted/" install Manual prog pxelinux.0

Clonezilla

Télécharger la dernière version de l'ISO (en archive zip) de clonzilla-live depuis ici: http://www.clonezilla.org/downloads/stable/iso-zip-files.php

mkdir /tftpboot/clonezilla cd /tmp/ wget "http://downloads.sourceforge.net/project/clonezilla/clonezilla_live_stable/1.2.12-67/clonezilla-live-1.2.12-67-i686-pae.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fclonezilla%2Ffiles%2Fclonezilla_live_stable%2F1.2.12-67%2F&ts=1351258428&use_mirror=heanet" unzip clonezilla-live-1.2.12-67-i686-pae.zip -d /tftpboot/clonezilla rm -f clonezilla-live-1.2.12-67-i686-pae.zip cd /tftpboot/clonezilla cp -a ../pxelinux.0 ./ mkdir pxelinux.cfg vim pxelinux.cfg/default

Puis, placer ce code dans le fichier default:

default clonezilla
timeout 1
label clonezilla
kernel live/vmlinuz
append initrd=live/initrd.img boot=live union=aufs noswap noprompt vga=788 ocs_lang=fr_FR.UTF-8 ocs_live_keymap="/usr/share/keymaps/i386/azerty/fr-latin9.kmap.gz" ocs_live_run="ocs-live-general" fetch=tftp://192.168.7.1/clonezilla/filesystem.squashfs

Il ne reste plus qu'à définir clonezilla en tant que distribution dans le panel ThinClient

db thinclient set clonezilla dist dir "clonezilla/" install Manual prog pxelinux.0

Ubuntu

Télécharger l'archive netboot de la version désirée, par exemple http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/netboot/netboot.tar.gz

mkdir -p /tmp/ubuntu mkdir -p /tftpboot/ubuntu/lucid/x86_64 cd /tmp/ubuntu wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/netboot/netboot.tar.gz tar xvzf netboot.tar.gz mv ./* /tftpboot/ubuntu/lucid/x86_64

Puis ajouter la distribution:

db thinclient set lucid-64b dist dir "ubuntu/lucid/x86_64" install Manual prog pxelinux.0

CentOS 5

mkdir -p /tftpboot/centos/5/x86_64 cd /tftpboot/centos/5/x86_64 wget http://mirror.centos.org/centos/5/os/x86_64/images/pxeboot/initrd.img wget http://mirror.centos.org/centos/5/os/x86_64/images/pxeboot/vmlinuz cp -a /tftpboot/{pxelinux.0,menu.c32} ./ mkdir pxelinux.cfg cat <<'EOF' > pxelinux.cfg/default default menu.c32 prompt 0 timeout 1 hiddenmenu label CentOS 5 x86_64 kernel vmlinuz append initrd.img EOF cat <<'EOF' >> /tftpboot/pxelinux.cfg/default label CentOS 5 x86_64 kernel centos/5/x86_64/vmlinuz append initrd=centos/5/x86_64/initrd.img EOF

Puis ajouter la distribution:

db thinclient set centos-5-x86_64 dist dir "centos/5/x86_64" install Manual prog pxelinux.0

CentOS 6

mkdir -p /tftpboot/centos/6/x86_64 cd /tftpboot/centos/6/x86_64 wget http://mirror.centos.org/centos/6/os/x86_64/images/pxeboot/initrd.img wget http://mirror.centos.org/centos/6/os/x86_64/images/pxeboot/vmlinuz cp -a /tftpboot/{pxelinux.0,menu.c32} ./ mkdir pxelinux.cfg cat <<'EOF' > pxelinux.cfg/default default menu.c32 prompt 0 timeout 1 hiddenmenu label CentOS 6 x86_64 kernel vmlinuz append initrd.img EOF cat <<'EOF' >> /tftpboot/pxelinux.cfg/default label CentOS 6 x86_64 kernel centos/6/x86_64/vmlinuz append initrd=centos/6/x86_64/initrd.img EOF

Puis ajouter la distribution:

db thinclient set centos-6-x86_64 dist dir "centos/6/x86_64" install Manual prog pxelinux.0