Installation automatique CentOS
Tout comme l'installeur de Debian, celui de CentOS et de ses dérivés (appelé Anaconda) permet l'automatisation des étapes d'installation. Kickstart est tout de même bien plus propre que Preseed selon moi (vous en jugerez par vous même à la lecture de celui-ci).
Concepts
Afin de réaliser cette automatisation, Nous allons utiliser la méthode Kickstart, qui comme Preseed, est un simple fichier texte. Il contient donc les réponses aux questions posées par l'installeur afin que ces dernières ne soient pas redemandées lors de la mise en place du système.
Je décrirai la méthode à effectuée via le cédérom d'installation ainsi que via un amorçage PXE.
Préparation
Contenu du fichier Kickstart
Voici les éléments qui me sont utiles pour une installation basique d'un Linux CentOS sans interface graphique.
Création du répertoire de travail sur le serveur WEB
mkdir /srv/tftp/scripts/kickstart
Création du fichier Kickstart
vim /srv/tftp/scripts/kickstart/kickstart.cfg
#Version=CentOS7
# Hashage des mots de passes dans /etc/shadow
auth --enableshadow --passalgo=sha512
# Utiliser le Cédérom pour l'installation
#cdrom
# où
# Utiliser un dépôt sur le réseau
url --url="http://192.168.183.254/images/centos7/"
# Installer plutôt que de mettre à jour
install
# Lancer l'installeur au démarrage
firstboot --enable
ignoredisk --only-use=sda
# Mappage clavier
keyboard fr-latin9
# Langage de la console
lang fr_FR.UTF-8
# Informations réseau
network --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network --hostname=localhost.localdomain
# Mot de passe root
rootpw --iscrypted $6$/hFmDFvl$UPX0S.K9jG6M17jJ0sN10t3F4sDu35lLHAqCZImgKeJ/vUbo7ZR2FpRc0dtMl/QU2xg2Cwbkt8178h.vdGTHP/
# Fuseau horaire
timezone Europe/Paris --isUtc --nontp
user --name=yohan --password $6$aXGRXtMP$6O/DVNVy19HOtAM8b0EkXpaiSV91SmS0VOq/eYWnxUJ4D/ltvwG/kiV.ebNOrwcliFtmJo8/8U.YkzxsBk5Zt/ --iscrypted --gecos="Yohan Charbi"
# Chargeur d'amorçage
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Nettoyage des informations de la partition
#clearpart --none --initlabel
clearpart --all --initlabel
%packages
@core
%end
#Éteindre la machine après l'installation
poweroff
Mise à disposition
Pour cette partie il est nécessaire d'avoir en votre possession un support d'installation téléchargeable ici.
Vous pouvez utiliser la commande suivante pour avoir le média que j'ai utilisé pour cette documentation
wget http://fr.mirror.babylon.network/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso -P /tmp/
Via le cédérom
- Pour le récupérer depuis le réseau. Au démarrage de l'installeur, au niveau du menu, appuyez sur
<tab>
et ajoutez l'option suivante:ks=http://192.168.181.11/scripts/kickstart/kickstart.cfg
avant de valider l'entrée pour commencer l'installation. - Pour une indépendance du réseau, via une clé USB, il faut:
- Mettre le fichier kickstart.cfg sur une clé USB
- Brancher la clé (ou le CD) d'installation et la clé contenant le fichier Kickstart
- Démarrer une première fois normalement sur l'installeur et faire
<ctrl>+<alt>+<F2>
pour entrer dans un shell bash et identifier le nom de la clé Kickstart avec unlsblk
- Redémarrer et utiliser
<tab>
dans le menu pour ajouter l'option suivante:ks=hd:sdc:/kickstart.cfg
(sdc étant le nom de la première partition de ma clé - gnome-disks ne s’embarrasse pas avec les sdc1,2...) et valider l'entrée pour installer CentOS avec vos paramètres pré-définis
Via PXE
Je part du principe que votre serveur PXE est déjà fonctionnel.
ATTENTION
Avec cette méthode, la machine à installer doit avoir au minimum 1536mo de RAM.Montage du cédérom d'installation de CentOS pour en extraire les outils nécessaires au bon fonctionnement de l'installeur
mount /tmp/CentOS-7-x86_64-Minimal-1708.iso /mnt
Création des répertoires de travail
mkdir -p /srv/tftp/images/centos /srv/tftp/noyaux/centos/pxeboot
Copie du noyau et de l'initrd
cp /mnt/images/pxeboot/vmlinuz /mnt/images/pxeboot/initrd.img /srv/tftp/noyaux/centos/pxeboot/
ASTUCE
Vous pouvez utiliser la commande qui suit pour vous épargnez les détails sur les copies de cette section:cp -ra /mnt/LiveOS/ /mnt/.treeinfo /mnt/repodata/ /mnt/Packages/ /srv/tftp/images/centos7/
.Copie de l'image de l'installeur
cp -ra /mnt/LiveOS/ /srv/tftp/images/centos7/
Copie du fichier d'information sur la distribution
cp -ra /mnt/.treeinfo /srv/tftp/images/centos7/
Copie des informations sur le dépôt
cp -ra /mnt/repodata/ /srv/tftp/images/centos7/
Copie du dépôt du cédérom
cp -ra /mnt/Packages/ /srv/tftp/images/centos7/
Ajouter l'entrée correspondante dans le menu PXE
vim /srv/tftp/pxelinux.cfg/default
LABEL Installation_CentOS_auto
MENU LABEL Installer CentOS 7 auto
KERNEL http://192.168.183.254/noyaux/centos/pxeboot/vmlinuz quiet
APPEND vga=normal initrd=http://192.168.183.254/noyaux/centos/pxeboot/initrd.img ks=http://192.168.183.254/scripts/kickstart/kickstart.cfg