Installation de Xenserver 5.6 sur un serveur OVH – Partie 2

26/08/2010
Commentaires fermés

Objectif

Le but de cet article est de continuer l’installation de notre serveur Xenserver 5.6 afin de compléter les points suivants:

  • configuration du raid soft
  • configuration de lvm
  • ajout d’un dépot local d’image ISO
  • ajout du de la partition de stockage des machines virtuelles.

Configuration du raid soft

Une fois connecté sur votre serveur XenServer (à l’aide du mot de votre fichier XML de configuration), taper les commandes suivantes.

dd if=/dev/sda of=/dev/sdb bs=512 count=1

Changer le type de partition (raid logiciel) du disque sdb à l’aide de l’outil fdisk:

echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sdb

Créer les partitions RAID1:

mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb3

Création d’un PV sur la partition /dev/md1

pvcreate /dev/md1

Créer la partition de racine:

mkfs.ext3 /dev/md0
cd / && mount /dev/md0 /mnt && rsync -a --progress --exclude=/sys --exclude=/proc --exclude=/dev/shm --exclude=/dev/pts / /mnt
mkdir /mnt/sys
mkdir /mnt/proc
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /etc/fstab

Modifier le Initrd pour gérer la prise en charge du Raid Soft:

mkdir /root/initrd && cd /root/initrd
zcat /boot/initrd-`uname -r`.img | cpio -i && \
cp /lib/modules/`uname -r`/kernel/drivers/md/raid1.ko lib

Modifier le Init pour intéger ce changement:

q="echo Waiting for driver initialization."
sed -r -i "s,^${q}$,\n\necho Loading raid1.ko module\ninsmod /lib/raid1.ko\n${q}\n,g" init
q="resume /var/swap/swap.001"
sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md0\nraidautorun /dev/md1,g" init
r=`grep mkroot /root/initrd/init`
sed -r -i "s|^${r}$|${r/sda1/md0}|g" init

Copier le initrd modifié dans les deux partitions de boot:

find . -print | cpio -o -c | gzip -c > /mnt/boot/initrd-`uname -r`.img
find . -print | cpio -o -c | gzip -c > /boot/initrd-`uname -r`.img

Installer Grub sur le deuxième disque et modifier la configuration pour utiliser la partition RAID:

grub-install /dev/sdb
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/grub/grub.conf
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/grub/menu.lst
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/grub/grub.conf
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/grub/menu.lst

Démonter le deuxième disque et rebooter:

cd ; umount /mnt || umount /dev/md0
sync
reboot

Une fois rebooter, il faut changer le type de partition pour le disque sda et ajouter les partitions au RAID:

echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sda
mdadm -a /dev/md0 /dev/sda1
mdadm -a /dev/md1 /dev/sda3

Vous pouvez suivre l’avancement de la construction du RAID à l’aide de la commande :

cat/proc/mdstat

Création de l’entrepot de stockage de machine virtuelle sur Xen

xe sr-create type=lvm content-type=user device-config:device=/dev/md1 name-label="Local Storage"

Nous allons également créer un entrepot de stockage des images ISO local.

Vous choississez la taille que vous souhaitez. Dans notre cas, nous créons une partition de 20Go

lvcreate -L 20G -n iso `vgscan | grep "Found volume group" | cut -d "\"" -f 2`

Formater cette partition:

mkfs.ext3 /dev/`vgscan | grep "Found volume group" | cut -d "\"" -f 2`/iso

Créer un point de montage:

mkdir /iso

Faire en sorte de monter cette partition au démarrage du système:

export MYVOLUMEGROUP=`vgscan | grep "Found volume group" | cut -d "\"" -f 2`
lvchange -a y /dev/$MYVOLUMEGROUP/iso
mount /dev/$MYVOLUMEGROUP/iso /iso/

echo "# Local ISO Library" >> /etc/rc.local
echo "lvchange -a y /dev/$MYVOLUMEGROUP/iso" >> /etc/rc.local
echo "mount /dev/$MYVOLUMEGROUP/iso /iso" >> /etc/rc.local

