Recherche de site Web

Comment configurer le référentiel HTTP Yum local sur CentOS 7


Un dépôt de logiciels (« repo » en abrégé) est un emplacement central de stockage de fichiers pour conserver et maintenir les paquets logiciels, à partir duquel les utilisateurs peuvent récupérer des paquets et les installer sur leurs ordinateurs.

Les référentiels sont souvent stockés sur des serveurs sur un réseau, par exemple Internet, qui peuvent être consultés par plusieurs utilisateurs. Cependant, vous pouvez créer et configurer un référentiel local sur votre ordinateur et y accéder en tant qu’utilisateur unique ou autoriser l’accès à d’autres machines sur votre réseau local (LAN).

L’un des avantages de la mise en place d’un référentiel local est que vous n’avez pas besoin d’une connexion Internet pour installer des progiciels.

YUM (Yellowdog Updater Modified) est un outil de gestion de paquets largement utilisé pour RPM (RedHat Package Manager) basé sur les systèmes Linux, qui facilite l’installation de logiciels sur Red Hat/CentOS Linux.

Dans cet article, nous allons vous expliquer comment configurer un référentiel YUM local sur un serveur Web HTTP (Nginx) sur CentOS 7 VPS et vous montrer également comment trouver et installer des packages logiciels sur les machines clientes CentOS 7.

Notre environnement de test

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Étape 1 : Installer Nginx Web Server

1. Commencez par installer le serveur HTTP Nginx à partir du référentiel EPEL à l’aide du gestionnaire de paquets YUM comme suit.

# yum install epel-release
yum install nginx 

2. Une fois que vous avez installé le serveur Web Nginx, vous pouvez le démarrer pour la première fois et l’activer pour qu’il démarre automatiquement au démarrage du système.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Ensuite, vous devez ouvrir les ports 80 et 443 pour autoriser le trafic Web vers le service Nginx, mettre à jour les règles de pare-feu du système pour autoriser les paquets entrants sur HTTP et HTTPS à l’aide des commandes ci-dessous.

# firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

4. Vous pouvez maintenant confirmer que votre serveur Nginx est opérationnel en utilisant l’URL suivante ; si vous voyez la page Web Nginx par défaut, tout va bien.

http://SERVER_DOMAIN_NAME_OR_IP 

Étape 2 : Créer un référentiel local Yum

5. Dans cette étape, vous devez installer les packages requis pour la création, la configuration et la gestion de votre référentiel local.

# yum install createrepo  yum-utils

6. Ensuite, créez les répertoires nécessaires (dépôts yum) qui stockeront les packages et toutes les informations associées.

# mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Utilisez ensuite l’outil de reposync pour synchroniser les référentiels CentOS YUM avec les répertoires locaux, comme indiqué.

# reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Exemple de sortie
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

Dans les commandes ci-dessus, l’option :

  • -g – permet de supprimer les paquets qui échouent à la vérification de la signature GPG après le téléchargement.
  • -l – active la prise en charge du plugin Yum.
  • -d – permet de supprimer les paquets locaux qui ne sont plus présents dans le dépôt.
  • -m – permet de télécharger comps.xml fichiers.
  • --repoid – spécifie l’ID du dépôt.
  • --newest-only – indique à reposync de n’extraire que la dernière version de chaque paquet dans les dépôts.
  • --download-metadata – permet de télécharger toutes les métadonnées autres que celles par défaut.
  • --download_path – spécifie le chemin d’accès pour télécharger les paquets.

8. Ensuite, vérifiez le contenu de vos répertoires locaux pour vous assurer que tous les paquets ont été synchronisés localement.

# ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

9. Créez maintenant un nouveau dépôt de données pour les dépôts locaux en exécutant les commandes suivantes, où l’indicateur -g est utilisé pour mettre à jour les informations du groupe de paquets à l’aide du fichier .xml spécifié.

# createrepo -g comps.xml /var/www/html/repos/base/  
createrepo -g comps.xml /var/www/html/repos/centosplus/	
createrepo -g comps.xml /var/www/html/repos/extras/  
createrepo -g comps.xml /var/www/html/repos/updates/  

10. Pour permettre l’affichage des dépôts et des packages qu’ils contiennent, via un navigateur Web, créez un bloc de serveur Nginx qui pointe vers la racine de vos dépôts comme indiqué.

# vim /etc/nginx/conf.d/repos.conf 

Ajoutez la configuration suivante au fichier repos.conf.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Enregistrez le fichier et fermez-le.

11. Redémarrez ensuite votre serveur Nginx et affichez les référentiels à partir d’un navigateur Web en utilisant l’URL suivante.

http://repos.test.lab

Étape 3 : Créer une tâche Cron pour synchroniser et créer des dépôts

12. Ensuite, ajoutez une tâche cron qui synchronisera automatiquement vos dépôts locaux avec les dépôts officiels de CentOS pour récupérer les mises à jour et les correctifs de sécurité.

# vim /etc/cron.daily/update-localrepos

Ajoutez ces commandes dans le script.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

Enregistrez le script, fermez-le et définissez les autorisations appropriées sur celui-ci.

# chmod 755 /etc/cron.daily/update-localrepos

Étape 4 : Configurer le référentiel Yum local sur les machines clientes

13. Maintenant, sur vos machines clientes CentOS, ajoutez vos dépôts locaux à la configuration YUM.

# vim /etc/yum.repos.d/local-repos.repo

Copiez et collez la configuration ci-dessous dans le fichier local-repos.repo (apportez des modifications si nécessaire).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

Enregistrez le fichier et commencez à utiliser vos miroirs YUM locaux.

14. Ensuite, exécutez la commande suivante pour afficher vos dépôts locaux dans la liste des dépôts YUM disponibles, sur les machines clientes.

#  yum repolist
OR
yum repolist all

C’est tout! Dans cet article, nous avons expliqué comment configurer un dépôt YUM local sur CentOS 7. Nous espérons que vous avez trouvé ce guide utile. Si vous avez des questions ou d’autres réflexions à partager, utilisez le formulaire de commentaire ci-dessous.

Articles connexes: