Distribution/Centos/Customize
Introduction
Ce document décrit le déroulement de la customisation de l'ISO de CentOS. Cette opération vise à réduire au maximum la distribution et ainsi optimiser le temps nécessaire à l'installation. Cela va permettre également de fournir une image d'amorce au serveur cobbler qui permet de faire des installations via PXE.
Création des repertoires
On commence par crée les répertoires nécessaires:
mkdir /mnt/cdimages/ mkdir /mnt/cdimages/CentOS-5.5-x86_64 mkdir /mnt/cdimages/CentOS-5.5-x86_64-core
Montage de l'iso
On monte ensuite l'ISO du CD1 de CentOS (qu'il faut bien entendu avoir téléchargé au préalable), on travaille avec la version x86_64 dans notre cas:
mount -t iso9660 -oloop,ro /home/admin/CentOS-5.5-x86_64-bin-1of8.iso /mnt/cdimages/CentOS-5.5-x86_64
On peut explorer l'arborescence de l'ISO:
cd /mnt/cdimages tree -d
Installation des paquets prérequis
On installe maintenant mkisofs et cdrecord pour la création de l'ISO et yum-utils pour la récupération des paquets en local:
yum install mkisofs cdrecord yum-utils -y
Synchronisation du contenu de l'ISO
On va donc synchroniser le contenu de l'ISO qui est monté vers le répertoire avec lequel on va crée l'ISO customisé:
rsync -av --exclude CentOS/ /mnt/cdimages/CentOS-5.5-x86_64/ /mnt/cdimages/CentOS-5.5-x86_64-core/ mkdir /mnt/cdimages/CentOS-5.5-x86_64-core/CentOS && mkdir /tmp/rpm rpm -qa > /root/rpm.log ; for i in $(cat /root/rpm.log) ; do yumdownloader $i --destdir=/tmp/rpm ; done cp -r /tmp/rpm/* /mnt/cdimages/CentOS-5.5-x86_64-core/CentOS/
Edition du fichier comps.XML
On va maintenant éditer le fichier comps.xml. Le fichier comps définit la façon dont les paquets seront regroupés durant l'installation:
cd /mnt/cdimages/CentOS-5.5-x86_64-core wc -l repodata/comps.xml11418 repodata/comps.xml grep "xml:lang" repodata/comps.xml | wc -l8811 grep -v "xml:lang" repodata/comps.xml > /tmp/no-lang.comps.xml wc -l /tmp/no-lang.comps.xml2607 /tmp/no-lang.comps.xml rm repodata/* -f cp /tmp/no-lang.comps.xml repodata/comps.xml
Test des dépendances RPM
On peut maintenant vérifier qu'il n'y a aucun problème dans les dépendances des RPM de notre nouvel ISO customisé:
cd /mnt/cdimages/CentOS-5.5-x86_64-core/CentOS mkdir /tmp/testrpmdb rpm --initdb --dbpath /tmp/testrpmdb/ rpm --test --dbpath /tmp/testrpmdb/ -ivh *.rpm Préparation... ########################################### [100%]
On vérifie que la dernière comande a bien fonctionné en affichant la valeur de retour qui doit être nulle
echo $? 0
Et en affichant la taille du répertoire
du -sh /tmp/testrpmdb/644K /tmp/testrpmdb/ rm -rf /tmp/testrpmdb
Création du repo
Ensuite on va créer le repo local contenu dans l'ISO:
yum install createrepo -y cd /mnt/cdimages/CentOS-5.5-x86_64-core cat .discinfo export discinfo=$(head -1 /mnt/cdimages/CentOS-5.5-x86_64-core/.discinfo) echo $discinfo createrepo -u "media://$discinfo" -g repodata/comps.xml /mnt/cdimages/CentOS-5.5-x86_64-core
Création de l'ISO bootable
On peut enfin créer notre ISO customisé après avoir déroulé toutes ces étapes:
#export isofilename=/mnt/cdimages/CentOS-5.5-x86_64-core.iso #mkisofs -r -R -J -T -v \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "CentOS-5u5-core 64 bit" -p "CentOS_B2P" -A "CentOS-5u5-core 64 bit-2011/02/15" \ -b isolinux/isolinux.bin -c isolinux/boot.cat -x "lost+found" \ -o $isofilename /mnt/cdimages/CentOS-5.5-x86_64-core
Implantation du MD5SUM dans L'ISO
La dernière étape consiste à implanter le md5sum dans l'ISO:
#yum install mkcdrec #updatedb #locate implantisomd5 /var/opt/mkcdrec/bin/implantisomd5 $isofilename
L'ISO customisé est maintenant prêt à être utilisé.