Table des matières
Dans l’article, je partagerai la liste des exemples de commandes RHEL / CentOS 8 kickstart que vous pouvez utiliser pour automatiser l’installation de Red Hat et CentOS. Je n’ai pas couvert l’étape d’installation de %pre
et %post
dans cet article car cela pourrait simplement allonger cet article déjà long. Bien que je vais essayer de couvrir les commandes kickstart les plus utilisées dans un environnement de production en temps réel.
Générateur Kickstart
Vous pouvez utiliser l’outil de générateur Kickstart officiel de Red Hat pour créer votre fichier kickstart afin d’automatiser l’installation.
Suivez simplement les options à l’écran et vous obtiendrez un exemple de fichier kickstart basé sur votre choix.
Validateur Kickstart
Avant de lancer l’installation à l’aide du fichier kickstart, il est recommandé de valider le contenu du fichier de configuration Kickstart. Installez pykickstart
pour installer l’outil ksvalidator
# dnf -y install pykickstart
Pour valider le fichier kickstart, fournissez le chemin absolu et le fichier kickstart avec ksvalidator
:
# ksvalidator kickstart.conf
Vous trouverez ci-dessous la liste des commandes Kickstart que vous pouvez ajouter manuellement et créer votre propre fichier Kickstart pour automatiser l’ensemble du processus d’installation de Red Hat/CentOS. À la fin de l’article, j’ai joint un exemple de fichier de configuration kickstart que j’ai utilisé pour installer une machine virtuelle dans Oracle VirtualBox
Ajouter un commentaire (facultatif)
Vous pouvez choisir d’ajouter un commentaire pour identifier le Kickstart comme je l’ai ajouté pour l’identification. Cette option est facultative et vous pouvez choisir d’ignorer:
# version=RHEL8# RHEL/CentOS 8 Kickstart Example
Effectuer une vérification du support
Vous pouvez vérifier le support avant de démarrer l’installation
Commande Kickstart – mediacheck
Cette commande force le programme d’installation à effectuer une vérification du support avant de démarrer l’installation.
Cette commande nécessite que les installations soient suivies, elle est donc désactivée par défaut.
Syntaxe :
mediacheck
Mode d’installation
Pour une installation entièrement automatique, vous devez soit spécifier l’un des modes disponibles dans le fichier Kickstart:
Commande Kickstart – graphique
- Il effectue l’installation Kickstart en mode graphique.
- Vous pouvez également le combiner avec
--non-interactive
qui effectue l’installation dans un mode complètement non interactif. - Ce mode met fin à l’installation lorsque l’interaction de l’utilisateur est requise.
Commande Kickstart-text
- Il effectue l’installation Kickstart en mode texte.
- Vous pouvez également le combiner avec
--non-interactive
qui effectue l’installation dans un mode complètement non interactif. - Ce mode met fin à l’installation lorsque l’interaction de l’utilisateur est requise.
Commande Kickstart – cmdline
- Il effectue l’installation dans un mode de ligne de commande complètement non interactif.
- Toute invite d’interaction arrête l’installation.
- Cette commande n’a pas d’options.
Dans mon exemple de démarrage RHEL / CentOS 8, je choisis text
comme méthode d’installation préférée
# Install in text modetext
Créer un dépôt supplémentaire
Vous pouvez configurer des dépôts yum supplémentaires qui peuvent être utilisés comme sources pour l’installation des paquets.
Commande Kickstart-repo
- Par défaut, tous les dépôts fournis sont automatiquement créés et montés sur
/run/install/repo/<repo_name>
- Vous pouvez ajouter plusieurs .
Syntaxe:
repo --name=repoid
Here,
-
--baseurl=
The URL to the repository. -
--mirrorlist=
The URL pointing at a list of mirrors for the repository. -
--metalink=
The URL with metalink for the repository.
Pour la liste complète des options prises en charge, consultez le Guide d’installation avancée de Red Hat
Dans mon exemple de démarrage RHEL / CentOS 8, je créerai également un dépôt AppStream
qui fait partie de l’image ISO.
# Create additional repo during installationrepo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
Méthode d’installation
Il existe différentes méthodes d’installation parmi lesquelles choisir, telles que cdrom
harddrive
hmc
liveimg
, ou url
.
Nous utilisons principalement url
cdrom
et nfs
dans l’environnement de production, je vais donc expliquer ces méthodes d’installation:
Commande Kickstart -nfs
Il effectue l’installation à partir d’un serveur NFS spécifié.
Syntaxe:
nfs OPTIONS
Options:
-
--server=
Serveur à partir duquel installer (nom d’hôte ou IP). -
--dir=
Répertoire contenant le répertoire des variantes de l’arborescence d’installation. -
--opts=
Options de montage à utiliser pour le montage de l’exportation NFS. (facultatif)
Commande Kickstart – url
Elle effectue l’installation à partir d’une image d’arborescence d’installation sur un serveur distant en utilisant FTP, HTTP ou HTTPS.
Syntaxe:
url --url=FROM
Options obligatoires:
-
--url=
L’emplacement à partir duquel installer. Les protocoles pris en charge sont HTTP, HTTPS, FTP et file.
Options facultatives:
-
--proxy=
Spécifiez un proxy HTTP, HTTPS ou FTP à utiliser lors de l’installation.
Pour obtenir la liste complète des options prises en charge, consultez le Guide d’installation avancée de Red Hat
Commande Kickstart -cdrom
- Il effectue l’installation à partir du premier lecteur optique du système.
- Cette commande n’a pas d’options.
Dans mon exemple de démarrage RHEL / CentOS 8, j’utiliserai NFS comme méthode d’installation
# Installation medianfs --server=10.10.10.12 --dir=/images/
Dispositions de clavier
- Il définit une ou plusieurs dispositions de clavier disponibles pour le système.
- Toutes les mises en page disponibles peuvent être consultées sur la page de manuel xkeyboard-config(7) sous Mises en page.
Syntaxe:
keyboard --vckeymap|--xlayouts OPTIONS
Options:
-
--vckeymap=
Spécifiez un keymap VConsole à utiliser. Les noms valides correspondent à la liste des fichiers du répertoire/usr/lib/kbd/keymaps/xkb/
, sans l’extension.map.gz
. -
--xlayouts=
Spécifiez une liste de mises en page X qui doivent être utilisées comme une liste séparée par des virgules sans espaces. Accepte les valeurs dans le même format que setxkbmap(1), soit dans le format de mise en page (tel que cz), soit dans le format de mise en page (variante) (tel que cz (qwerty)).
Dans mon exemple de démarrage RHEL / CentOS 8, j’utiliserai English US
comme Disposition du clavier
# Keyboard layoutskeyboard --vckeymap=us --xlayouts='us'
Définir la langue du système
Commande de démarrage-lang
- Il définit la langue à utiliser lors de l’installation et la langue par défaut à utiliser sur le système installé.
- Vous pouvez utiliser
locale -a | grep _
oulocalectl list-locales
pour obtenir la liste des paramètres régionaux pris en charge.
Syntaxe:
lang language
Dans mon exemple de démarrage RHEL/CentOS 8, j’utiliserai en_US.UTF-8
# System languagelang en_US.UTF-8
Informations réseau
Commande Kickstart-réseau
- Il configure les informations réseau pour le système cible et active les périphériques réseau dans l’environnement d’installation.
- Le périphérique spécifié dans la première commande réseau est activé automatiquement.
- L’activation du périphérique peut également être explicitement requise par l’optionactivateactivate.
Syntax:
network OPTIONS
Options:
-
--activate
activate this device in the installation environment. -
--no-activate
do not activate this device in the installation environment. -
--nodefroute
prevent the device from using the default route. -
--bootproto=
One of dhcp, bootp, ibft, or static. The default option is dhcp; -
--noipv4
Désactivez l’IPv4 sur ce périphérique. -
--noipv6
Désactivez l’IPv6 sur ce périphérique.
Dans mon exemple de démarrage RHEL / CentOS 8, j’affecterai le réseau à 2 interfaces eth0
et eth1
# Network informationnetwork --bootproto=static --ip=10.10.10.15 --netmask=255.255.255.0 --gateway=10.10.10.1 --nameserver=8.8.8.8 --device=eth0 network --bootproto=dhcp --device=eth0 --activatenetwork --bootproto=dhcp --device=eth1 --onboot=off --activatenetwork --hostname=centos8-4.example.com
Attribuer un mot de passe root
- Il définit le mot de passe root du système sur l’argument password.
- Vous pouvez fournir un mot de passe root en texte brut ou crypté
- Pour créer un mot de passe crypté, vous pouvez utiliser python:
$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
- Cela génère un hachage compatible avec la crypte sha512 de votre mot de passe à l’aide d’un sel aléatoire.
Syntaxe:
rootpw password
Options:
-
--iscrypted
Si cette option est présente, l’argument du mot de passe est supposé être déjà chiffré. -
--plaintext
Si cette option est présente, l’argument du mot de passe est supposé être en texte brut. -
--lock
Si cette option est présente, le compte racine est verrouillé par défaut. Cela signifie que l’utilisateur root ne pourra pas se connecter à partir de la console.
Dans mon exemple de démarrage RHEL/CentOS 8, j’ai déjà créé et attribué un mot de passe root
# Root passwordrootpw --iscrypted $6$w7El/FYx9mbTG6x9$Te.Yg6dq0TsQwGpdSjeDGSw4J9ZBAkLXzT9ODMV7I7lHvX3n5.9PCS4jIkS2GbVLZOpVRLvrua3wwbwA.cfWX.
Exécutez l’agent d’installation au premier démarrage
Commande Kickstart -firstboot
- Il détermine si l’application d’installation initiale démarre le démarrage de première fois que le système est démarré.
- Si cette option est activée, le package de configuration initiale doit être installé.
- Si elle n’est pas spécifiée, cette option est désactivée par défaut.
Syntaxe:
firstboot OPTIONS
Options:
-
--enable
ou--enabled
: La configuration initiale est démarrée la première fois que le système démarre. -
--disable
ou--disabled
: La configuration initiale n’est pas démarrée la première fois que le système démarre. -
--reconfig
: Permet à la configuration initiale de démarrer au démarrage en mode de reconfiguration.
Dans mon exemple de démarrage RHEL / CentOS 8, j’activerai firstboot
# Run the Setup Agent on first bootfirstboot --enable
Configurer le système X Window
Vous pouvez choisir d’installer et de configurer le système X Window ou le désactiver
Commande Kickstart – xconfig
- Si vous installez un gestionnaire d’affichage parmi vos options de sélection de paquets, ce paquet crée une configuration X et le système installé par défaut est
graphical.target
. - Qui remplace l’effet de l’option
skipx
. - Pour configurer le système X Window, utilisez «
xconfig
«
Commande Kickstart-skipx
Pour éviter de configurer le système X Window, utilisez skipx
Dans mon RHEL/ Exemple de démarrage de CentOS 8 Je désactiverai le système X Windows
# Do not configure the X Window Systemskipx
Activer ou Désactiver les services système
Commande Kickstart-services
- Il modifie l’ensemble de services par défaut qui s’exécutera sous la cible systemd par défaut.
- La liste des services désactivés est traitée avant la liste des services activés.
- Par conséquent, si un service apparaît sur les deux listes, il sera activé.
Syntaxe:
services
Dans mon exemple de démarrage RHEL / CentOS 8, j’activerai chronyd
service
# System servicesservices --enabled="chronyd"
Définir le fuseau horaire
Commande Kickstart – fuseau horaire
- Il définit le fuseau horaire système.
- Vous pouvez utiliser
timedatectl list-timezones
pour obtenir la liste des valeurs de fuseau horaire prises en charge
Syntaxe:
timezone timezone
Options optionnelles:
-
--utc
Le cas échéant, le système suppose que l’horloge matérielle est réglée sur l’heure UTC (moyenne de Greenwich). -
--nontp
Désactivez le démarrage automatique du service NTP. -
--ntpservers=
Spécifiez une liste de serveurs NTP à utiliser comme liste séparée par des virgules sans espaces.
Dans mon exemple de démarrage RHEL / CentOS 8, j’utiliserai Asia/Kolkata
comme fuseau horaire
# System timezonetimezone Asia/Kolkata --isUtc
Gérer le redémarrage du nœud
Commande de démarrage – redémarrage
- Le «
reboot
» indique au programme d’installation de redémarrer une fois l’installation terminée avec succès (aucun argument). - Normalement, Kickstart affiche un message et attend que l’utilisateur appuie sur une touche avant de redémarrer.
- Spécifiez le redémarrage pour automatiser l’installation
Dans mon exemple de démarrage RHEL / CentOS 8, je vais utiliser le redémarrage car je prévois d’automatiser toute l’installation
# Reboot the nodereboot
Créer une partition de disque
Vous pouvez utiliser différentes variables pour configurer la disposition de votre disque
Commande Kickstart – ignoredisk
- Cela fait que le programme d’installation ignore les disques spécifiés.
- Ceci est utile si vous utilisez le partitionnement automatique et que vous voulez être sûr que certains disques sont ignorés.
Dans mon exemple de démarrage RHEL / CentOS 8, je veux uniquement utiliser le disque sda
pour l’installation
# Choose the disks to be usedignoredisk --only-use=sda
Commande Kickstart -clearpart
- Il supprime les partitions de le système, avant la création de nouvelles partitions.
- Par défaut, aucune partition n’est supprimée.
Dans mon exemple de kickstart CentOS / RHEL 8, je vais supprimer toutes les partitions existantes:
# Partition clearing informationclearpart --all
Commande Kickstart – partie ou partition
- Il crée une partition sur le système.
- Ce sujet est très vaste et je prévois de donner différents exemples de disposition de partition pour installer Linux
Dans mon exemple d’exemple de démarrage, j’installerai CentOS 8 en utilisant le Gestionnaire de volumes logiques. Ici, je vais créer
- volume logique racine
- partition d’échange
- partition de démarrage
# Disk partitioning informationpart pv.409 --fstype="lvmpv" --ondisk=sda --size=14847part /boot --fstype="ext4" --ondisk=sda --size=512volgroup rhel --pesize=4096 pv.409logvol swap --fstype="swap" --size=953 --name=swap --vgname=rhellogvol / --fstype="ext4" --size=13887 --name=root --vgname=rhel
Créer un nouvel utilisateur (permanent)
Vous pouvez également créer un nouvel utilisateur en utilisant kickstart qui sera également présent après l’installation
Commande Kickstart -user
Utilisez user
pour créer un nouvel utilisateur en utilisant la syntaxe kickstart
:
user --name=username
Dans mon exemple de démarrage RHEL / CentOS 8, je vais créer un utilisateur deepak
# Create useruser --name=deepak --shell=/bin/bash --homedir=/home/deepak --iscrypted --password=$6$uSejt/TeWMJVQ/F8$/oFsIanDHS/5b9ssy7gZbQwNkORgRjsQIw4JyFjlTWDh9TVsEXWEy2APpCUNTHipOOEe..ubg3qBZOwpaPtsB.
Créer un utilisateur (uniquement pour l’installation)
Vous pouvez créer un utilisateur uniquement pour surveiller le processus d’installation. Une fois l’installation terminée, cet utilisateur sera retiré du nœud
Commande Kickstart – sshpw
- Pendant l’installation, vous pouvez interagir avec le programme d’installation et surveiller sa progression sur une connexion SSH
- Utilisez la commande sshpw pour créer des comptes temporaires à travers lesquels vous pourrez vous connecter.
- Chaque instance de la commande crée un compte distinct qui n’existe que dans l’environnement d’installation.
- Ces comptes ne sont pas transférés sur le système installé.
Syntaxe:
sshpw --username=name password
Dans mon exemple de démarrage CentOS / RHEL 8, je crée un utilisateur admin
pour surveiller l’installation:
sshpw --username=admin --iscrypted --password=$6$PMLcSXd.w5pBvC.u$D06Ip60h/iWExxQ09gMi5aAbFaDK.NtLOgOZ56uU6kw.uUy/9/Mmw6vYBjs8Hw50y0Rx4m0yMdH0Vt5EUEsRI.
Créer un nouveau groupe
Vous pouvez également créer un nouveau groupe en utilisant kickstart
Commande Kickstart-group
- Si un groupe avec le nom donné ou le GID existe déjà, cette commande échoue.
- La commande user peut être utilisée pour créer un nouveau groupe pour l’utilisateur nouvellement créé.
- Il crée un nouveau groupe d’utilisateurs sur le système.
Syntaxe :
group --name=name
Options obligatoires
-
--name=
Fournit le nom du groupe.
Activer ou désactiver le pare-feu
Vous pouvez activer ou désactiver le pare-feu pendant la phase d’installation
Commande Kickstart-firewall
Elle spécifie la configuration du pare-feu pour le système installé.
Syntaxe:
firewall --enabled|--disabled
Ici,
-
--enabled
ou--enable
– Rejette les connexions entrantes qui ne sont pas en réponse aux demandes sortantes, telles que les réponses DNS ou Demandes DHCP. -
--disabled
ou--disable
– Ne configurez aucune règle iptables.
Activer un module
Vous pouvez également activer un module à l’aide de kickstart
Commande Kickstart-module
Utilisez cette commande pour activer un flux de module de package dans le script kickstart.
Syntaxe :
module --name=NAME
Options obligatoires
-
--name=
Spécifie le nom du module à activer. Remplacez le NOM par le nom réel.
Activer ou désactiver SELinux
Vous pouvez également activer ou désactiver selinux à l’aide de la commande kickstart
Kickstart – selinux
- Elle définit l’état de SELinux sur le système installé.
- La stratégie SELinux par défaut est appliquée.
Syntaxe:
selinux
Options:
-
--enforcing
Active SELinux avec l’application de la stratégie ciblée par défaut. -
--permissive
Génère des avertissements basés sur la stratégie SELinux, mais n’applique pas réellement la stratégie. -
--disabled
Désactive complètement SELinux sur le système.
Sélection de paquets
Kickstart utilise les sections démarrées par la commande %packages pour sélectionner les paquets à installer.
Commande Kickstart -%packages
- Vous pouvez installer des packages, des groupes, des environnements, des flux de modules et des profils de modules de cette façon.
- Utilisez la commande %packages pour démarrer une section Kickstart qui décrit les packages logiciels à installer.
- La section %packages doit se terminer par la commande %end.
Spécification de groupes
- Spécifiez des groupes, une entrée sur une ligne, en commençant par un symbole @, puis le nom complet du groupe ou l’id du groupe
- Vous pouvez obtenir la liste des options prises en charge à partir de la liste de «
dnf grouplist
«
%packages@X Window System@Desktop@Sound and Video%end
Spécification des paquets individuels
- Spécifiez les paquets individuels par leur nom, une entrée sur une ligne. Vous pouvez utiliser le caractère astérisque (*) comme caractère générique dans les noms de paquets. Exemple:
%packagessqlitecurlaspelldocbook*%end
In my RHEL/CentOS 8 kickstart example I have used « Virtualization Host
«
%packages@^Virtualization Hostkexec-tools%end
Enable or Disable Kdump
Kickstart command – %addon com_redhat_kdump
This command configures the kdump kernel crash dumping mechanism.
Syntax:
%addon com_redhat_kdump %end
Options:
-
--enable
Enable kdump on the installed system. -
--disable
Disable kdump on the installed system. -
--reserve-mb=
La quantité de mémoire que vous souhaitez réserver pour kdump, dans MiB
Dans mon exemple de démarrage RHEL / CentOS 8, j’ai utilisé auto
pour réserver automatiquement la mémoire requise pour kdump:
%addon com_redhat_kdump --enable --reserve-mb='auto'%end
Appliquer la stratégie de mot de passe
Commande Kickstart – pwpolicy
- Utilisez cette commande pour appliquer une stratégie de mot de passe personnalisée lors de l’installation.
- La stratégie vous oblige à créer des mots de passe pour les comptes root, users ou luks.
- Les facteurs tels que la longueur et la force du mot de passe déterminent la validité d’un mot de passe.
Pour la liste des options prises en charge, consultez le Guide d’installation avancée de Red Hat
Dans mon exemple de démarrage RHEL/CentOS 8 que j’ai utilisé ci-dessous la politique de mot de passe:
%anacondapwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notemptypwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyokpwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty%end
RHEL/CentOS 8 Kickstart Example File
Below is one sample kickstart file example from my server which I use to install Virtual Machine on Oracle VirtualBox
Red_Hat_CentOS_8_Kickstart_Example