====== 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-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