Guide des technologies

Automatiser l’installation de Fedora/CentOS avec Kickstart

4 min read Linux Mis à jour 26 Sep 2025
Kickstart : automatiser Fedora/CentOS
Kickstart : automatiser Fedora/CentOS

TL;DR

Ce guide montre comment automatiser l’installation de Fedora/CentOS à l’aide d’un fichier Kickstart et de scripts post-installation. Vous trouverez un exemple complet de fichier Kickstart, des bonnes pratiques, une mini-méthodologie de déploiement et une checklist par rôle pour la mise en production.

Introduction

Travailler pour une société de support informatique implique d’installer régulièrement CentOS, Fedora et Red Hat sur des serveurs et postes clients. Un fichier Kickstart permet d’automatiser cette installation et d’exécuter des scripts après l’installation pour ajouter des logiciels et appliquer des configurations.

Si vous n’avez jamais vu de fichier Kickstart, regardez sur une installation Red Hat existante : ouvrez /root et lisez le fichier « anaconda-ks.cfg ». Il contient les paramètres que vous avez choisis lors de l’installation et constitue un exemple utile.

Important: adaptez toujours les mots de passe chiffrés, les noms d’utilisateur et les dépôts externes avant tout déploiement en production.

Exemple de fichier Kickstart (extrait complet)

Voici l’exemple exact que j’ai utilisé pour déployer des portables Fedora avec VMware Player et quelques images virtuelles récupérées via wget. Le bloc suivant est inchangé (exécutable tel quel dans un contexte approprié) :

text
install
cdrom
lang en_US.UTF-8
keyboard uk
timezone --utc Europe/London
rootpw  --iscrypted $$nndedddewfooofcerd3r434
selinux --disabled
# Custom user added
user --name=kevinmitnick --groups=users --password=HackThePlanet
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
firewall --service=ssh
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda
ignoredisk --only-use=sda
part /boot --fstype=ext2 --asprimary --size=500
part /OtherOS --fstype=ext4 --asprimary --size=10240
part swap --asprimary --size=2048
part pv.fedora1000 --grow --asprimary --size=500
volgroup fedora --pesize=32768 pv.fedora1000
logvol /centosVM --fstype=ext4 --name=centosVM --vgname=fedora --size=30720
logvol /home --fstype=ext4 --name=home --vgname=fedora --size=81920
logvol / --fstype=ext4 --name=root --vgname=fedora --size=25600
logvol /windowsVM --fstype=ext4 --name=windowsVM --vgname=fedora --size=40960
bootloader --location=mbr --driveorder=sda --append="nomodeset rhgb quiet"
# setup the network with DHCP
network --device=eth0 --bootproto=dhcp
# packages that will be installed, anything starting with an @ sign is a yum package group.
%packages
@admin-tools
@authoring-and-publishing
@base
@core
@development-libs
@development-tools
@dial-up
@editors
@education
@electronic-lab
@engineering-and-scientific
@eclipse
@fedora-packager
@fonts
@gnome-desktop
@gnome-software-development
@graphical-internet
@graphics
@hardware-support
@input-methods
@java
@java-development
@kde-desktop
@kde-software-development
@legacy-fonts
@office
@online-docs
@printing
@sound-and-video
@system-tools
@text-internet
@x-software-development
@base-x
kpackagekit
system-config-network
scribus
xfsprogs
mtools
gpgme
gpm
rpmdevtools
koji
mercurial
lua
pylint
rpmlint
plague-client
cmake
mock
bzr
pptp
kdeedu-marble
minicom
opencv
yum-priorities
plotutils
openoffice.org-opensymbol-fonts
qtcurve-gtk2
gvfs-obexftp
glibmm24-devel
gnome-vfs2-devel
libsigc++20-devel
libart_lgpl-devel
kdepim
konversation
ImageMagick
digikam
kipi-plugins
kdegraphics
gypsy
gpsd
hdparm
m17n-db-tamil
m17n-db-gujarati
m17n-db-kannada
m17n-db-hindi
gok
m17n-db-oriya
m17n-db-bengali
m17n-contrib-sinhala
m17n-db-assamese
m17n-db-punjabi
iok
m17n-db-telugu
m17n-db-malayalam
xorg-x11-fonts-ISO8859-1-100dpi
urw-fonts
ghostscript-fonts
kdepim
vorbis-tools
amarok
jack-audio-connection-kit
kaffeine
kdemultimedia
vbetool
gssdp
geoclue
createrepo
radeontool
PackageKit-command-not-found
obexftp
enca
festival
ntpdate
xsel
gupnp
rdesktop
fuse
ncftp
mesa-libGLU-devel
xorg-x11-apps
xscreensaver-gl-extras
gdm
xscreensaver-extras
xscreensaver-base
xterm
xorg-x11-resutils
gitk
git-gui
dia
tftp
python-crypto
boost-devel
valgrind
subversion
cvs
thunderbird-lightning
python-sqlite2
asciidoc
glibc-static
tcllib
python-psycopg*
ssh*
perl-ExtUtils-MakeMaker
perl-Net-Telnet
perl-HTML-FromText
libICE.so.6
libSM.so.6
libXmu.so.6
libXp.so.6
libXpm.so.4
libXt.so.6
help2man
cscope
ctags
git
kernel-devel
tftp-server
texlive-latex
texi2html
cmake
transfig
alsa-lib
libXScrnSaver
qt
qt-x11
libasound.so.2

