Distribution/Centos/Customize

De TartareFR
Version datée du 1 octobre 2012 à 12:54 par Didier (discussion | contributions) (Page créée avec « = 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 l... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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é.