Ajouter cet entrepot à la configuration de XenServer:

xe-mount-iso-sr /iso -o bind

L’installation est terminée.

Vous pouvez également ajouter les clés SSH d’ovh au cas où…

echo 'from="213.186.50.100" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAt3XaIhEoRK5sEKm6wtYyazLOx3w+Yv9+bpfEvLftHr2hxZ2TY2A655iwMbgvhHqsMuGEjK9yGkZIQbUgB6HvOgOWOwJSX6Gc9Ac7GuH11xSU8tHDuTQot6fVtgcm2Y/VUFi65Knz9rLHz7h/Zy29ek+UYav5T7juhBIuk57cDxs= root@cache.ovh.net' >> /root/.ssh/authorized_keys2
echo 'from="::ffff:213.186.50.100" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAt3XaIhEoRK5sEKm6wtYyazLOx3w+Yv9+bpfEvLftHr2hxZ2TY2A655iwMbgvhHqsMuGEjK9yGkZIQbUgB6HvOgOWOwJSX6Gc9Ac7GuH11xSU8tHDuTQot6fVtgcm2Y/VUFi65Knz9rLHz7h/Zy29ek+UYav5T7juhBIuk57cDxs= root@cache.ovh.net' >> /root/.ssh/authorized_keys2

bpa Divers

Installation de Xenserver 5.6 sur un serveur OVH – Partie 1

20/08/2010
Commentaires fermés

Préambule

Le but de cet article est d’installer la dernière version de Xenserver sur un serveur dédiée chez OVH.

En effet, OVH ne propose que la version 5.5 alors que la dernière version présente des avantages intéressants (la possibilité de repartir d’un snapshot d’une vm par exemple…)

Je ne pars pas de rien pour cet article. J’ai trouvé cet excellent tuto sur le forum allemand d’OVH ici. Il ne s’agit pas d’une traduction, mais l’essentiel est là.

Installation

Avant de commencer, vous devez disposer d’un serveur fraichement installé sous Linux. N’importe quelle version pourrait faire l’affaire; dans notre cas nous partirons sur une Debian Lenny proposée par OVH avec un partitionnement personnalisé sans RAID.

Les partitions sont les suivantes:

  • sda1 10GB / ext3
  • sda2 2 GB swap

Une fois le système installé et démarré, effectuer ces commandes afin de vider le deuxième disque dur.

dd if=/dev/zero of=/dev/sdb bs=20M count=500

Pour effectuer l’installation, nous avons besoin d’un serveur FTP. Pour cela, nous allons utiliser le système de backup FTP fourni par OVH.

Je vous invite à consulter ce lien pour plus d’information. Il suffit de créer un compte. Nous allons donc utiliser cet espace FTP pour stocker les différentes images ISO et autres besoins.

### Préparation des données ###

# Création des dossiers
mkdir ~/xen5.6
cd ~/xen5.6

# Téléchargement des différentes images ISO
wget http://downloadns.citrix.com.edgesuite.net/akdlm/5158/XenServer-5.6.0-install-cd.iso
wget http://downloadns.citrix.com.edgesuite.net/akdlm/5159/XenServer-5.6.0-linux-cd.iso

# Montage des images ISO
mkdir xen56install xen56linux
mount -o loop XenServer-5.6.0-install-cd.iso xen56install
mount -o loop XenServer-5.6.0-linux-cd.iso xen56linux

Nous allons ensuite copier l’ensemble des données dans un même répertoire :

