Configuration d’un serveur mirroir yum CentOS local

Cet article sera la première étape d’une suite d’article qui portera sur la configuration d’un serveur PXE, et par la suite de la configuration de Kickstart pour effectuer des installations de serveurs CentOS rapide et efficaces. Ce premier article, vous montrera comment monter un serveur de réplication CentOS local, pour ne pas avoir à utiliser votre précieuse bande passante à chaque fois vous voulez configurer un nouveau serveur.
Avant de commencer, il est important de comprendre que répliquer l’ensemble du répertoire CentOS (sans les ISOs) prendra environ 22Gb par version. Habituellement, il n’est pas nécessaire de garder toutes les versions, il est préférable de garder les dernières versions de chaque branche (4.x, 5.x et bientôt 6.x). Donc, si je fais un calcul rapide, cela donne environ 70Gb seulement pour le mirroir, donc assurez-vous d’avoir suffisamment d’espace.
Je ne passerai pas ici l’installation du serveur en tant que tel, vous devriez bien vous en sortir, je prends donc en compte que vous avez un serveur CentOS fonctionnel, sur lequel vous pouvez vous connecter en SSH et que vous avez déjà fais le « yum update » pour mettre à jour les packages.
Configuration Apache
# On installe apache et php yum install http php chkconfig --level 345 httpd on service httpd start # On crée le répertoire où sera storé les packages CentOS mkdir -p /var/www/html/centos/5.6 cd /var/www/html/centos # On crée un lien symbolique entre la dernière version et le base, comme ça on peut référer à centos/5/... pour toujours être à la dernière version disponible ln -s 5.6 5
Lors de l’écriture de ce post, la version 5.6 était la dernière version de CentOS, si vous êtes entrain de faire un repository pour 6.x, alors modifiez les lignes en conséquences
Synchronization
Utilisez ce script pour créer vos répertoires de base. De plus ce script peut fonctionner à chaque jour pour garder votre mirroir à jour!
#!/bin/sh rsync="/usr/bin/rsync -avSHP --delete " # Changer votre mirroir si nécessaire mirror=centos.mirror.iweb.ca # Ajouter des versions si nécessaires verlist="4.9 5.6" # Ajouter des architectures si nécessaires archlist="x86_64 i386" # Ajouter des répertoires si nécessaires baselist="os updates centosplus extras" local=/var/www/html/centos for ver in $verlist do for arch in $archlist do for base in $baselist do remote=$mirror::centos/$ver/$base/$arch/ echo ------------------ echo $ver/$base/$arch echo ------------------ echo "$rsync $remote $local/$ver/$base/$arch/" if [ ! -e $local/$ver/$base/$arch ]; then echo "Directory does not exist, creating $local/$ver/$base/$arch" mkdir -p "$local/$ver/$base/$arch" fi $rsync $remote $local/$ver/$base/$arch/ done done done
Encore ici modifiez pour correspondre à la version que vous voulez syncronizer et n’oubliez pas de changer de mirroir si vous « centos.mirror.iweb.ca » est trop loin de chez vous.
Maintenant que le serveur est prêt et qu’il se mettra à jour régulièrement, on doit configurer nos clients, c’est-à-dire que l’on dire à nos installations CentOS où aller chercher les updates, car de base ils iront sur le premier mirroir disponible, et le vôtre servira à rien. Voici donc un fichier de configuration yum.repos.
[base] name=CentOS - Base baseurl=http://server/centos/5.6/os/$basearch/ gpgcheck=1 gpgkey=http://server/centos/5.6/os/$basearch/RPM-GPG-KEY-CentOS-5 #released updates [update] name=CentOS - Updates baseurl=http://server/centos/5.6/updates/$basearch/ gpgcheck=1 gpgkey=http://server/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-5 #released extras [extras] name=CentOS - Extras baseurl=http://server/centos/5.6/extras/$basearch/ gpgcheck=1 gpgkey=http://server/centos/5.6/os/$basearch/RPM-GPG-KEY-CentOS-5 #released CentOSPlus [centosplus] name=CentOS - CentOSPlus baseurl=http://server/centos/5.6/centosplus/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://server/centos/5.6/os/$basearch/RPM-GPG-KEY-CentOS-5
Ce fichier doit remplacer le fichier CentOS-Base.repo et CentOS-Media.repo, voici ce que je fais en temps normal.
mkdir /etc/yum.repos.d/bkp mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bkp nano /etc/yum.repos.d/CentOS-local.repo
Je copie ensuite le contenu du fichier de configuration ci-haut dans ce fichier
Voilà, le tout devrait s’updater localement et sans problème. Si vous avez des questions, utilisez les commentaires.
It's 