Comment appliquer des correctifs aux machines Linux résidant dans un environnement hors connexion

Si vous utilisez des machines client Linux qui résident dans un environnement hors connexion, l'agent ne peut pas utiliser YUM pour télécharger des paquets RPM depuis Internet. Au lieu de cela, vous devez procéder comme suit :

  • Configurez et remplissez un ou plusieurs référentiels « sur site » contenant l'ensemble de la bibliothèque des RPM disponibles.
  • Configurez vos machines client pour qu'elles recherchent les RPM manquants dans le référentiel local correct au lieu de les chercher sur Internet.

Les informations suivantes sont des consignes d'ordre général pour la configuration et l'utilisation d'un référentiel local. Si vous avez des questions ou des problèmes spécifiques, contactez le fournisseur de votre système d'exploitation Linux.

Comment configurer un référentiel local

Configuration requise

Vous pouvez utiliser n'importe quelle machine serveur Linux prise en charge comme référentiel local. Seule exigence : qu'elle contienne assez d'espace disque disponible pour stocker l'ensemble de l'inventaire des paquets RPM disponibles. Il existe de nombreux référentiels publics contenant des paquets RPM. Par exemple, il existe un référentiel public pour les RPM RHEL 9, un autre pour les RPM RHEL 8, etc. En règle générale, votre machine de référentiel local doit contenir au moins 100 Go d'espace disque pour chacun des référentiels publics que vous allez télécharger.

Vous devrez sans doute utiliser au moins deux machines serveur Linux pour ce processus.

  • Scénario 1 : Vous pouvez choisir d'utiliser une seule machine, qui servira de référentiel local pour toutes les versions des RPM. Dans ce scénario, la machine utilisée comme référentiel peut télécharger les RPM ayant la même version que l'édition utilisée sur la machine de référentiel. Cependant, vous avez besoin d'une machine distincte pour télécharger les RPM pour chacune des versions d'édition utilisées dans votre entreprise.
  • Par exemple, si votre entreprise contient des machines client RHEL 9 x64, RHEL 8 x64 et CentOS 7 x64, vous pouvez utiliser une machine serveur RHEL 9 x64 comme référentiel local, et y télécharger tous les RPM pour vos serveurs, postes de travail, ordinateurs de bureau, etc. RHEL 9. Vous utilisez alors une machine RHEL 8 x64 et une machine CentOS 7 x64 distinctes pour télécharger tous les RPM pour vos serveurs, postes de travail, ordinateurs de bureau, etc. RHEL 8 et CentOS.RHEL 6 et CentOS. puis transférer ces RPM vers la machine de référentiel local.

  • Scénario 2 : Vous pouvez choisir de conserver trois référentiels locaux différents, l'un pour tous les RPM RHEL 9, un autre pour tous les RPM RHEL 8 et le troisième pour tous les RPM CentOS 7. Ce scénario requiert trois machines dédiées, utilisées comme référentiels, mais l'étape supplémentaire de transfert devient inutile et vous évitez les difficultés de maintenance d'un référentiel conjoint.

Processus de configuration

Comme il faudra probablement plusieurs heures pour télécharger toute la bibliothèque de paquets RPM disponibles vers votre référentiel local, il est recommandé d'effectuer le processus de configuration en deux phases. La phase 1 (téléchargement de tous les RPM disponibles) doit être effectuée à la fin de la journée de travail, afin que le processus de téléchargement puisse s'exécuter pendant la nuit. La phase 2 peut ensuite être réalisée au cours de la journée du lendemain.

Vous devez disposer du privilège Racine (root) pour exécuter les commandes suivantes.