# Copie des données
mkdir xen56
cp xen56install/* xen56 -R
cp xen56linux/* xen56 -R

Pour installer le XenServer nous allons utiliser un fichier de réponse au format XML. Ceci permet d’installation en mode « siliencieux » et donc de pré-remplir un certain nombre d’information.

Il existe un utilitaire XS-Tool qui permet de créer ce fichier de réponse.

Il semble qu’il soit préférable de ne pas utiliser le mode DHCP; dans la mesure où nous disposons de toutes les informations, autant les renseigner directement dans ce fichier.

Créer un fichier answer.xml contentant:

# Création du fichier de réponse
echo '<installation mode="fresh" srtype="lvm">
<bootloader>grub</bootloader>
<primary-disk gueststorage="no">sda</primary-disk>
<keymap>fr</keymap>
<hostname>xen01</hostname>
<root-password>xenpassword</root-password>
<source type ="url">ftp://<username>:<password>@<IP>/xen56/</source>
<admin-interface name="eth0" proto="static">
<ip>a.b.c.d</ip>
<subnet-mask>255.255.255.0</subnet-mask>
<gateway>a.b.c.254</gateway>
</admin-interface>
<nameserver>213.186.33.99</nameserver>
<nameserver>8.8.8.8</nameserver>
<timezone>Europe/Paris</timezone>
<time-config-method>ntp</time-config-method>
<ntp-servers>ntp</ntp-servers>
<ntpservers>109.75.190.27</ntpservers>
<ntpservers>88.191.80.132</ntpservers>
<ntpservers>88.191.32.45</ntpservers>
</installation>
' > answer.xml

Remplacer l’adresse IP par l’adresse IP de votre serveur Lenny.

De plus, remplacer les informations concernant le serveur FTP en fonction des informations envoyées par OVH lors de la configuration du backup FTP.

Nous devons ensuite pousser les données sur le serveur FTP:

echo '#!/bin/sh'                              >  ftpupload.sh
echo 'ftp -n ****FTPHOST**** << EOF'          >> ftpupload.sh
echo 'user ****FTPUSER**** ****FTPPW****'     >> ftpupload.sh

find xen56/ -type d -exec echo mkdir {} \;    >> ftpupload.sh

find xen56/ -type f -exec echo put {} \ {} \; >> ftpupload.sh

echo 'put answer.xml xen56/answer.xml' >> ftpupload.sh
echo 'bye' >> ftpupload.sh
echo 'EOF' >> ftpupload.sh

N’oubliez pas de remplacer les informations concernant les accès FTP.

Exécuter ensuite ce script :

# Copie des données
./ftpupload.sh

Si vous souhaitez ensuite tout supprimer vous pourrez utiliser ce script:

echo '#!/bin/sh'                              >  ftpdelete.sh
echo 'ftp -n ****FTPHOST**** << EOF'          >> ftpdelete.sh
echo 'user ****FTPUSER**** ****FTPPW****'     >> ftpdelete.sh

find xen56/ -type f -exec echo delete {} \; >> ftpdelete.sh
echo 'delete xen56/answer.xml' >> ftpdelete.sh

find xen56/ -type d -exec echo rmdir {} \;    >> ftpdelete.sh
find xen56/ -type d -exec echo rmdir {} \;    >> ftpdelete.sh
find xen56/ -type d -exec echo rmdir {} \;    >> ftpdelete.sh
find xen56/ -type d -exec echo rmdir {} \;    >> ftpdelete.sh
find xen56/ -type d -exec echo rmdir {} \;    >> ftpdelete.sh

echo 'bye' >> ftpdelete.sh
echo 'EOF' >> ftpdelete.sh

Nous devons ensuite préparer le serveur :

aptitude update; aptitude install -y syslinux

Nous avons également besoin d’une autre partition. Nous allons utiliser la partition de swap qui ne nous servira plus.

# Desactivation de la swap (sda2)
swapoff -a
# Formatage de la partition en fat
mkfs.msdos /dev/sda2
# Installation de syslinux sur cette partition
syslinux /dev/sda2
# Montage de la partition
mount /dev/sda2 /mnt

Dans cette partition nous avons besoin de fichier disponible sur le serveur FTP:

cd /mnt
wget ftp://****FTPUSER****:****FTPPW****@****FTPHOST****/xen56/install.img
wget ftp://****FTPUSER****:****FTPPW****@****FTPHOST****/xen56/boot/xen.gz
wget ftp://****FTPUSER****:****FTPPW****@****FTPHOST****/xen56/boot/vmlinuz
wget ftp://****FTPUSER****:****FTPPW****@****FTPHOST****/xen56/boot/isolinux/mboot.c32

