Les référentiels de logiciels sont généralement utilisés sur Internet et peuvent être consultés par plusieurs utilisateurs dans le monde. Cependant, vous pouvez créer votre propre référentiel local sur votre serveur local et l'utiliser en tant qu'utilisateur unique, ou autoriser l'accès à d'autres machines sur votre réseau local à l'aide d'un serveur Web ou FTP.
L'avantage de créer un référentiel local est que vous n'avez pas besoin d'une connexion Internet pour installer des packages logiciels ou des mises à jour. Un autre avantage est, bien sûr, la vitesse de téléchargement. Étant donné que les packages sont téléchargés via un réseau local, les mises à jour s'exécutent rapidement.
Yellowdog Updater, Modified (YUM) ou Dandified YUM (DNF) sont des gestionnaires de packages logiciels qui gèrent les distributions Linux basées sur RPM. Avec YUM ou DNF, vous pouvez installer et mettre à jour des groupes d'ordinateurs sans avoir à mettre à jour manuellement chaque RPM.
Dans cet article, j'expliquerai comment configurer un référentiel YUM/DNF basé sur Apache local sur Red Hat Enterprise Linux (RHEL) 8, à l'aide du DVD d'installation ou du fichier ISO. Je vais également vous montrer comment rechercher et installer des packages logiciels sur les machines clientes RHEL 8 à l'aide du serveur Web Apache. Nous aborderons le même processus pour NGINX et FTP dans de prochains articles.
[Vous voulez essayer Red Hat Enterprise Linux ? Téléchargez-le maintenant gratuitement.]
Prérequis
Vous devrez configurer deux systèmes Red Hat Enterprise Linux 8 :un serveur de référentiel local et une machine cliente qui utilisera le référentiel local à partir du serveur local. Le résultat ressemblera à ceci :
-
Serveur de référentiel local :RHEL 8 [10.0.0.10]
-
Ordinateur client local :RHEL 8 [10.0.0.11]
-
DVD d'installation RHEL 8
-
Serveur Web Apache
Créer votre référentiel
La création de votre référentiel implique un certain nombre d'étapes. Parcourons-les.
Étape 1 :Monter le support Red Hat Enterprise Linux 8
Commencez par monter le support local (le DVD, la clé USB, etc.) qui contient Red Hat Enterprise Linux 8. Utilisez le DVD d'installation :
$ sudo mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
Ou montez l'image ISO :
$ sudo mount -o loop rhel-8.0-x86_64-dvd.iso /mnt
Étape 2 :Créer un référentiel YUM local à partir du support monté
Déplacez les fichiers de dépôt existants situés dans /etc/yum.repos.d
:
$ sudo mv /etc/yum.repos.d/*.repo /tmp/
À partir de ce moment, il vaut mieux continuer en tant qu'utilisateur root. Passez en superutilisateur avec su
commande.
Ensuite, créez un répertoire pour le dépôt :
# mkdir /local_repo
Utilisez ce répertoire avec Nginx ou Apache pour diffuser des fichiers sur le réseau local.
Créez le nouveau fichier de configuration du référentiel local, local-dvdrom.repo
, sous le /etc/yum.repos.d
répertoire :
# touch /etc/yum.repos.d/local-dvdrom.repo
# chmod u+rw,g+r,o+r /etc/yum.repos.d/local-dvdrom.repo
Étape 3 :copier le contenu multimédia dans le répertoire local
Copiez les fichiers ISO localement sous le /local_repo
répertoire :
# cd /mnt
# tar cvf - . | (cd /local_repo/; tar xvf -)
Attendez que les fichiers soient copiés, puis vérifiez que les fichiers ont été copiés en utilisant :
# ls -l /local_repo/
total 56
dr-xr-xr-x. 4 root root 38 Apr 4 2019 AppStream
dr-xr-xr-x. 4 root root 38 Apr 4 2019 BaseOS
dr-xr-xr-x. 3 root root 18 Apr 4 2019 EFI
-r--r--r--. 1 root root 8266 Mar 1 2019 EULA
-r--r--r--. 1 root root 1455 Apr 4 2019 extra_files.json
-r--r--r--. 1 root root 18092 Mar 1 2019 GPL
dr-xr-xr-x. 3 root root 76 Apr 4 2019 images
dr-xr-xr-x. 2 root root 256 Apr 4 2019 isolinux
-r--r--r--. 1 root root 103 Apr 4 2019 media.repo
-r--r--r--. 1 root root 1669 Mar 1 2019 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root 5134 Mar 1 2019 RPM-GPG-KEY-redhat-release
-r--r--r--. 1 root root 1796 Apr 4 2019 TRANS.TBL
Étape 4 :Configurer le référentiel YUM/DNF local
Modifiez le fichier de configuration du dépôt que nous avons créé précédemment :
# vim /etc/yum.repos.d/local-dvdrom.repo
Collez-y cette configuration :
[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Installez les packages requis pour créer, configurer et gérer le dépôt local :
# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalRepo_AppStream 94 MB/s | 5.3 MB 00:00
LocalRepo_BaseOS 97 MB/s | 2.2 MB 00:00
repo id repo name status
LocalRepo_AppStream LocalRepo_AppStream 4,672
LocalRepo_BaseOS LocalRepo_BaseOS 1,658
# yum install createrepo yum-utils
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:02:33 ago on Sat 05 Oct 2019 09:52:46 PM UTC.
Package dnf-utils-4.0.2.2-3.el8.noarch is already installed.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
createrepo_c x86_64 0.11.0-1.el8 LocalRepo_AppStream 76 k
Installing dependencies:
createrepo_c-libs x86_64 0.11.0-1.el8 LocalRepo_AppStream 101 k
drpm x86_64 0.3.0-14.el8 LocalRepo_AppStream 71 k
Transaction Summary
================================================================================
Install 3 Packages
Total size: 249 k
Installed size: 556 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : drpm-0.3.0-14.el8.x86_64 1/3
Installing : createrepo_c-libs-0.11.0-1.el8.x86_64 2/3
Installing : createrepo_c-0.11.0-1.el8.x86_64 3/3
Running scriptlet: createrepo_c-0.11.0-1.el8.x86_64 3/3
Verifying : createrepo_c-0.11.0-1.el8.x86_64 1/3
Verifying : createrepo_c-libs-0.11.0-1.el8.x86_64 2/3
Verifying : drpm-0.3.0-14.el8.x86_64 3/3
Installed products updated.
Installed:
createrepo_c-0.11.0-1.el8.x86_64 createrepo_c-libs-0.11.0-1.el8.x86_64
drpm-0.3.0-14.el8.x86_64
Complete!
Enfin, exécutez le createrepo
commande :
# createrepo /local_repo/
Directory walk started
Directory walk done - 6647 packages
Temporary output repo path: /local_repo/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Étape 5 :Tester et vérifier votre référentiel local
Au cours de cette étape, vous nettoyez les fichiers du référentiel temporaire et vérifiez que le référentiel local est activé :
# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 files removed
# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalRepo_AppStream 120 MB/s | 5.3 MB 00:00
LocalRepo_BaseOS 103 MB/s | 2.2 MB 00:00
repo id repo name status
LocalRepo_AppStream LocalRepo_AppStream 4,672
LocalRepo_BaseOS LocalRepo_BaseOS 1,658
Vérifiez que le dépôt local a été créé :
# ls /local_repo/repodata/
26617821a5263fb13c7a49cc5e2d0b979b926eb17b9b4ed0b7df624e04c272f2-other.sqlite.bz2
5626e6dd41648dc6395def6889f4cc0e7f1006bb7d7eca748c9abd4c67fa5b9b-other.xml.gz
6290a72e46a90f98896c14f7664440de10c798d158ce0afe5f15a9f3896b7824-primary.xml.gz
a5c265589796231ed91b8b25a0473d05915bf62496495a004d321d042b26360c-filelists.sqlite.bz2
c8b51f43bdaa4f14cd5b083851cef1068e9284fa6557eb4552ba2ae22e7f72d5-primary.sqlite.bz2
ed21f77d28e263df02739a4bd55eb7247ffd0531c871bfe677d4b205dbffd5e8-filelists.xml.gz
repomd.xml
Vous pouvez voir que le référentiel local a généré des fichiers, donc tout va bien à ce stade.
Si vous lisez attentivement la sortie de la commande ci-dessus, vous verrez le message d'avertissement, This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register
. Si vous souhaitez supprimer ou empêcher ce message lors de l'exécution du dnf
ou yum
commande puis éditez le fichier /etc/yum/pluginconf.d/subscription-manager.conf
:
# vim /etc/yum/pluginconf.d/subscription-manager.conf
et modifiez le paramètre enabled=1
à enabled=0
:
[main]
enabled=0
Configurer votre serveur Web Apache
Comme je l'ai déjà mentionné, cet article couvre la configuration de votre propre référentiel à l'aide du serveur Web Apache. Passons en revue l'installation et la configuration d'Apache pour servir votre dépôt.
Installer Apache
Pour installer le httpd
Paquet (Apache) utilisant YUM :
# yum install httpd
Last metadata expiration check: 3:38:03 ago on Sun 06 Oct 2019 09:51:22 AM UTC.
Dependencies resolved.
=========================================================================================
Package Arch Version Repository Size
=========================================================================================
Installing:
httpd x86_64 2.4.37-10.module+el8+2764+7127e69e LocalRepo_AppStream 1.4 M
Installing dependencies:
apr x86_64 1.6.3-9.el8 LocalRepo_AppStream 125 k
apr-util x86_64 1.6.1-6.el8 LocalRepo_AppStream 105 k
httpd-filesystem noarch 2.4.37-10.module+el8+2764+7127e69e LocalRepo_AppStream 34 k
httpd-tools x86_64 2.4.37-10.module+el8+2764+7127e69e LocalRepo_AppStream 101 k
mod_http2 x86_64 1.11.3-1.module+el8+2443+605475b7 LocalRepo_AppStream 156 k
mailcap noarch 2.1.48-3.el8 LocalRepo_BaseOS 39 k
redhat-logos-httpd noarch 80.7-1.el8 LocalRepo_BaseOS 25 k
Installing weak dependencies:
apr-util-bdb x86_64 1.6.1-6.el8 LocalRepo_AppStream 25 k
apr-util-openssl x86_64 1.6.1-6.el8 LocalRepo_AppStream 27 k
Enabling module streams:
httpd 2.4
Transaction Summary
=========================================================================================
Install 10 Packages
Total download size: 2.0 M
Installed size: 5.5 M
Is this ok [y/N]:
Configurer Apache pour qu'il démarre automatiquement au démarrage
Une fois Apache installé, démarrez et activez le httpd
service pour démarrer automatiquement au démarrage et vérifier son état à l'aide des commandes suivantes :
# systemctl start httpd
# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disa>
Active: active (running) since Sun 2019-10-06 10:15:47 UTC; 22s ago
Main PID: 16880 (httpd)
Tasks: 213 (limit: 2348)
Memory: 7.6M
CGroup: /system.slice/httpd.service
├─16880 /usr/sbin/httpd -DFOREGROUND
├─16881 /usr/sbin/httpd -DFOREGROUND
├─16883 /usr/sbin/httpd -DFOREGROUND
├─16884 /usr/sbin/httpd -DFOREGROUND
└─16885 /usr/sbin/httpd -DFOREGROUND
Oct 06 10:15:47 server systemd[1]: Starting Apache HTTP Server...
Oct 06 10:15:47 httpd[16880]: AH00558: httpd: Could not reliably determine the>
Oct 06 10:15:47 server httpd[16880]: Server configured, listening on: port 80
Oct 06 10:15:47 server systemd[1]: Started The Apache HTTP Server.
Configurer le pare-feu
Ensuite, configurez le pare-feu pour qu'Apache soit accessible :
# firewall-cmd --zone=public --permanent --add-service=http
success
# firewall-cmd --zone=public --permanent --add-service=https
success
# firewall-cmd --reload
success
Vérifier qu'Apache est opérationnel
Vous pouvez maintenant vérifier que votre serveur Apache est opérationnel en accédant au localhost
URL sur votre navigateur Web. La page Web Apache par défaut http://localhost/
doit être affiché.
Configurer Apache
Pour configurer Apache, ouvrez le fichier de configuration :
# vim /etc/httpd/conf/httpd.conf
Une fois ouvert, recherchez le DocumentRoot
ligne et remplacez-la par :
DocumentRoot "/local_repo"
Changez ensuite le /var/www/http
section répertoire :
<Directory "/local_repo">
Options All Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Tester et nettoyer
Maintenant, redémarrez le service Apache et testez son état :
# systemctl start httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disab>
Active: active (running) since Sun 2019-10-06 14:06:34 UTC; 7s ago
Docs: man:httpd.service(8)
Main PID: 5402 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 11528)
Memory: 39.3M
CGroup: /system.slice/httpd.service
├─5402 /usr/sbin/httpd -DFOREGROUND
├─5403 /usr/sbin/httpd -DFOREGROUND
├─5404 /usr/sbin/httpd -DFOREGROUND
├─5405 /usr/sbin/httpd -DFOREGROUND
└─5406 /usr/sbin/httpd -DFOREGROUND
Oct 06 14:06:34 server systemd[1]: Starting The Apache HTTP Server...
Oct 06 14:06:34 server httpd[5402]: AH00558: httpd: Could not reliably determine the ser>
Oct 06 14:06:34 server httpd[5402]: Server configured, listening on: port 80
Oct 06 14:06:34 server systemd[1]: Started The Apache HTTP Server.
Tout est bon. Supprimez la page d'accueil afin de pouvoir diffuser les fichiers de dépôt :
# rm -rf /etc/httpd/conf.d/welcome.conf
Maintenant, testez httpd
et redémarrez Apache :
# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
# systemctl restart httpd
Modifier les autorisations et définir SELinux
Continuez la configuration de la sécurité en changeant les permissions sur le local_repo
répertoire et configuration de SELinux. Pour modifier les autorisations :
# setfacl -R -m u:httpd:rwx /local_repo/
Ensuite, vérifiez si SELinux applique :
# getenforce
Enforcing
Si c'est Enforcing
, saisissez :
# chcon -Rt httpd_sys_content_t /local_repo/
Si SELinux n'est pas défini sur Enforcement, les fichiers ne seront pas servis à partir du dépôt.
# setenforce enforcing
Et rendez le changement permanent en éditant le fichier /etc/sysconfig/selinux et définissez la valeur suivante :
SELINUX=enforcing
Configurer le client
Maintenant, pour configurer le référentiel de la machine client Red Hat Enterprise Linux 8.
Ajouter le dépôt
Sur la machine cliente, ajoutez les dépôts locaux du serveur à la configuration YUM du client :
$ sudo vim /etc/yum.repos.d/local-rhel8.repo
Collez ensuite la configuration suivante (assurez-vous de modifier l'adresse IP du serveur en fonction de votre configuration) :
[LocalServerRepo]
name=LocalServerRepo
enabled=1
gpgcheck=0
baseurl=[http://](http://10.0.0.10/)[**10.0.0.10**](http://10.0.0.10/)[/](http://10.0.0.10/)
Tester le dépôt
Testez le LocalServerRepo
en installant un package. Par exemple :
$ sudo yum install mc
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:01:42 ago on Sun 06 Oct 2019 02:14:03 PM UTC.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mc x86_64 1:4.8.19-9.el8 LocalServerRepo 1.9 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 1.9 M
Installed size: 6.8 M
Is this ok [y/N]: y
Downloading Packages:
mc-4.8.19-9.el8.x86_64.rpm 34 MB/s | 1.9 MB 00:00
--------------------------------------------------------------------------------
Total 32 MB/s | 1.9 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mc-1:4.8.19-9.el8.x86_64 1/1
Running scriptlet: mc-1:4.8.19-9.el8.x86_64 1/1
Verifying : mc-1:4.8.19-9.el8.x86_64 1/1
Installed products updated.
Installed:
mc-1:4.8.19-9.el8.x86_64
Complete!
C'est super! Tout fonctionne comme prévu. Vous disposez maintenant d'un référentiel YUM/DNF local basé sur Apache dans Red Hat Enterprise Linux 8, à l'aide du DVD d'installation ou du fichier ISO.