Table des matières

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:

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-5.00.tar.bz2
tar xvjf syslinux-5.00.tar.bz2
cd syslinux-5.00
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.16.1-1/gparted-live-0.16.1-1-i686-pae.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fgparted%2Ffiles%2Fgparted-live-stable%2F0.16.1-1%2F&ts=1373878939&use_mirror=garr
unzip gparted-live-0.16.1-1-i686-pae.zip -d /tftpboot/gparted
rm -f gparted-live-0.16.1-1-i686-pae.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 config 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/2.0.1-15/clonezilla-live-2.0.1-15-i686-pae.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fclonezilla%2Ffiles%2Fclonezilla_live_stable%2F2.0.1-15%2F&ts=1356535216&use_mirror=garr"
unzip clonezilla-live-2.0.1-15-i686-pae.zip -d /tftpboot/clonezilla
rm -f clonezilla-live-2.0.1-15-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 config locales=fr_FR.UTF-8 keyboard-layouts=fr union=aufs noswap noprompt vga=788 ocs_live_run="ocs-live-general" fetch=tftp://192.168.7.1/clonezilla/live/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/vivid/main/installer-amd64/current/images/netboot/netboot.tar.gz

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

Puis ajouter la distribution:

db thinclient set vivid-64b dist dir "ubuntu/vivid/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=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

CentOS 7

mkdir -p /tftpboot/centos/7/x86_64
cd /tftpboot/centos/7/x86_64
wget http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/initrd.img
wget http://mirror.centos.org/centos/7/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 7 x86_64
   kernel vmlinuz
   append initrd=initrd.img
 
EOF
 
cat <<'EOF' >> /tftpboot/pxelinux.cfg/default
 
label CentOS 7 x86_64
   kernel centos/7/x86_64/vmlinuz
   append initrd=centos/7/x86_64/initrd.img inst.repo=http://mirror.centos.org/centos/7/os/x86_64/
 
EOF

Puis ajouter la distribution:

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