libXss.so.1
libQtDBus.so.4
libQtGui.so.4
pulseaudio
alsa-plugins-pulseaudio
pulseaudio-esound-compat
pulseaudio-libs
pulseaudio-libs-glib2
pulseaudio-module-zeroconf
pulseaudio-libs-zeroconf
xmms-pulse
pulseaudio-module-gconf
wine-pulseaudio
xine-lib-pulseaudio
pulseaudio-utils
pulseaudio-module-bluetooth
padevchooser
paman
paprefs
pavucontrol
pavumeter
ncurses-devel.i686
%end
%post --log=/root/my-post-log
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration   #"
echo "################################"
# prevent future yum updates pulling down & install new kernels (and breaking VMware & video drivers).
echo "exclude=kernel*" >> /etc/yum.conf
# update the system
yum update -y 
# install rpm fusion repo
rpm -Uvh \
http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \
http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
# disable rpmfusion repo, to prevent a yum update contaminating the system with rpmfusion rpms.
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/rpmfusion-*
# install video drivers - enabling rpmfusion repos on the command line.
yum -y --enablerepo=rpmfusion-nonfree --enablerepo=rpmfusion-free  --enablerepo=rpmfusion-free-updates --enablerepo=rpmfusion-nonfree-updates install kmod-nvidia xorg-x11-drv-nvidia-libs.i686 xorg-x11-drv-nvidia-libs.x86_64 akmod-nvidia
# start akmods on boot
chkconfig akmods on
# add pcadmin to sudoers
echo "kevinmitnick ALL=(ALL)       ALL" >> /etc/sudoers
# set perms on vmware partitions so users in the users group can create vm's
chown :users /windowsVM && chmod 775 /windowsVM
chown :users /centosVM && chmod 775 /centosVM
# Make sure the system boots X by setting the system to run level 5
sed -i 's/id:3:initdefault:/id:5:initdefault:/g' /etc/inittab
# install openvpn & configure
wget ftp://$host/pub/VPN/OpenVPN/Linux/openvpnclient-custom-settings-1.6-3.i386.rpm
rpm -ivh openvpnclient-custom-settings-1.6-3.i386.rpm
cd /etc/openvpn/
rm client.conf-*
wget ftp://$host/pub/VPN/OpenVPN/Linux/64bit/client.conf-1
mv client.conf-1 client.conf-0
rm -f /openvpnclient-custom-settings-1.6-3.i386.rpm
# add Kevin Mitnick to group users
usermod -a -G users kevinmitnick
# pull down vmware images
cd /windowsVM/
wget --user=magicinstaller --password=hacktheplanet ftp://magicinstaller:fubar@ftp.$host.com/images/windowsVM.tar.gz
tar -xvzf windowsVM.tar.gz
cd /centosVM/
wget --user=magicinstaller --password=hacktheplanet ftp://magicinstaller:fubar@ftp.$host.com/images/centosVM.tar.gz
tar -xvzf centosVM.tar.gz
# create symlink as instructed
cd /usr/lib; ln -s libtinfo.so libtermcap.so.2
# confirm perms are set correctly
chown -R :users /windowsVM && chmod -R 775 /windowsVM
chown -R :users /centosVM && chmod -R 775 /centosVM
# swap to console 1
chvt 1

