Rechercher

11.2. Mise à jour des images RHEL for Edge

download PDF

11.2.1. Comment les mises à jour des images RHEL for Edge sont-elles déployées ?

Avec les images RHEL for Edge, vous pouvez déployer les mises à jour manuellement ou automatiser le processus de déploiement. Les mises à jour sont appliquées de manière atomique, c'est-à-dire que l'état de chaque mise à jour est connu, et les mises à jour sont stockées et appliquées uniquement au redémarrage. Comme aucun changement n'est visible avant le redémarrage de l'appareil, vous pouvez planifier un redémarrage pour garantir un temps de fonctionnement optimal.

Lors de la mise à jour de l'image, seul le contenu du système d'exploitation mis à jour est transféré sur le réseau. Cela rend le processus de déploiement plus efficace par rapport au transfert de l'image entière. Les binaires et les bibliothèques du système d'exploitation dans /usr sont read-only, et l'état read and write est maintenu dans les répertoires /var et /etc.

Lors du passage à un nouveau déploiement, les répertoires /etc et /var sont copiés dans le nouveau déploiement avec les autorisations read and write. Le répertoire /usr est copié en tant que lien logiciel vers le répertoire du nouveau déploiement, avec les autorisations read-only.

Le diagramme suivant illustre le processus de déploiement de la mise à jour de l'image RHEL for Edge :

Image Deployment

Par défaut, le nouveau système est démarré en utilisant une procédure similaire à une opération chroot. Le nouveau répertoire /sysroot se compose principalement des éléments suivants :

  • Base de données du référentiel dans le répertoire /sysroot/ostree/repo.
  • Révisions du système de fichiers dans le répertoire /sysroot/ostree/deploy/rhel/deploy, créées par chaque opération de mise à jour du système.
  • Le répertoire /sysroot/ostree/boot, qui renvoie aux déploiements du point précédent. Notez que /ostree est un lien souple vers /sysroot/ostree. Les fichiers du répertoire /sysroot/ostree/boot ne sont pas dupliqués. Le même fichier est utilisé s'il n'est pas modifié pendant le déploiement. Les fichiers sont des liens en dur vers un autre fichier stocké dans le répertoire /sysroot/ostree/repo/objects.

Le système d'exploitation sélectionne le déploiement de la manière suivante :

  1. L'outil dracut analyse l'argument du noyau ostree dans le système de fichiers initramfs root et configure le répertoire /usr en tant que montage bind read-only.
  2. Lier le répertoire de déploiement dans /sysroot au répertoire /.
  3. Remonter le système d'exploitation déjà monté dirs à l'aide de l'indicateur de montage MS_MOVE

En cas de problème, vous pouvez effectuer un retour en arrière en supprimant les anciens déploiements à l'aide de la commande rpm-ostree cleanup. Chaque machine cliente contient un référentiel OSTree stocké dans /ostree/repo, et un ensemble de déploiements stockés dans /ostree/deploy/$STATEROOT/$CHECKSUM.

Avec les mises à jour de déploiement de l'image RHEL for Edge, vous pouvez bénéficier d'une meilleure cohérence du système sur plusieurs appareils, d'une reproductibilité plus facile et d'une meilleure isolation entre le changement d'état du système avant et après.

11.2.2. Déploiement manuel des mises à jour d'images RHEL for Edge

Après avoir modifié un plan RHEL for Edge, vous pouvez mettre à jour le commit de l'image. Image builder génère un nouveau commit pour l'image RHEL for Edge mise à jour. Utilisez ce nouveau commit pour déployer l'image avec les dernières versions des paquets ou avec des paquets supplémentaires.

Pour déployer les mises à jour des images RHEL for Edge, assurez-vous que vous remplissez les conditions préalables, puis suivez la procédure.

Conditions préalables

