Installation automatisée

Démarrage à partir du réseau

Objectif : avant d'installer la machine, nous allons mettre en place un environnement de démarrage à partir du réseau basé sur le protocole PXE.

  1. Vérifiez dans la configuration réseau de vos clients que le type de la carte réseau est bien Intel PRO/1000 T Server (cette carte gère le boot PXE).
  2. Vérifiez que vos clients ont 3Go de mémoire centrale (nécessaire pour monter en mémoire les images d'installation).
  3. Modifiez la configuration du serveur DHCP (/etc/dhcp/dhcpd.conf sur VM) pour ajouter des informations de démarrage (nom du serveur de démarrage et fichier de démarrage) :
    subnet 192.168.0.0 netmask 255.255.255.0 {
      ### normalement déjà présent
      range 192.168.0.100 192.168.0.200;
      option domain-name-servers  192.168.0.10;
      option domain-name "idl.fr";
      option subnet-mask  255.255.255.0;
      option routers      192.168.0.10;
      default-lease-time  600;
      max-lease-time      7200;
    
      ### fichier et serveur de démarrage
      filename      "boot-vm/pxelinux.0";   
      next-server   192.168.0.10;
    }
    
  4. Tentez un démarrage réseau de C1 (F12 au démarrage puis l). Vous devez observer les tentatives de chargement qui échouent.
  5. Pour que le matériel de démarrage soit accessible nous allons installer un serveur TFTP (Trivial FTP) :
    dnf -y install tftp-server xinetd
    systemctl enable tftp
    systemctl enable xinetd
    systemctl start xinetd
    systemctl start tftp
    
    Vérifiez que le serveur TFTP (via le démon xinetd) est bien à l'écoute :
    netstat -uap|grep tftp
    
    Le service TFTP publie le contenu du répertoire /var/lib/tftpboot. Les clients peuvent y accéder sans mot de passe (commande tftp).
  6. Nous allons maintenant préparer un répertoire (/var/lib/tftpboot/boot-vm) qui va regrouper les fichiers nécessaires au démarrage de notre client.
    ### fichiers utiles
    dnf -y install syslinux
    
    ### répertoires TFTP
    mkdir /var/lib/tftpboot/boot-vm
    mkdir /var/lib/tftpboot/boot-vm/pxelinux.cfg
    
    ### mise en place des fichiers
    cd /var/lib/tftpboot/boot-vm
    
    cp -v /usr/share/syslinux/pxelinux.0   .
    cp -v /usr/share/syslinux/menu.c32     .
    cp -v /usr/share/syslinux/ldlinux.c32  .
    cp -v /usr/share/syslinux/libutil.c32  .
    cp -v /usr/share/syslinux/vesamenu.c32 .
    cp -v /usr/share/syslinux/libcom32.c32 .
    
    wget https://mirrors.ircam.fr/pub/CentOS/8-stream/BaseOS/x86_64/os/images/pxeboot/initrd.img
    wget https://mirrors.ircam.fr/pub/CentOS/8-stream/BaseOS/x86_64/os/images/pxeboot/vmlinuz
    
    Préparez le menu de démarrage dans le fichier /var/lib/tftpboot/boot-vm/pxelinux.cfg/default :
    cat <<FIN >/var/lib/tftpboot/boot-vm/pxelinux.cfg/default
    DEFAULT vesamenu.c32
    PROMPT 1
    TIMEOUT 60
    NOESCAPE 1
    
    LABEL Centos Stream 8
      KERNEL vmlinuz
      APPEND initrd=initrd.img ip=dhcp inst.repo=http://mirrors.ircam.fr/pub/CentOS/8-stream/BaseOS/x86_64/os
    
    LABEL Centos Stream 8 Rescue
      KERNEL vmlinuz
      APPEND initrd=initrd.img ip=dhcp inst.repo=http://mirrors.ircam.fr/pub/CentOS/8-stream/BaseOS/x86_64/os rescue
    
    FIN
    
  7. Vous pouvez maintenant tentez un démarrage à partir du réseau.

Installation automatisée

Principe : Pour préparer un grand nombre de postes de travail, les installations automatisées se proposent de stocker les réponses aux questions posées par le logiciel d'installation afin d'automatiser et d'accélérer le processus.

Pour les distributions de type Redhat, la technologie se nomme kickstart. J'ai préparé un fichier type disponible à cette adresse : https://jean-luc-massat.pedaweb.univ-amu.fr/ens/asr/config.ks.

Une installation complètement automatisée est constituée de cinq étapes :

  1. Démarrage de la machine par le BIOS,
  2. Amorçage par la carte réseau (protocole PXE),
    • Configuration de l'adressage IP (par DHCP),
    • Chargement du noyau identifié par PXE (TFTP),
    • Lancement du noyau,
  3. Lancement du logiciel d'installation (anaconda),
  4. Lecture du fichier kickstart,
  5. installation automatisée.

Nous allons maintenant préparer les trois dernières étapes. Installez le fichier de configuration Kickstart sur votre VM principale :

# installation de httpd
dnf -y install httpd
systemctl --now enable httpd
# téléchargement et mise en place du fichier
cd /var/www/html/
wget https://jean-luc-massat.pedaweb.univ-amu.fr/ens/asr/config.ks
chmod a+r config.ks
# vérification
curl http://10.0.2.15/config.ks

Ajoutez au fichier /var/lib/tftpboot/boot-vm/pxelinux.cfg/default les lignes ci-dessous (Attention, il y a une ligne qui est longue) :

LABEL Centos 8 Kickstart
  MENU DEFAULT
  KERNEL vmlinuz
  APPEND initrd=initrd.img ip=dhcp inst.repo=http://mirrors.ircam.fr/pub/CentOS/8-stream/BaseOS/x86_64/os  inst.ks=http://10.0.2.15/config.ks

Vous indiquez sur la ligne de commande du noyau la position du fichier des réponses. le logiciel anaconda va récupérer cette information afin de charger le fichier. L'installation doit se dérouler sans question.

Vous trouverez sur cette documentation une description plus précise des fichiers Kickstart. Modifiez le modèle proposé afin de configurer votre machine après l'installation (script placé dans la clause post). À titre d'exemple,

  • assurez-vous que le service httpd est lancé,
  • mettez en place un message de login (/etc/motd),
  • mettez en place un message de présentation (/etc/issue),

Relancez une nouvelle installation.