Chapitre 5. Composition d'une image RHEL for Edge à l'aide de la ligne de commande image builder
Vous pouvez utiliser le constructeur d'images pour créer une image RHEL for Edge personnalisée (OSTree commit).
Pour accéder au constructeur d'images et créer votre image RHEL for Edge personnalisée, vous pouvez utiliser l'interface de la console web RHEL ou l'interface de ligne de commande.
Pour les déploiements basés sur le réseau, le processus de composition des images RHEL for Edge à l'aide de l'interface de programmation comprend les étapes de haut niveau suivantes :
- Créer un modèle pour l'image RHEL for Edge
- Créer une image RHEL for Edge Commit
- Télécharger l'image RHEL for Edge Commit
Pour les déploiements non basés sur le réseau, le processus de composition des images RHEL for Edge à l'aide de la CLI comprend les étapes de haut niveau suivantes :
- Créer un modèle pour l'image RHEL for Edge
- Créer un modèle pour l'image RHEL for Edge Installer
- Créer une image RHEL for Edge Container
- Créer une image RHEL for Edge Installer
- Télécharger l'image RHEL for Edge
Pour effectuer les démarches, utilisez le logiciel composer-cli
.
Pour exécuter les commandes composer-cli
en tant que non-root, vous devez faire partie du groupe weldr
ou disposer d'un accès administrateur au système.
5.1. Flux de travail pour les déploiements en réseau
Ceci fournit les étapes pour construire OSTree
commits. Ces commits OSTree
contiennent un système d'exploitation complet, mais ne sont pas directement amorçables. Pour les démarrer, vous devez les déployer à l'aide d'un fichier Kickstart.
5.1.1. Création d'un modèle d'image RHEL for Edge Commit à l'aide de l'interface en ligne de commande image builder
Créez un schéma directeur pour l'image RHEL for Edge Commit à l'aide de la CLI.
Prérequis
Vous n'avez pas de plan existant. Pour le vérifier, dressez la liste des plans existants :
$ sudo composer-cli blueprints list
Procédure
Créez un fichier texte au format TOML, avec le contenu suivant :
name = "blueprint-name" description = "blueprint-text-description" version = "0.0.1" modules = [ ] groups = [ ]
Où ?
- blueprint-name est le nom et blueprint-text-description est la description de votre plan.
- 0.0.1 est le numéro de version selon le schéma de versionnement sémantique.
Modules décrivent le nom du paquet et la version correspondante à installer dans l'image. Par exemple, le nom du paquet = "tmux" et la version correspondante est version = "2.9a".
Notez qu'il n'y a actuellement aucune différence entre les paquets et les modules.
Groups sont des groupes de paquets à installer dans l'image, par exemple le groupe de paquets anaconda-tools.
A ce stade, si vous ne connaissez pas les modules et les groupes, laissez-les vides.
Incluez les paquets requis et adaptez les autres détails du plan à vos besoins.
Pour chaque paquet que vous souhaitez inclure dans le plan, ajoutez les lignes suivantes au fichier :
[[packages]] name = "package-name" version = "package-version"
Où ?
- package-name est le nom du paquet, tel que httpd, gdb-doc, ou coreutils.
package-version est le numéro de version du paquet que vous souhaitez utiliser.
La version du paquet prend en charge les spécifications de version dnf suivantes :
- Pour une version spécifique, utilisez le numéro de version exact, par exemple 9.0.
- Pour la dernière version disponible, utilisez l'astérisque *.
- Pour la dernière version mineure, utilisez des formats tels que 9.*.
Pousser (importer) le plan vers le serveur de construction d'images :
# composer-cli blueprints push blueprint-name.toml
Liste les plans existants pour vérifier si le plan créé a été poussé avec succès et s'il existe.
# composer-cli blueprints show BLUEPRINT-NAME
Vérifiez si les composants et les versions répertoriés dans le plan et leurs dépendances sont valides :
# composer-cli blueprints depsolve blueprint-name
Ressources supplémentaires
5.1.2. Création d'une image RHEL for Edge Commit à l'aide de l'interface en ligne de commande image builder
Pour créer une image RHEL for Edge Commit à l'aide de l'interface de ligne de commande image builder, assurez-vous d'avoir rempli les conditions préalables suivantes et suivez la procédure.
Conditions préalables
- Vous avez créé un schéma directeur pour l'image RHEL for Edge Commit.
Procédure
Créez l'image RHEL for Edge Commit.
# composer-cli compose start blueprint-name image-type
Où ?
- blueprint-name est le nom du plan RHEL for Edge.
image-type est
edge-commit
pour network-based deployment.Une confirmation de l'ajout du processus de composition à la file d'attente s'affiche. Elle indique également un numéro d'identifiant universel unique (UUID) pour l'image créée. Utilisez le numéro UUID pour suivre votre construction. Conservez également le numéro UUID à portée de main pour d'autres tâches.
Vérifier l'état de la composition de l'image.
# composer-cli compose status
La sortie affiche l'état dans le format suivant :
<UUID> RUNNING date blueprint-name blueprint-version image-type
NoteLe processus de création d'une image dure jusqu'à 20 minutes.
Pour interrompre le processus de création d'image, exécutez :
# composer-cli composer cancel <UUID>
Pour supprimer une image existante, exécutez :
# composer-cli composer delete <UUID>
Une fois que l'image est prête, vous pouvez la télécharger et l'utiliser sur votre site network deployments.
Ressources supplémentaires
5.1.3. Création d'une mise à jour d'image RHEL for Edge avec un ref commit à l'aide de l'interface en ligne de commande image builder
Si vous avez modifié un plan existant, par exemple en ajoutant un nouveau package, et que vous souhaitez mettre à jour une image RHEL for Edge existante avec ce nouveau package, vous pouvez utiliser l'argument --parent
pour générer une image RHEL for Edge Commit (.tar)
mise à jour. L'argument --parent
doit être un ref
qui existe dans le référentiel spécifié par l'argument URL
. L'argument --ref
vous permet de spécifier un ref
existant qui récupère un parent pour le nouveau commit que vous construisez. Vous devez spécifier le commit parent sous la forme d'une valeur ref
à résoudre et à extraire, et non sous la forme d'un identifiant de commit, par exemple rhel/9/x86_64/edge
. Lorsque vous spécifiez le commit parent sous la forme d'une valeur ref
, Image Builder peut lire des informations du commit parent qui affecteront des parties du nouveau commit que vous construisez. Par conséquent, Image builder lit la base de données des utilisateurs du commit parent et préserve les UID et les GID pour les utilisateurs et les groupes du système créés par le paquet.
Pour créer une image RHEL for Edge avec un argument parent à l'aide de l'interface CLI de construction d'images, assurez-vous d'avoir rempli les conditions préalables suivantes et suivez la procédure.
Conditions préalables
- Vous avez mis à jour un plan existant pour l'image RHEL for Edge.
- Vous disposez d'une image RHEL for Edge existante (commit OSTree). Voir Extraction du commit de l'image RHEL for Edge.
-
Le site
ref
en cours de construction est disponible dans le dépôtOSTree
spécifié par l'URL.
Procédure
Créer l'image RHEL for Edge commit :
# composer-cli compose start-ostree --ref rhel/9/x86_64/edge --parent parent-OSTree-REF --url URL blueprint-name image-type
Par exemple :
Pour créer un nouveau commit RHEL for Edge basé sur un
parent
et avec un nouveauref
, exécutez la commande suivante: :# composer-cli compose start-ostree --ref rhel/9/x86_64/edge --parent rhel/9/x86_64/edge --url http://10.0.2.2:8080/repo rhel_update edge-commit
Pour créer un nouveau commit RHEL for Edge basé sur le même site
ref
, exécutez la commande suivante :# composer-cli compose start-ostree --ref rhel/9/x86_64/edge --url http://10.0.2.2:8080/repo rhel_update edge-commit
Où ?
- L'argument --ref spécifie le même chemin d'accès que celui que vous avez utilisé pour créer un référentiel OSTree.
-
L'argument --parent spécifie le commit parent en tant que ref à résoudre et à extraire, et non en tant qu'identifiant de commit, par exemple
rhel/9/x86_64/edge
. - blueprint-name est le nom du plan RHEL for Edge.
-
L'argument
--url
spécifie l'URL du dépôt OSTree de l'engagement à intégrer dans l'image, par exemple http://10.0.2.2:8080/repo. image-type est
edge-commit
pour network-based deployment.Note-
L'argument
--parent
ne peut être utilisé que pour le type d'imageRHEL for Edge Commit (.tar)
. L'utilisation conjointe des arguments--url
et--parent
entraîne des erreurs avec le type d'imageRHEL for Edge Container (.tar)
. -
Si vous omettez l'argument
parent ref
, le système revient à l'adresseref
spécifiée par l'argument--ref
.
Une confirmation de l'ajout du processus de composition à la file d'attente s'affiche. Elle indique également un numéro d'identifiant universel unique (UUID) pour l'image créée. Utilisez le numéro UUID pour suivre votre construction. Conservez également le numéro UUID à portée de main pour d'autres tâches.
-
L'argument
Vérifier l'état de la composition de l'image.
# composer-cli compose status
La sortie affiche l'état dans le format suivant :
<UUID> RUNNING date blueprint-name blueprint-version image-type
NoteLe processus de création de l'image prend quelques minutes.
(Facultatif) Pour interrompre le processus de création d'image, exécutez :
# composer-cli composer cancel <UUID>
(Facultatif) Pour supprimer une image existante, exécutez :
# composer-cli composer delete <UUID>
Une fois la création de l'image terminée, pour mettre à niveau un déploiement OSTree existant, vous devez :
- Configurez un référentiel. Voir Déploiement d'une image RHEL for Edge.
- Ajouter ce référentiel en tant que distant, c'est-à-dire le point d'accès http ou https qui héberge le contenu d'OSTree.
- Insérer le nouveau commit OSTree dans leur instance existante en cours d'exécution. Voir Déployer manuellement les mises à jour d'images RHEL for Edge.
5.1.4. Téléchargement d'une image RHEL for Edge à l'aide de l'interface de ligne de commande du constructeur d'images
Pour télécharger une image RHEL for Edge à l'aide de l'interface de ligne de commande image builder, assurez-vous d'avoir rempli les conditions préalables suivantes, puis suivez la procédure.
Conditions préalables
- Vous avez créé une image RHEL for Edge.
Procédure
Examinez l'état de l'image RHEL for Edge.
# composer-cli compose status
La sortie doit afficher ce qui suit :
$ <UUID> FINIS date blueprint-name blueprint-version image-type
Télécharger l'image.
# composer-cli compose image <UUID>
Image builder télécharge l'image sous forme de fichier
tar
dans le répertoire actuel.Le numéro UUID et la taille de l'image s'affichent à côté.
$ <UUID>-commit.tar : size MB
L'image contient un commit et un fichier json
avec des métadonnées d'information sur le contenu du référentiel.
Ressources supplémentaires