Procédure

  1. Dans le tableau de bord du constructeur d'images, cliquez sur Créer une image.
  2. Dans la fenêtre Create Image, procédez comme suit :

    1. Dans la page de sortie des images :

      1. Dans la liste déroulante Select a blueprint, sélectionnez le plan que vous avez modifié.
      2. Dans la liste déroulante Image output type, sélectionnez RHEL for Edge Commit (.tar). Cliquez sur Suivant.
    2. Dans la page OSTree settings, entrez :

      1. Dans le champ Repository URL, saisissez l'URL du référentiel OSTree de la livraison à intégrer dans l'image. Par exemple, http://10.0.2.2:8080/repo/. Voir Configuration d'un serveur web pour l'installation de l'image RHEL for Edge.
      2. Dans le champ Parent commit, indiquez l'ID du commit parent qui a été généré précédemment. Voir Extraction du commit de l'image RHEL for Edge.
      3. Dans le champ Ref, vous pouvez soit spécifier un nom pour votre livraison, soit le laisser vide. Par défaut, la console web spécifie Ref comme rhel/9/arch_name/edge. Cliquez sur Suivant.
    3. Sur la page Review, vérifiez les personnalisations et cliquez sur Créer une image. Le constructeur d'images commence à créer une image RHEL for Edge pour le plan mis à jour. Le processus de création d'image prend quelques minutes.

      Pour visualiser la progression de la création de l'image RHEL for Edge, cliquez sur le nom du plan dans les fils d'Ariane, puis sur l'onglet Images.

      L'image résultante inclut les derniers paquets que vous avez ajoutés, le cas échéant, et a pour parent l'original commit ID.

  3. Téléchargez l'image RHEL for Edge Commit (.tar) qui en résulte.

    1. Dans l'onglet Images, cliquez sur Télécharger pour enregistrer l'image RHEL for Edge Commit (.tar) sur votre système.
  4. Extraire le fichier OSTree commit (.tar).

    # tar -xf UUID-commit.tar -C UPGRADE_FOLDER
  5. Mettre à jour le répertoire OSTree :

    # ostree pull-local --repo http://10.0.2.2:8080/repo UPGRADE_FOLDER/repo OSTREE_REF
    # ostree summary --update --repo http://10.0.2.2:8080/repo
  6. Construire un conteneur docker, en utilisant cette fois l'ID du commit enfant.

    # podman build -t name-of-server --build-arg commit=UUID-child_commit.tar .
  7. Exécuter le conteneur.

    # podman run --rm -p 8000:80 name-of-server
  8. Sur le système RHEL approvisionné, à partir de l'image de bord originale, vérifiez l'état actuel.

    $ rpm-ostree status

    S'il n'y a pas de nouvel identifiant de livraison, exécutez la commande suivante pour vérifier si une mise à niveau est disponible :

    $ rpm-ostree upgrade --check

    La sortie de la commande fournit l'identifiant de l'engagement OSTree actif.

  9. Mettre à jour OSTree pour rendre disponible le nouvel identifiant de livraison OSTree.

    $ rpm-ostree upgrade

    OSTree vérifie s'il existe une mise à jour dans le référentiel. Si c'est le cas, il récupère la mise à jour et vous demande de redémarrer votre système afin que vous puissiez activer le déploiement de cette nouvelle mise à jour.

  10. Vérifiez à nouveau l'état actuel :

    $ rpm-ostree status

    Vous pouvez maintenant voir qu'il y a 2 commits disponibles :

    • L'engagement actif du parent.
    • Un nouvel engagement qui n'est pas actif et qui contient une différence ajoutée.
  11. Pour activer le nouveau déploiement et rendre la nouvelle validation active, redémarrez votre système.

    # systemctl reboot

    L'installateur Anaconda redémarre dans le nouveau déploiement. Sur l'écran de connexion, vous pouvez voir un nouveau déploiement disponible pour démarrer.

  12. Si vous souhaitez démarrer sur le déploiement le plus récent (commit), la commande rpm-ostree upgrade ordonne automatiquement les entrées de démarrage de manière à ce que le nouveau déploiement soit le premier de la liste. En option, vous pouvez utiliser la touche fléchée de votre clavier pour sélectionner l'entrée du menu GRUB et appuyer sur Entrée.
  13. Fournissez les informations d'identification de votre compte d'utilisateur.
  14. Vérifier l'état de l'OSTree :

    $ rpm-ostree status

    La sortie de la commande fournit l'identifiant de l'engagement actif.

  15. Pour voir les paquets modifiés, s'il y en a, lancez un diff entre le commit parent et le nouveau commit :

    $ rpm-ostree db diff parent_commit new_commit

    La mise à jour indique que le paquet que vous avez installé est disponible et prêt à être utilisé.

11.2.3. Déploiement manuel des mises à jour d'images RHEL for Edge à l'aide de la ligne de commande

Après avoir modifié un plan RHEL for Edge, vous pouvez mettre à jour le commit de l'image. Image builder génère un nouveau commit pour l'image RHEL for Edge mise à jour. Utilisez le nouveau commit pour déployer l'image avec les dernières versions des paquets ou avec des paquets supplémentaires à l'aide de la CLI.

