Mise en place d'un serveur TFTP pour l'installation via réseau

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 420
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

Mise en place d'un serveur TFTP pour l'installation via réseau

Message par le Manchot Masqué » ven. 15 nov. 2019, 16:29

Dans une grosse infrastructure comme notre LUG, où les installations sont légions, on peut démarrer les machines via le réseau et faire l'installation à distance via le réseau, sans clé USB ou DVD d'installation.

On installe d'abord les paquets :

Code : Tout sélectionner

apt install tftp tftpd-hpa
On édite /etc/default/tftpd-hpa :

Code : Tout sélectionner

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
# IP fixe du serveur
TFTP_ADDRESS="192.168.X.Y:69"
TFTP_OPTIONS="-4 --secure --create"

#Defaults for tftpd-hpa
RUN_DAEMON="yes"
On monte l'ISO de la Ubuntu (qu'on aura auparavant récupéré...) dans un dossier temporaire, et on copie les fichiers de l'ISO vers le dossier cible :

Code : Tout sélectionner

mkdir /tmp/iso
mount -o loop ubuntu-mate-18.04.3-desktop-amd64.iso /tmp/iso
mkdir /var/lib/tftpboot/ubuntu
cp -a /tmp/iso/* /var/lib/tftpboot/ubuntu
On copie quelques fichiers qui vont nous aider à créer le menu d'accueil :

Code : Tout sélectionner

cp /usr/lib/PXELINUX/* /usr/lib/syslinux/modules/bios/ldlinux.c32 /usr/lib/syslinux/modules/efi64/libutil.c32 /usr/lib/syslinux/modules/efi64/menu.c32 /var/lib/tftpboot
On installe encode NFS pour monter l'image distante

Code : Tout sélectionner

apt install nfs-kernel-server
et on rajoute dans /etc/exports la ligne :

Code : Tout sélectionner

/var/lib/tftpboot/ubuntu *(async,no_root_squash,no_subtree_check,ro,fsid=root)
avant de relancer le service NFS :

Code : Tout sélectionner

systemctl restart nfs-kernel-server
Enfin on créé le menu d'accueil dans le fichier /var/lib/tftpboot/pxelinux.cfg/default :

Code : Tout sélectionner

DEFAULT menu.c32
MENU MARGIN 0
MENU ROWS -9
MENU TABMSG
MENU TABMSGROW -3
MENU CMDLINEROW -3
MENU HELPMSGROW -4
MENU HELPMSGENDROW -1
MENU COLOR SCREEN 30;47
MENU COLOR BORDER 30;47
MENU COLOR TITLE 30;47
MENU COLOR SCROLLBAR 30;47
MENU COLOR SEL 37;40
MENU COLOR UNSEL 30;47
MENU COLOR CMDMARK 30;47
MENU COLOR CMDLINE 30;47
MENU COLOR TABMSG 37;40
MENU COLOR DISABLED 37;40
MENU COLOR HELP 37;40
MENU TITLE Ubuntu Live

LABEL 1 Ubuntu Live
KERNEL ubuntu/casper/vmlinuz
APPEND boot=casper netboot=nfs nfsroot=192.168.X.Y:/var/lib/tftpboot/ubuntu debian-installer/language=fr console-setup/layoutcode=fr console-setup/variantcode=oss initrd=ubuntu/casper/initrd --
On lance le service in.tftpd :

Code : Tout sélectionner

service tftpd-hpa start
et si tout se passe bien, on peut démarrer une autre machine sur le réseau, et faire l'installation en TFTP...

Dernier détail : il faut ouvrir le port UDP 69 si vous l'avez bloqué, sinon ça ne marchera pas !

Répondre