Rechercher

11.5. Rétablissement de RHEL pour les images Edge

download PDF

Vous pouvez vérifier si l'image mise à jour a été déployée avec succès ou non. Si le déploiement échoue, vous pouvez revenir à une version antérieure (commit). Pour revenir à un état fonctionnel antérieur, vous pouvez soit effectuer les étapes manuellement, soit utiliser un processus automatisé.

11.5.1. Comment les images RHEL for Edge sont-elles réintégrées ?

Avec les images RHEL for Edge, seules les mises à jour transactionnelles sont appliquées au système d'exploitation. Avec les mises à jour transactionnelles, vous pouvez facilement revenir sur les mises à jour infructueuses jusqu'au dernier bon état connu, ce qui permet d'éviter toute défaillance du système pendant les mises à jour.

Vous pouvez utiliser des retours en arrière intelligents avec Greenboot pour éliminer les problèmes de choix entre la stabilité de l'application et l'application des mises à jour de sécurité.

Greenboot exploite le site rpm-ostree et exécute des contrôles de santé personnalisés au démarrage du système. En cas de problème, le système annule les modifications et préserve le dernier état de fonctionnement. Lorsque vous déployez une mise à jour rpm-ostree, elle exécute des scripts pour vérifier que les services critiques peuvent encore fonctionner après la mise à jour. Si le système ne fonctionne pas, la mise à jour revient à la dernière version fonctionnelle connue du système. Ce processus garantit que votre dispositif RHEL for Edge est dans un état opérationnel.

Voici la structure du répertoire de Greenboot :

Exemple 11.1. Structure des répertoires de Greenboot

etc
└─ greenboot
   ├─ check
   |   └─ required.d
   |   └─ init.py
   └─ green.d
   └─ red.d
/etc/greenboot/check/required.d
Contient les contrôles de santé qui ne doivent pas échouer.
/etc/greenboot/check/wanted.d
Contient les contrôles de santé susceptibles d'échouer.
/etc/greenboot/green.d
Contient les scripts à exécuter après un démarrage réussi.
/etc/greenboot/red.d
Contient les scripts à exécuter après un échec de démarrage. Le système tente de démarrer trois fois et, en cas d'échec, il exécute les scripts.

Le diagramme suivant illustre le processus de retour en arrière de l'image RHEL for Edge.

Image restoration process

11.5.2. Rétablissement manuel des images RHEL for Edge

Si le déploiement de la mise à jour de l'image RHEL for Edge échoue ou si la mise à jour ne fonctionne pas correctement, vous pouvez revenir manuellement à une version de déploiement antérieure.

Pour revenir à une version antérieure, procédez comme suit :

Procédure

  1. Exécutez la commande rollback:

    # rpm-ostree rollback

    La sortie de la commande fournit des détails sur l'ID d'engagement qui est déplacé et indique une transaction terminée avec les détails du paquet supprimé.

  2. Redémarrer le système.

    # systemctl reboot

    La commande active le commit précédent avec le contenu stable. Les modifications sont appliquées et la version précédente est restaurée.

11.5.3. Rolling back des images RHEL for Edge à l'aide d'un processus automatisé

Les contrôles Greenboot fournissent un cadre intégré au processus de démarrage et peuvent déclencher des retours en arrière à l'adresse rpm-ostree lorsqu'un contrôle de santé échoue. Pour les contrôles de santé, vous pouvez créer un script personnalisé qui indique si un contrôle de santé a réussi ou échoué. En fonction du résultat, vous pouvez décider du moment où un retour en arrière doit être déclenché.

Pour créer un script de bilan de santé, procédez comme suit :

Procédure

  1. Créez un script qui renvoie un code de sortie standard 0.

    Par exemple, le script suivant permet de s'assurer que le serveur DNS configuré est disponible :

    #!/bin/bash
    
    DNS_SERVER=$(grep ^nameserver /etc/resolv.conf | head -n 1 | cut -f2 -d" ")
    COUNT=0
    # check DNS server is available
    ping -c1 $DNS_SERVER
    while [ $? != '0' ] && [ $COUNT -lt 10 ]; do
    ((COUNT++))
    echo "Checking for DNS: Attempt $COUNT ."
    sleep 10
    ping -c 1 $DNS_SERVER
    done
  2. Inclure un fichier exécutable pour les contrôles sanitaires à l'adresse /etc/greenboot/check/required.d/.

    chmod +x check-dns.sh

    Lors du redémarrage suivant, le script est exécuté dans le cadre du processus de démarrage, avant que le système n'entre dans la cible boot-complete.target. Si les contrôles de santé sont réussis, aucune action n'est entreprise. Dans le cas contraire, le système est redémarré plusieurs fois, avant de marquer l'échec de la mise à jour et de revenir à la mise à jour précédente.

Verification steps

Pour vérifier si la passerelle par défaut est accessible, exécutez le script de contrôle de santé suivant :

  1. Créez un script qui renvoie un code de sortie standard 0.

    #!/bin/bash
    
    DEF_GW=$(ip r | awk '/^default/ {print $3}')
    SCRIPT=$(basename $0)
    
    count=10
    connected=0
    ping_timeout=5
    interval=5
    
    while [ $count -gt 0 -a $connected -eq 0 ]; do
      echo "$SCRIPT: Pinging default gateway $DEF_GW"
      ping -c 1 -q -W $ping_timeout $DEF_GW > /dev/null 2>&1 && connected=1 || sleep $interval
      ((--count))
    done
    
    if [ $connected -eq 1 ]; then
      echo "$SCRIPT: Default gateway $DEF_GW is reachable."
      exit 0
    else
      echo "$SCRIPT: Failed to ping default gateway $DEF_GW!" 1>&2
      exit 1
    fi
  2. Inclure un fichier exécutable pour les contrôles de santé dans le répertoire /etc/greenboot/check/required.d/.

    chmod +x check-gw.sh
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.