Pour déployer des mises à jour d'images RHEL for Edge à l'aide de l'interface de programmation, assurez-vous de remplir les conditions préalables, puis suivez la procédure.

Conditions préalables

Procédure

  1. Créez l'image RHEL for Edge Commit (.tar) avec les arguments suivants :

    # composer-cli compose start-ostree --ref ostree_ref --url URL-OSTree-repository -blueprint_name_ image-type

  2. Vérifiez la progression de la création de l'image RHEL for Edge :

    # composer-cli compose status
    Note

    Les processus de création d'images peuvent durer de dix à trente minutes.

    L'image résultante inclut les derniers paquets que vous avez ajoutés, le cas échéant, et a pour parent l'image originale commit ID.

  3. Téléchargez l'image RHEL for Edge obtenue. Pour plus d'informations, voir Téléchargement d'une image RHEL for Edge à l'aide de l'interface de ligne de commande du constructeur d'images.
  4. Extraire le commit OSTree.

    # tar -xf UUID-commit.tar -C UPGRADE_FOLDER
  5. Servez le commit OSTree en utilisant httpd. Voir Configuration d'un serveur web pour l'installation de RHEL for Edge image.
  6. Mettre à jour le répertoire OSTree :

    # ostree pull-local --repo http://10.0.2.2:8080/repo UPGRADE_FOLDER/repo OSTREE_REF
    # ostree summary --update --repo http://10.0.2.2:8080/repo
  7. Sur le système RHEL approvisionné à partir de l'image de bord originale, vérifiez l'état actuel :

    $ rpm-ostree status

    S'il n'y a pas de nouvel identifiant de livraison, exécutez la commande suivante pour vérifier si une mise à niveau est disponible :

    $ rpm-ostree upgrade --check

    La sortie de la commande fournit l'identifiant de l'engagement OSTree actif.

  8. Mettre à jour OSTree pour rendre disponible le nouvel identifiant de livraison OSTree :

    $ rpm-ostree upgrade

    OSTree vérifie s'il existe une mise à jour dans le référentiel. Si c'est le cas, il récupère la mise à jour et vous demande de redémarrer votre système afin que vous puissiez activer le déploiement de la nouvelle mise à jour.

  9. Vérifiez à nouveau l'état actuel :

    $ rpm-ostree status

    Vous devriez maintenant voir qu'il y a 2 commits disponibles :

    • L'engagement parental actif
    • Un nouvel engagement qui n'est pas actif et qui contient 1 différence ajoutée
  10. Pour activer le nouveau déploiement et rendre la nouvelle validation active, redémarrez votre système :

    # systemctl reboot

    L'installateur Anaconda redémarre dans le nouveau déploiement. Sur l'écran de connexion, vous pouvez voir un nouveau déploiement disponible pour démarrer.

  11. Si vous souhaitez démarrer sur le déploiement le plus récent, la commande rpm-ostree upgrade ordonne automatiquement les entrées de démarrage de sorte que le nouveau déploiement soit le premier de la liste. En option, vous pouvez utiliser la touche fléchée de votre clavier pour sélectionner l'entrée du menu GRUB et appuyer sur Entrée.
  12. Connectez-vous en utilisant les informations d'identification de votre compte.
  13. Vérifier l'état de l'OSTree :

    $ rpm-ostree status

    La sortie de la commande fournit l'identifiant de l'engagement actif.

  14. Pour voir les paquets modifiés, s'il y en a, lancez un diff entre le commit parent et le nouveau commit :

    $ rpm-ostree db diff parent_commit new_commit

    La mise à jour indique que le paquet que vous avez installé est disponible et prêt à être utilisé.

11.2.4. Déploiement manuel des mises à jour d'images RHEL for Edge pour les déploiements non basés sur le réseau

Après avoir modifié un plan RHEL for Edge, vous pouvez mettre à jour le commit de l'image. Image builder génère un nouveau commit pour l'image RHEL for Edge mise à jour. Utilisez ce nouveau commit pour déployer l'image avec les dernières versions des paquets ou avec des paquets supplémentaires.

Pour déployer les mises à jour des images RHEL for Edge, assurez-vous que vous remplissez les conditions préalables, puis suivez la procédure.

Conditions préalables