Phase 1

  1. Créez le répertoire à utiliser comme référentiel.
    Par exemple, la commande suivante crée un répertoire qui servira à stocker les RPM Red Hat 9.
  2. mkdir –p /repos/redhat/9

  3. Affichez la liste des référentiels publics disponibles pour remplir votre référentiel local.
    Les référentiels publics disponibles dépendent de votre abonnement RHEL.
  4. yum repolist

  5. Utilisez YUM pour installer le paquet qui contient reposync.
  6. yum install yum-utils

  7. Téléchargez tous les paquets disponibles depuis le référentiel public de votre choix.
    Par exemple, la commande suivante télécharge les RPM du référentiel public rhel-9-for-x86_64-baseos-rpms.
  8. reposync –-gpgcheck –l –-repoid=rhel-9-for-x86_64-baseos-rpms –-download_path=/repos/redhat/9

    Le processus de téléchargement est très long, planifiez-le en conséquence. L'option -gpgcheck permet d'éliminer les paquets qui échouent à la vérification de signature lors du processus de téléchargement.

  9. Répétez l'étape 3 pour chacune des variantes des référentiels publics.
  10. Par exemple, si votre entreprise utilise RHEL 9 à la fois pour Intel et ARM, vous devrez télécharger les RPM depuis les deux référentiels publics associés. Il faut parfois plusieurs jours pour effectuer tous les téléchargements nécessaires.

    N'essayez pas de télécharger des RPM pour une autre version de Red Hat ou CentOS. Par exemple, vous ne pouvez pas utiliser une machine RHEL 9 pour télécharger des RPM pour des machines RHEL 8 x64 ou RHEL 7 x64.

Phase 2

