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.