Recherche de site Web

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


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

Les référentiels sont souvent stockés sur des serveurs sur un réseau, par exemple Internet, accessible à 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 LAN (Réseau local).

L’un des avantages de la configuration 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 packages 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 expliquerons comment configurer un référentiel YUM local sur un serveur Web HTTP (Nginx) sur un VPS CentOS 7. et vous montre également comment rechercher 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 le serveur Web Nginx

1. Commencez par installer le serveur HTTP Nginx à partir du référentiel EPEL à l'aide du gestionnaire de packages 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 lui permettre de démarrer 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 du 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. Au cours de cette étape, vous devez installer les packages requis pour créer, configurer et gérer 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 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 packages 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 la suppression des packages locaux qui ne sont plus présents dans le référentiel.
  • -m – permet le téléchargement de fichiers comps.xml.
  • --repoid – spécifie l'ID du référentiel.
  • --newest-only – indique à reposync de n'extraire que la dernière version de chaque package 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 de téléchargement des packages.

8. Ensuite, vérifiez le contenu de vos répertoires locaux pour vous assurer que tous les packages 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 référentiel pour les référentiels locaux en exécutant les commandes suivantes, où l'indicateur -g est utilisé pour mettre à jour les informations du groupe de packages à l'aide du spécifié. Fichier .xml.

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 référentiels et des packages qu'ils contiennent, via un navigateur Web, créez un bloc de serveur Nginx qui pointe vers la racine de vos référentiels, comme indiqué.

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

Ajoutez la configuration suivante du 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 référentiels

12. Ensuite, ajoutez une tâche cron qui synchronisera automatiquement vos dépôts locaux avec les dépôts CentOS officiels 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 dessus.

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 les 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 référentiel YUM local sur CentOS 7. Nous espérons que vous avez trouvé ce guide utile. Si vous avez des questions ou d'autres idées à partager, utilisez le formulaire de commentaires ci-dessous.