Le processus décrit ici crée un référentiel accessible via HTTP. Il existe d'autres méthodes pour créer un référentiel. N'hésitez pas à adopter la méthode qui vous est la plus familière.

  1. Avec YUM, installez le programme qui permet de créer le référentiel.
  2. yum install createrepo

  3. Créez le référentiel.
  4. createrepo /repos/redhat/9

    Si un message d'erreur signale qu'il est impossible d'ouvrir un fichier *.rpm, vérifiez que l'espace disque est suffisant. Si l'espace n'est pas un problème, répétez l'étape de téléchargement (Étape 3 de la phase 1). Il est possible que le programme ait manqué certains fichiers lors du premier téléchargement.

  5. Installez le service Web Apache.
    Cela vous permettra d'accéder à votre référentiel local à l'aide du protocole HTTP.
  6. yum install httpd

  7. Ouvrez le port 80 dans votre pare-feu local.
    L'opération est nécessaire pour que le référentiel puisse utiliser HTTP. Vous pouvez aussi choisir HTTPS mais cet exemple utilise HTTP pour plus de simplicité.
  8. Modifiez le fichier httpd.conf et ajoutez les entrées suivantes si elles sont absentes.
  9. vi /etc/httpd/conf/httpd.conf

     

    ServerAdmin root@localhost

    DocumentRoot /var/www/html

    ServerName <machinename>

  10. Liez votre nouveau référentiel à l'emplacement de site Web par défaut.
  11. ln -s /repos/redhat /var/www/html/redhat

  12. Vérifiez la syntaxe du service Web Apache.
  13. httpd -t

  14. Démarrez le service Web Apache.
  15. systemctl start httpd

    Vous pouvez être amené à répéter cette commande à chaque redémarrage du serveur. Vous pouvez utiliser les commandes suivantes pour démarrer automatiquement le service à chaque redémarrage du serveur :
    systemctl enable httpd.

  16. Procurez-vous le fichier zip updateinfo.xml.gz.
  17. Les étapes 9 à 13 s'appliquent uniquement aux machines Red Hat.

    yum list-sec

  18. Copiez les fichiers *updateinfo.xml.gz depuis l'emplacement par défaut vers le dossier /repodata.
  19. cp /var/cache/yum/x86_64/9rhServer/rhel-9-for-x86_64-baseos-rpms/*updateinfo.xml.gz /repos/redhat/9/repodata/

  20. Décompressez le fichier *updateinfo.xml.gz.
  21. gzip –d /repos/redhat/9/repodata/*updateinfo.xml.gz

  22. Renommez le fichier *updateinfo.xml pour supprimer les caractères de début inutiles.
  23. mv /repos/redhat/9/repodata/*updateinfo.xml /repos/redhat/9/repodata/updateinfo.xml

  24. Modifiez le référentiel pour confirmer qu'il contient le fichier updateinfo.xml.
  25. modifyrepo /repos/redhat/9/repodata/updateinfo.xml /repos/redhat/9/repodata/

  26. (S'applique uniquement aux machines où SELinux est activé) Donnez la permission à www/html/redhat d'accéder à /repos/redhat.
  27. cd /var/www/html

    chcon -R -t httpd_sys_content_t redhat/

Répétez le processus de configuration pour les autres versions et éditions Linux.

Vous devez répéter tout ou partie du processus de configuration pour chacune des versions de chaque édition Linux prise en charge dans votre entreprise. Par exemple, vous devez utiliser une machine RHEL 9 pour télécharger les RPM RHEL 9, une machine CentOS 7 x64 pour télécharger les RPM CentOS 7 x64, une machine RHEL 8 x64 pour télécharger les RPM RHEL 8 x64, etc. Modifiez les commandes selon vos besoins pour chaque version distincte de Linux.

Scénario 1 : Vous utilisez un seul référentiel pour toutes les versions de Linux.

Supposons que vous utilisiez une machine Red Hat 9 comme référentiel, voici les étapes à répéter pour récupérer les RPM Red Hat 8 :

  1. Sur la machine de référentiel Red Hat 9, répétez l'étape 1 de la phase 1, mais spécifiez /repos/redhat/8.
  2. Sur une machine Red Hat 8, exécutez les étapes 3 et 4 de la phase 1.
    À l'étape 3, le répertoire repos/redhat/9 n'existe pas sur la machine Red Hat 8, alors vous devez soit supprimer l'option -download_path et utiliser la valeur par défaut, soit spécifier un autre emplacement.
  3. Lorsque vous avez fini de télécharger les RPM, transférez-les vers le dossier repos/redhat/8 de votre référentiel local.
    Une fois que vous avez terminé, vous aurez un seul référentiel sur une seule machine, contenant les paquets RPM pour toutes les versions prises en charge de Red Hat.

Scénario 2 : Vous utilisez un référentiel distinct pour chaque version de Linux.

Répétez tout le processus de configuration pour chacune des versions de Linux prises en charge dans votre entreprise.

Pour que vos machines client Linux pointent vers le référentiel local

Vous devez modifier YUM sur chaque client Linux pour qu'il recherche les RPM dans le référentiel local plutôt que sur Internet.

Si vous choisissez de gérer un référentiel local distinct pour chaque version de Linux, vérifiez que chaque client pointe bien vers le référentiel local correct.

  1. Connectez-vous sur la machine client.
  2. Changez de répertoire pour accéder à la liste des emplacements de référentiel.
  3. cd /etc/yum.repos.d

  4. Créez un fichier nommé local.repo, puis configurez-le pour qu'il pointe sur votre nouveau référentiel local.
  5. nano local.repo

    [mon-référ-local]

    name=Local Rhel9 Server Repo

    baseurl=http://es-nxt-rhel9-repo.example.com/redhat/9

    gpgcheck=0

  6. Spécifiez que, si un RPM manque dans le référentiel local, le client ne doit pas tenter de le trouver sur Internet (déconnexion de la machine client).
  7. ls

    vi tout fichier autre que local.repo (par exemple, redhat.repo)

    Recherchez l'ID de votre référentiel (repoid, par exemple rhel-9-for-x86_64-baseos-rpms).

    Set enabled = 0

Maintenance périodique de votre référentiel

Vous devrez tenir votre référentiel local à jour en le resynchronisant régulièrement avec le référentiel public. Lorsque vous exécutez la commande suivante, seuls les nouveaux paquets RPM sont téléchargés vers votre référentiel local.

reposync –gpgcheck –l –repoid=rhel-9-for-x86_64-baseos-rpms –download_path=/repos/redhat/9

createrepo --update /repos/redhat/9

Réseaux « bulle d'air »

Si votre entreprise possède un réseau « bulle d'air » (aucune machine client n'est autorisée à se connecter à une machine dotée d'un accès Internet), vous devez configurer et tenir à jour un deuxième référentiel. Le diagramme suivant illustre cette situation.

Dans ce cas, après avoir défini et configuré votre référentiel connecté comme indiqué plus haut, vous devez définir un deuxième référentiel sur une machine hors connexion, puis utiliser un support amovible pour transférer manuellement les fichiers du référentiel connecté vers le référentiel hors connexion. Vos machines client Linux doivent ensuite être configurées pour pointer vers le référentiel hors connexion plutôt que vers le référentiel connecté.

Informations connexes

https://access.redhat.com/solutions/23016