Là encore, utilisez les informations de FTP fournies par OVH.

Nous allons maintenant créer le fichier syslinux.cfg

Le but étant de préciser au système qu’il doit booter sur le serveur FTP.

echo 'DEFAULT linux' > /mnt/syslinux.cfg
echo ' LABEL linux' >> /mnt/syslinux.cfg
echo ' SAY Now booting the kernel from SYSLINUX...' >> /mnt/syslinux.cfg
echo ' kernel mboot.c32' >> /mnt/syslinux.cfg
echo ' append xen.gz dom0_mem=752M console=vga --- vmlinuz xencons=hvc console=hvc0 console=tty0 answerfile=ftp://****FTPUSER****:****FTPPW****@****FTPHOST!IP!****/xen56/answer.xml install --- install.img' >> /mnt/syslinux.cfg

Nous devons ensuite remplacer lilo par grub:

# Suppression de lilo
aptitude --purge  remove lilo
# Installation de Grub
mkdir /boot/grub
aptitude install grub
grub-install /dev/sda
update-grub

#Modification du fichier menu.lst
cat > /boot/grub/menu.lst << "EOF"
default         0
timeout         5
color cyan/blue white/blue
title           Syslinux
root            (hd0,1)
makeactive
chainloader     +1
EOF

Rebooter le serveur et croiser les doigts ;)

Il faut compter 2 à 3 minutes pour que le système reboot. Ensuite, prévoir jusqu’à 10min pour l’installation de Xen, puis de nouveau 3 minutes pour le reboot.

Si tout va bien, vous pouvez vous connecter à votre serveur avec le mot de passe que vous aurez saisi dans le fichier de réponse xml.

Il reste maintenant les étapes suivantes:

  • configuration du raid soft
  • configuration de lvm
  • ajout d’un dépot local d’image ISO
  • ajout du de la partition de stockage des machines virtuelles.

A suivre donc…

bpa Administration système, Virtualisation ,

Installation de mrepo sur CentOS 5.5

03/08/2010
Commentaires fermés

Introduction

mrepo est un programme écrit en python par Dag Wieers qui permet de créer un serveur de dépôts de paquets (testé et validé pour les RPMs).

La description complète ainsi que le site officiel de ce serveur est disponible a l’adresse suivante: http://dag.wieers.com/home-made/mrepo

Préparation

Pour bien débuter l’installation il faut récupérer les RPMs suivants. Ils sont disponible sur les site de Dag Wieers à l’adresse suivante http://dag.wieers.com/rpm/packages/, ou pour rhnlib, rechercher dans le support de la distribution.

  • fuse­iso­0.0.20070708­1.el5.rf.i386.rpm
  • fuse­unionfs­0.17­1.el5.rf.i386.rpm
  • hardlink++­0.02­3.el5.rf.i386.rpm
  • rhnlib­2.2.7­2.el5.noarch.rpm

Dans notre cas, les sources sont installées dans le répertoire /usr/local/src

# cd /usr/local/src

Téléchargement des RPMs nécessaires (pour une plateforme i386):

# wget wget http://dag.wieers.com/rpm/packages/fuse-iso/fuse-iso-0.0.20070708-1.el5.rf.i386.rpm
# wget http://dag.wieers.com/rpm/packages/fuse-unionfs/fuse-unionfs-0.18-1.el5.rf.i386.rpm
# wget http://dag.wieers.com/rpm/packages/hardlink++/hardlink++-0.02-3.el5.rf.i386.rpm

D’autre part, il faut récupérer les sources depuis subversion (il faut bien évidemment installer le client subversion svn):

# svn co http://svn.rpmforge.net/svn/trunk/tools/mrepo/

Finalement, il faut installer si ça n’est pas déjà le cas python et apache.

# yum install python
# yum install httpd

Installation des RPMs

