Il existe de nombreuses raisons pour lesquelles vous pouvez souhaiter un référentiel Red Hat Enterprise Linux local. La bande passante est un facteur majeur car le téléchargement de mises à jour à partir d'Internet peut prendre beaucoup de temps et de bande passante. Une autre raison peut être que vos serveurs ne sont pas connectés à Internet et doivent donc obtenir leurs mises à jour à partir d'une source locale. Vous pouvez avoir un environnement de développement pour lequel vous préféreriez ne pas dépenser d'argent en licences, mais que vous devez tout de même mettre à jour. Quelle que soit votre raison, ce didacticiel vous guidera tout au long du processus d'installation de votre référentiel local.
Remarque :Le serveur qui sert de référentiel ne doit servir que de référentiel.
Installer les packages nécessaires pour les référentiels
yum install yum-utils createrepo httpd
Créer les répertoires de vos dépôts
mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc
Commandes utiles
Répertoriez les dépôts sur votre serveur activés et désactivés.
yum repolist all
Lister les dépôts disponibles sur votre abonnement
subscription-manager repos --list
Activer un dépôt sur votre système
subscription-manager repos --enable=rhel-6-server-optional-rpms
Désactiver un dépôt sur votre système
subscription-manager repos --disble=rhel-6-server-optional-rpms
Nous voulons que les référentiels serveur, dts et rhsc (collections de logiciels) soient activés sur le référentiel
synchroniser les dépôts
Une fois que tous ces référentiels ont été activés, exécutez la commande suivante pour chacun d'eux en modifiant le download_path pour chacun afin qu'il corresponde au download_path de ce référentiel.
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
Remarque :Le dépôt du serveur prendra le plus de temps. Comme toute la nuit. Les autres devraient être beaucoup plus courts.
Commande Createrepo
Une fois les packages téléchargés, il suffit de cliquer sur la commande createrepo ci-dessous pour chaque référentiel
createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml
Remarque :Le -g comps.xml n'est nécessaire que pour le dépôt du serveur.
Configuration des serveurs clients
Vous disposez maintenant d'un référentiel local, mais vous devez apporter quelques modifications à vos serveurs Red Hat qui utiliseront ces référentiels pour les mises à jour.
Assurez-vous d'abord que tous les autres dépôts ont l'indicateur activé défini sur 0 (zéro) dans le fichier de dépôt dans /etc/yum.repos.d. Je ne supprimerais pas les repos pour l'instant car vous pourriez en avoir besoin plus tard. Il suffit de changer le drapeau activé.
Vous devez maintenant créer un fichier .repo qui sera ajouté au répertoire /etc/yum.repos.d sur chaque serveur utilisant les référentiels. Ce fichier devrait ressembler au fichier suivant.
vi /etc/yum.repos.d/name_of_repo_file.repo
[server] name = rhel-6-server-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/server gpgcheck = 0 enabled = 1 [dts] name = rhel-server-dts-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts gpgcheck = 0 enabled = 1 [dts2] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1 [rhsc] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1
Créer un script et une tâche Cron pour mettre à jour vos référentiels
Créez un script nommé update-repository.sh et placez-le dans /usr/local/bin avec le contenu suivant :
vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/server/ reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts/ \\ reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts2/ echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh
Notez que je l'ai déposé dans un journal que j'ai configuré pour une rotation mensuelle.
Créez un fichier dans /etc/cron.d et nommez-le update-repository avec le contenu suivant.
vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh
Réflexions finales
Il existe de nombreuses façons différentes de mettre en place un référentiel local et je n'ai certainement pas inventé la roue pour celle-ci. Consultez mes sources ci-dessous pour plus d'informations et un aperçu de votre configuration.
Sources
- https://access.redhat.com/solutions/23016
- http://www.oracle.com/technetwork/articles/servers-storage-admin/yum-repo-setup-1659167.html
- https://www.howtoforge.com/creating_a_local_yum_repository_centos