Explication des sections importantes

  • En-tête (text / install / cdrom) : définit le mode d’installation. “text” force l’installation en mode texte.
  • Localisation : lang et keyboard doivent correspondre à votre locale.
  • Partitionnement : clearpart, ignoredisk et les directives part/volgroup/logvol contrôlent l’allocation des disques.
  • %packages : liste les groupes et paquets à installer. Les lignes commençant par @ sont des groupes yum.
  • %post : scripts exécutés après l’installation. Utilisez-les pour activer des dépôts, installer des paquets propriétaires et configurer des services.

Bonnes pratiques

  • Ne laissez jamais de mots de passe en clair dans le Kickstart. Utilisez –iscrypted et générez des mots de passe chiffrés.
  • Versionnez vos fichiers Kickstart dans un dépôt Git et testez chaque modification dans une VM par progessive rollout.
  • Isolez les dépôts externes et vérifiez les licences (ex. VMware) avant d’automatiser leur installation.

Quand Kickstart peut échouer (contre-exemples)

  • Matériel très hétérogène : des pilotes propres à certains modèles peuvent empêcher un poste de booter correctement.
  • Dépendances externes indisponibles : si un serveur FTP/HTTP contient des images et est hors service, le %post peut échouer.
  • Modifications manuelles post-déploiement : si un utilisateur change des fichiers système, le processus d’imagerie suivant peut ne plus correspondre.

Alternatives

  • Imaging (Ghost, Clonezilla) : meilleur si vous devez cloner une image binaire exacte sur du matériel identique.
  • Configuration management (Ansible, Puppet, Salt) : mieux pour gestion continue et drift management après le déploiement initial.

Mini-méthodologie pour déployer Kickstart

  1. Rédiger le Kickstart minimal pour votre image de référence.
  2. Tester dans une VM identique au matériel cible.
  3. Ajouter %post pour configurations spécifiques.
  4. Automatiser le téléchargement du Kickstart via PXE/HTTP.
  5. Déployer en petits lots et surveiller les logs (/root/my-post-log).

Checklist par rôle

  • Administrateur système:
    • Vérifier les mots de passe chiffrés.
    • Valider les dépôts externes et signatures RPM.
    • Tester le partitionnement sur VM.
  • Ingénieur de build:
    • Versionner le Kickstart et garder un changelog.
    • Automatiser les tests d’installation.
  • Technicien terrain:
    • Valider le matériel (disques, réseau).
    • Avoir un plan de rollback (clé USB, image Rescue).

1‑ligne glossaire

  • Kickstart: fichier automatisant l’installation d’un système Red Hat‑like.
  • %post: section du Kickstart exécutée après l’installation pour les scripts de configuration.
  • anaconda-ks.cfg: fichier généré par Anaconda reprenant vos choix d’installation.

Résumé

Le fichier Kickstart vous permet d’automatiser des installations complètes et reproductibles de Fedora/CentOS. Testez toujours vos scripts post-installation dans un environnement contrôlé et protégez les secrets. Pour des déploiements très hétérogènes ou pour une gestion continue, combinez Kickstart avec des outils de configuration comme Ansible.

Commentaire: partagez vos questions ci‑dessous ; je répondrai dès que possible. Guide fourni par www.netzensolutions.com.

Auteur
Édition

Matériaux similaires

Désactiver commentaires Facebook — guide rapide
Réseaux sociaux

Désactiver commentaires Facebook — guide rapide

Supprimer l’historique Facebook — Guide complet
Confidentialité

Supprimer l’historique Facebook — Guide complet

Télécharger des vidéos JW Player — guide pratique
Tutoriel vidéo

Télécharger des vidéos JW Player — guide pratique

Configurer Hors du bureau dans Microsoft Teams
Productivité

Configurer Hors du bureau dans Microsoft Teams

Lire les messages supprimés sur WhatsApp
Messagerie

Lire les messages supprimés sur WhatsApp

Récupérer photos iCloud supprimées définitivement
Récupération de données

Récupérer photos iCloud supprimées définitivement