Installation depuis les dépôts CentOS de createrepo et fuse:

# yum install createrepo fuse fuse-devel
Installation des RPMs en dépendances:
# rpm -i hardlink++­0.02­3.el5.rf.i386.rpm
# rpm -i fuse­iso­0.0.20070708­1.el5.rf.i386.rpm
# rpm -i fuse­unionfs­0.17­1.el5.rf.i386.rpm

Le serveur est maintenant prêt à installer mrepo.

Installation de mrepo

L’installation de mrepo, pour des raisons de norme, sera faite dans le répertoire /opt/mrepo. Pour ce faire, il faut ajouter une variable DESTDIR (voir Makefile).

Ce placer dans le répertoire des sources de mrepo téléchargé depuis subversion.

# cd /usr/local/src/mrepo
# export DESTDIR=/opt/mrepo
# make install
install -Dp -m0755 gensystemid /opt/mrepo/usr/bin/gensystemid
install -Dp -m0755 mrepo /opt/mrepo/usr/bin/mrepo
install -Dp -m0755 rhnget /opt/mrepo/usr/bin/rhnget
install -Dp -m0755 youget /opt/mrepo/usr/bin/youget
[ ! -f /opt/mrepo/etc/mrepo.conf ] &amp;&amp; install -D -m0600 config/mrepo.conf /opt/mrepo/etc/mrepo.conf || :
install -d -m0755 /opt/mrepo/etc/mrepo.conf.d/
install -Dp -m0644 config/httpd/mrepo.conf /opt/mrepo/etc/httpd/conf.d/mrepo.conf
install -Dp -m0755 config/mrepo /opt/mrepo/etc/rc.d/init.d/mrepo
install -d -m0755 /opt/mrepo/usr/share/mrepo/html
install -p -m0644 html/* /opt/mrepo/usr/share/mrepo/html
install -d -m0755 /opt/mrepo/var/mrepo/all/
install -d -m0755 /opt/mrepo/var/www/mrepo
install -d -m0755 /opt/mrepo/var/cache/mrepo
install -d -m0755 /opt/mrepo/usr/share/mrepo/rhn/
install -d -m0755 /opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/
cp -av rhn/README rhn/*.py /opt/mrepo/usr/share/mrepo/rhn/
`rhn/README' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/README'
`rhn/connections.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/connections.py'
`rhn/_httplib.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/_httplib.py'
`rhn/__init__.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/__init__.py'
`rhn/_internal_xmlrpclib.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/_internal_xmlrpclib.py'
`rhn/nonblocking.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/nonblocking.py'
`rhn/rpclib.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/rpclib.py'
`rhn/SmartIO.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/SmartIO.py'
`rhn/SSL.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/SSL.py'
`rhn/transports.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/transports.py'
`rhn/UserDictCase.py' -&gt; `/opt/mrepo/usr/share/mrepo/rhn/UserDictCase.py'
cp -av up2date_client/README up2date_client/*.py /opt/mrepo/usr/share/mrepo/up2date_client/
`up2date_client/README' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/README'
`up2date_client/capabilities.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/capabilities.py'
`up2date_client/clientCaps.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/clientCaps.py'
`up2date_client/config.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/config.py'
`up2date_client/distrotype.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/distrotype.py'
`up2date_client/gpgUtils.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/gpgUtils.py'
`up2date_client/__init__.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/__init__.py'
`up2date_client/repoDirector.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoDirector.py'
`up2date_client/rhnChannel.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/rhnChannel.py'
`up2date_client/rhnErrata.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/rhnErrata.py'
`up2date_client/rpcServer.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/rpcServer.py'
`up2date_client/rpmSource.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/rpmSource.py'
`up2date_client/rpmSourceUtils.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/rpmSourceUtils.py'
`up2date_client/rpmUtils.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/rpmUtils.py'
`up2date_client/sourcesConfig.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/sourcesConfig.py'
`up2date_client/transaction.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/transaction.py'
`up2date_client/up2dateAuth.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/up2dateAuth.py'
`up2date_client/up2dateErrors.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/up2dateErrors.py'
`up2date_client/up2dateLog.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/up2dateLog.py'
`up2date_client/up2dateMessages.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/up2dateMessages.py'
`up2date_client/up2dateUtils.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/up2dateUtils.py'
`up2date_client/urlMirrors.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/urlMirrors.py'
`up2date_client/wrapperUtils.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/wrapperUtils.py'
cp -av up2date_client/repoBackends/*.py /opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/
`up2date_client/repoBackends/aptRepo.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/aptRepo.py'
`up2date_client/repoBackends/dirRepo.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/dirRepo.py'
`up2date_client/repoBackends/genericRepo.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/genericRepo.py'
`up2date_client/repoBackends/genericSolveDep.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/genericSolveDep.py'
`up2date_client/repoBackends/__init__.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/__init__.py'
`up2date_client/repoBackends/up2dateRepo.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/up2dateRepo.py'
`up2date_client/repoBackends/urlUtils.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/urlUtils.py'
`up2date_client/repoBackends/yumRepo.py' -&gt; `/opt/mrepo/usr/share/mrepo/up2date_client/repoBackends/yumRepo.py'
[ "/opt/mrepo" -o ! -f "/opt/mrepo/etc/cron.d/mrepo" ] &amp;&amp; install -Dp -m0644 config/mrepo.cron /opt/mrepo/etc/cron.d/mrepo || :
install -Dp -m0644 config/mrepo.logrotate /opt/mrepo/etc/logrotate.d/mrepo

Vue que le répertoire par défaut a été modifié, il faut créer des liens entre /opt/mrepo et les différents répertoires de configuration système:

# ln -s /opt/mrepo/etc/httpd/conf.d/mrepo.conf /etc/httpd/conf.d/
# ln -s /opt/mrepo/etc/rc.d/init.d/mrepo /etc/init.d/

Configuration du serveur et des dépôts

Ajout du site dans apache (modification du fichier /opt/mrepo/etc/httpd/conf.d/mrepo.conf):

Création du dépôt CentOS 5 et copie de l’ISO:

# mkdir /opt/mrepo/var/mrepo
# mkdir /opt/mrepo/var/mrepo/centos5-i386
# mv CentOS-5.5-i386-bin-DVD.iso /opt/mrepo/var/mrepo/centos5-i386

Configuration du serveur (fichier /opt/mrepo/etc/mrepo.conf):


### Configuration file for mrepo
# 2010 02 26 rde default location changed from / to /opt/mrepo
### The [main] section allows to override mrepo's default settings
### The mrepo-example.conf gives an overview of all the possible settings
[main]
srcdir = /opt/mrepo/var/mrepo
wwwdir = /opt/mrepo/var/www/mrepo
confdir = /opt/mrepo/etc/mrepo.conf.d
arch = i386
# specific settings
shareiso = yes
hardlink = yes
hardlinkpluscmd = /usr/bin/hardlink++ 2 &gt; /dev/null
# chroot
htmldir = /opt/mrepo/usr/share/mrepo/html
cachedir = /opt/mrepo/var/cache
lockdir = /opt/mrepo/var/lock/subsys
logfile = /opt/mrepo/var/log/mrepo
rhngetcmd = /opt/mrepo/usr/bin/rhnget
yougetcmd = /opt/mrepo/usr/bin/youget
#mailto = root@localhost
#smtp-server = localhost
#rhnlogin = username:password
### Any other section is considered a definition for a distribution
### You can put distribution sections in /etc/mrepo.conf.d
### Examples can be found in the documentation.

Configuration du dépôt CentOS 5 (fichier /opt/mrepo/etc/mrepo.conf.d/centos5.conf):


### Name: The Community Enterprise Operating System v5
### URL: http://www.centos.org/
 
[centos5]
name = CentOS $release ($arch)
release = 5.5
#arch = i386 x86_64 ia64 ppc s390 s390x alpha
arch = i386
metadata = repomd repoview
 
### ISO images
#iso = http://mirror.centos.org/pub/centos/$release/isos/$arch/CentOS-$release-$arch-bin?of4.iso
#os = http://mirror.centos.org/centos/$release/os/$arch/CentOS/RPMS/a
iso = file:///opt/depot/CentOS-$release-$arch-bin-DVD.iso
 
### Additional repositories
updates = http://mirror.centos.org/centos/$release/updates/$arch/RPMS/

Montage des isos et génération du dépôt:

# /opt/mrepo/usr/bin/mrepo -ug -vv -c /opt/mrepo/etc/mrepo.conf

Montage des dépôts au démarrage

# chkconfig --add mrepo

Mise à jour automatique des dépôts, tous les lundi à 1h30 (fichier /opt/mrepo/etc/cron.d)

# 2010 02 26 rde mrepo update
30 1 * * 1 root /opt/mrepo/usr/bin/mrepo -ug -v -c /opt/mrepo/etc/mrepo.conf &gt; /opt/mrepo/var/log/mrepo.log

Ajout dans les jobs cron

# ln -s /opt/mrepo/etc/cron.d/mrepo /etc/cron.d/

Vérification du fonctionnement

Dans un navigateur votre navigateur favoris aller à l’adresse http://<adresse du serveur>/mrepo (remplacer <adresse du serveur> par l’ip ou l’url de votre serveur). Dans notre cas, un dépôt a été crée également pour RedHat 5.5.

La page suivante doit s’afficher:

Affichage des dépôts après traitement de mrepo

Configuration des clients

La configuration des clients s’effectue dans le répertoire /etc/yum/yum.repos.d/.
Faites une sauvegarde des fichiers de configuration CentOS-Base.repo et CentOS-Media.repo.

# mv CentOS-Base.repo CentOS-Base.repo.old
# mv CentOS-Media.repo CentOS-Media.repo.old

et créez les fichiers suivants my-Centos-os.repo et my-Centos-updates.repo

# my-Centos-os.repo file
<hr />
[my-Centos-os]
name=CentOS Linux $releasever - $basearch - OS
baseurl=http://&lt;adresse du serveur&gt;/mrepo/centos5-$basearch/RPMS.os
enabled=1
gpgcheck=0
# my-Centos-updates.repo
[my-Centos-updates]
name=CentOS Linux $releasever - $basearch - Updates
baseurl=http://&lt;adresse du serveur&gt;/mrepo/centos5-$basearch/RPMS.udpates
enabled=1
gpgcheck=0

rde Administration système, Tutos , , , , , ,

L’outil indispensable SSH

05/06/2009
Commentaires fermés

Beaucoup de personnes connaissent au moins de nom SSH. Cet outil cache pourtant certains secrets très pratiques et bien souvent totalement inconnus.
Lire la suite…

ati Divers, Tutos , ,

Découverte de Zsh sur CentOS 5.2

03/04/2009

Découvrons dans ce tutoriel ce qu’est Zsh et apprenons à le compiler et le configurer sous une CentOS 5.2
Lire la suite…

ati Tutos , , , , ,

Installer un serveur Redmine sur Centos 5.2

24/03/2009

Le but de cet article est d’écrire le processus d’installation d’un serveur RedMine sur une Centos 5.2

Description de RedMine

Redmine est un outil de gestion de projet en Web. Il est écrit en utilisant le framework « Ruby on Rails ». Il est multi-plateforme et fonctionne avec plusieurs bases de données.
Lire la suite…

bpa Tutos , ,

Bienvenue sur le blog Actinux

11/03/2009
Commentaires fermés

Actinux encourage ses équipes à contribuer activement à l’informatique libre et publie ses productions sous l’URL actinux.org

Ces productions sont assurées :

- soit par le travail personnel d’ingénieurs de la société en dehors de leur temps de travail

- soit avec le financement d’Actinux pendant le temps de travail.

Actinux consacre actuellement une partie de son temps pour apporter sa modeste contribution aux logiciels libres.

admin Divers