Procédure

  1. Dans le tableau de bord du constructeur d'images, cliquez sur Créer une image.
  2. Dans la fenêtre Create Image, procédez comme suit :

    1. Dans la page de sortie des images :

      1. Dans la liste déroulante Select a blueprint, sélectionnez le plan que vous avez modifié.
      2. Dans la liste déroulante Image output type, sélectionnez RHEL for Edge Container (.tar). Cliquez sur Suivant.
    2. Dans la page OSTree settings, entrez :

      1. Dans le champ Repository URL, saisissez l'URL du référentiel OSTree de la livraison à intégrer dans l'image. Par exemple, http://10.0.2.2:8080/repo/. Voir Configuration d'un serveur web pour l'installation de l'image RHEL for Edge.
      2. Dans le champ Parent commit, indiquez l'ID du commit parent qui a été généré précédemment. Voir Extraction du commit de l'image RHEL for Edge.
      3. Dans le champ Ref, vous pouvez soit spécifier un nom pour votre livraison, soit le laisser vide. Par défaut, la console web spécifie Ref comme rhel/9/arch_name/edge. Cliquez sur Suivant.
    3. Dans la page Review, vérifiez les personnalisations et cliquez sur Créer une image.

      Le constructeur d'images crée une image RHEL for Edge pour le plan mis à jour.

      Pour visualiser la progression de la création de l'image RHEL for Edge, cliquez sur l'onglet Images.

      Note

      Le processus de création de l'image prend quelques minutes.

      L'image résultante inclut les derniers paquets que vous avez ajoutés, le cas échéant, et a pour parent l'image originale commit ID.

  3. Télécharger l'image RHEL for Edge résultante

    1. Dans l'onglet Images, cliquez sur Download pour enregistrer l'image RHEL for Edge Container (.tar) sur votre système.
  4. Charger l'image du conteneur RHEL for Edge dans Podman, en utilisant cette fois l'identifiant de livraison de l'enfant.

    $ cat ./child-commit_ID-container.tar | sudo podman load
  5. Exécuter Podman.

    #  sudo podman run -p 8080:8080 localhost/edge-test
  6. Mettre à jour le répertoire OSTree :

    # ostree pull-local --repo http://10.0.2.2:8080/repo UPGRADE_FOLDER/repo OSTREE_REF
    # ostree summary --update --repo http://10.0.2.2:8080/repo
  7. Sur le système RHEL approvisionné, à partir de l'image de bord originale, vérifiez l'état actuel.

    $ rpm-ostree status

    S'il n'y a pas de nouvel identifiant de livraison, exécutez la commande suivante pour vérifier si une mise à niveau est disponible :

    $ rpm-ostree upgrade --check

    Si des mises à jour sont disponibles, la sortie de la commande fournit des informations sur les mises à jour disponibles dans le référentiel OSTree, telles que l'ID du commit OSTree actif. Dans le cas contraire, la commande affiche un message indiquant qu'aucune mise à jour n'est disponible.

  8. Mettre à jour OSTree pour rendre disponible le nouvel identifiant de livraison OSTree.

    $ rpm-ostree upgrade

    OSTree vérifie s'il existe une mise à jour dans le référentiel. Si c'est le cas, il récupère la mise à jour et vous demande de redémarrer votre système afin que vous puissiez activer le déploiement de cette nouvelle mise à jour.

  9. Vérifier l'état actuel :

    $ rpm-ostree status

    Vous pouvez maintenant voir qu'il y a 2 commits disponibles :

    • L'engagement actif du parent.
    • Un nouvel engagement qui n'est pas actif et qui contient une différence ajoutée.
  10. Pour activer le nouveau déploiement et rendre la nouvelle validation active, redémarrez votre système.

    # systemctl reboot

    L'installateur Anaconda redémarre dans le nouveau déploiement. Sur l'écran de connexion, vous pouvez voir un nouveau déploiement disponible pour démarrer.

  11. Si vous souhaitez démarrer sur le dernier commit/déploiement, la commande rpm-ostree upgrade ordonne automatiquement les entrées de démarrage de manière à ce que le nouveau déploiement soit le premier de la liste. En option, vous pouvez utiliser la touche fléchée de votre clavier pour sélectionner l'entrée du menu GRUB et appuyer sur Entrée.
  12. Fournissez les informations d'identification de votre compte d'utilisateur.
  13. Vérifier l'état de l'OSTree :

    $ rpm-ostree status

    La sortie de la commande fournit l'identifiant de l'engagement actif.

  14. Pour voir les paquets modifiés, s'il y en a, lancez un diff entre le commit parent et le nouveau commit :

    $ rpm-ostree db diff parent_commit new_commit

    La mise à jour indique que le paquet que vous avez installé est disponible et prêt à être utilisé.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.