Comment créer une image en direct Fedora personnalisée avec Lorax
Fedora est l’une des distributions Linux les plus populaires : elle est sponsorisée par Red Hat, mais son développement est piloté par la communauté. Bien que la version par défaut de Fedora soit livrée avec l’environnement de bureau GNOME (c’est probablement le choix idéal si vous souhaitez utiliser une version vanille de ce dernier), il existe de nombreuses versions alternatives disponibles, ce qui nous permet d’essayer une variété d’environnements de bureau tels que XFCE ou KDE Plasma. En quelques étapes simples, il est même possible de créer et d’essayer une image en direct Fedora personnalisée.
Dans ce tutoriel, nous voyons comment créer une image live personnalisée de Fedora à l’aide de lorax, mock et d’un fichier kickstart.
Dans ce tutoriel, vous allez apprendre :
- Comment préparer l’environnement de build fictif
- Comment créer une image en direct personnalisée à l’aide d’un fichier kickstart
- Comment créer une image personnalisée à l’aide de lorax
Installation de mock et configuration de l’environnement de build
Afin de créer notre image live Fedora personnalisée, la première chose que nous devons faire est d’installer mock, un programme qui est utilisé pour construire des RPM sources à l’intérieur d’un environnement chroot :
$ sudo dnf install mock
Afin d’utiliser mock sans devenir root, nous devons ajouter notre propre utilisateur au groupe « mock ». Nous pouvons le faire en utilisant l’utilitaire usermod
(dans ce cas, « doc » est mon nom d’utilisateur) :
$ sudo usermod -aG mock doc
Pour que le changement soit effectif, nous devons nous déconnecter et nous reconnecter, ou, comme alternative temporaire (qui ne sera effective que dans le shell actuel), nous pourrions utiliser l’utilitaire newgrp
:
$ newgrp mock
Pour vérifier que les modifications ont été appliquées :
$ groups
Le groupe « mock » doit être signalé dans la sortie de la commande :
mock wheel doc
À ce stade, nous pouvons initialiser l’environnement de construction :
$ mock -r /etc/mock/fedora-38-x86_64.cfg --init
L’option -r
prend une configuration chroot comme argument. Les configurations d’un choix de systèmes sont distribuées avec le paquet mock et peuvent être trouvées dans le répertoire /etc/mock
. Dans ce cas, puisque nous voulons baser l’image en direct sur la dernière version de Fedora (38 au moment de la rédaction), nous avons pointé du doigt le fichier « fedora-38-x86_64.cfg ». La commande prendra un certain temps pour se terminer. Une fois l’environnement fictif initialisé, nous pouvons installer les paquets dont nous avons besoin à l’intérieur. Pour ce faire, nous utilisons l’option --install
:
$ mock -r fedora-38-x86_64 --install lorax anaconda git pykickstart vim
Git est nécessaire pour cloner le dépôt contenant le fichier Fedora Kickstart que nous utiliserons comme base pour notre configuration personnalisée ; Le paquet « PyKickStart » contient l’utilitaire « ksflatten » qui est utilisé pour « aplatir » les fichiers Kickstart (produire une seule sortie en suivant toutes les instructions %include
dans les fichiers « sources » KickStart). Vim est ce que nous utiliserons pour écrire la configuration personnalisée (n’importe quel éditeur fera l’affaire, bien sûr). Ces paquets ne sont pas strictement nécessaires à l’intérieur du chroot, car ces étapes peuvent être effectuées dans le système hôte et le fichier kickstart final peut être copié à l’intérieur du chroot plus tard. Dans ce tutoriel, cependant, nous allons effectuer tout le travail à l’intérieur du chroot. Pour entrer dans l’environnement de construction, nous exécutons :
$ mock -r fedora-38-x86_64 --shell --isolation=simple --enable-network
Une modification de l’invite shell devrait confirmer que nous sommes entrés dans l’environnement chroot :
<mock-chroot> sh-5.2#
Création du fichier kickstart
À ce stade, nous devons cloner le dépôt contenant les fichiers kickstart utilisés par le projet Fedora pour construire les images de distribution officielles :
<mock-chroot> sh-5.2# git clone https://pagure.io/fedora-kickstarts -b f38
Avec la commande ci-dessus, nous clonons le dépôt dans un répertoire appelé fedora-kickstart. En utilisant -b f38
, nous spécifions que nous voulons cloner la branche « f38 » du dépôt, car nous avons affaire à ces versions de Fedora (la branche « master » pointe toujours vers « rawhide », le banc d’essai pour les nouvelles versions de Fedora). Ce que nous devons faire maintenant, c’est créer un fichier kickstart contenant les instructions qui produiront l’image live personnalisée. Pour les besoins de ce tutoriel, nous allons créer une version allégée de Fedora Workstation, en excluant un tas d’applications GNOME de l’ensemble de paquets par défaut. La chose la plus pratique à faire est de commencer par inclure le fichier kickstart officiel fedora-live-workstation.ks
dans le nôtre. Voici son contenu, nous pouvons l’enregistrer sous le nom « fedora-live-minimal-workstation.ks » :
%include fedora-live-workstation.ks
%packages
Package groups excluded from @workstation-product-environment
-@guest-desktop-agents
-@libreoffice
-@multimedia
Packages excluded from @workstation-product
-rhythmbox
-unoconv
Packages excluded from @gnome-desktop
-gnome-boxes
-gnome-connections
-gnome-text-editor
-baobab
-cheese
-gnome-clocks
-gnome-logs
-gnome-maps
-gnome-photos
-gnome-remote-desktop
-gnome-weather
-orca
-rygel
-totem
%end
Afin d’obtenir un résultat valide, nous utilisons l’utilitaire ksflatten
. Nous passons notre fichier kickstart en argument à l’option -c
, et le fichier de sortie en argument de -o
:
$ ksflatten -c fedora-live-minimal-workstation.ks -o ks.cfg
Une fois que notre fichier kickstart est prêt, nous pouvons construire l’image en direct.
Création de l’image en direct
À ce stade, nous pouvons créer notre image en direct personnalisée :
livemedia-creator --ks ks.cfg --no-virt --resultdir /var/lmc --project Fedora-minimal-workstation-Live --make-iso --volid Fedora-minimal-workstation-Live --iso-only --iso-name Fedora-minimal-workstation-Live.iso --releasever 38 --macboot
Jetons un coup d’œil aux options que nous avons utilisées :
- –ks : est utilisé pour pointer vers le fichier de configuration kickstart utilisé pour construire le système en direct
- –novirt : utilisé pour spécifier que nous ne voulons pas exécuter l’installateur anaconda dans un environnement QEMU virtualisé, mais sur l’hôte
- –resultdir : spécifie le répertoire dans lequel créer l’image
- –project : l’argument passé à cette option est ce qui remplacera l’espace réservé @PRODUCT@ dans les fichiers de configuration du chargeur de démarrage
- –make-iso : spécifie que nous voulons construire une ISO en direct
- –volid : spécifie l’ID du volume
- –iso-only : nettoie tous les artefacts de création
- –iso-name : l’image résultante sera renommée après l’argument passé à cette option
- –releasever : l’argument passé à cette option remplacera l’espace réservé @VERSION@ dans les fichiers de configuration du chargeur de démarrage
- –macboot : nécessaire pour rendre l’iso amorçable sur les systèmes Mac basés sur UEFI
À la fin du processus, nous devrions trouver le fichier Fedora-minimal-workstation-Live.iso
dans le répertoire /var/lmc
. Pour copier l’image du répertoire chroot vers notre maison, nous quittons d’abord l’environnement chroot :
<mock-chroot> sh-5.2# exit
Ensuite, nous exécutons :
$ cp /var/lib/mock/fedora-38-x86_64/root/var/lmc/Fedora-minimal-workstation-Live.iso "$HOME"
Nous pouvons écrire l’image sur un périphérique USB, comme nous le ferions avec un périphérique officiel, ou l’utiliser directement dans une machine virtuelle. Comme vous pouvez le voir dans les captures d’écran ci-dessous, les entrées Grub reflètent les arguments que nous avons passés aux options --project
et --releasever
:
De plus, en jetant un coup d’œil au lanceur GNOME, nous pouvons également voir qu’il y a moins d’applications installées par rapport à l’image officielle de Fedora Workstation Live, puisque nous les avons exclues dans le fichier kickstart :
Seuls les packages inclus dans notre image live personnalisée seront inclus si nous décidons de finaliser une installation réelle du système. Nous pouvons maintenant nettoyer l’environnement de construction :
$ mock -r fedora-38-x86_64 --clean
Conclusions
Il existe de nombreuses versions de Fedora disponibles, chacune offrant un environnement de travail différent. Dans ce tutoriel, nous avons vu comment créer une image live personnalisée à l’aide d’un fichier kickstart et d’outils tels que mock et lorax.