Instrukcja przedstawia przygotowanie własnego repozytorium instalacyjnego z zaktualizowanymi pakietami RPM. Ponadto przedstawione są kroki wymagane do przygotowanie minimalnej płyty instalacyjnej CD. Instrukcja przygotowana i testowana pod CentOS 5.6 x86_64.
Przygotowanie środowiska
# Wymagane pakiety:
yum install createrepo yum-utils mkisofs
# Struktura katalogów roboczych:
mkdir -p /storage/centos/{i386,x86_64}/{media,work}
mkdir -p /storage/centos/updates
Pobranie plików instalacyjnych
# Pobranie plików instalacyjnych dla architektury i386
lftp -e 'lcd /storage/centos/i386/media && open http://download.hetzner.de/mirrors/centos/5.6/i386/ && mirror && get .treeinfo && get .discinfo && quit'
# Pobranie plików instalacyjnych dla architektury x86_64
lftp -e 'lcd /storage/centos/x86_64/media && open http://download.hetzner.de/mirrors/centos/5.6/x86_64/ && mirror && get .treeinfo && get .discinfo && quit'
Polski mirror:
http://ftp.icm.edu.pl/pub/linux/distributions/centos/5.6/os/i386/
http://ftp.icm.edu.pl/pub/linux/distributions/centos/5.6/os/x86_64/
Pliki można też oczywiście przekopiować z lokalnego nośnika instalacyjnego.
Pobranie aktualizacji
Przygotowanie pliku konfiguracyjnego dla repozytorium z aktualizacjami:
cat >/etc/yum.repos.d/CentOS-Custom-Update.repo <<EOF
[updates32]
name=CentOS-\$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.6&arch=i386&repo=updates
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
gpgcheck=1
[updates64]
name=CentOS-\$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.6&arch=x86_64&repo=updates
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
gpgcheck=1
EOF
# Dla i386
reposync -p /storage/centos/updates -n -r updates32
# Dla x86_64
reposync -p /storage/centos/updates -n -r updates64
Przygotowanie kopii roboczej plików instalacyjnych
Ta procedura nie jest doskonała więc lepiej operować na kopii plików instalacyjnych :)
# Dla i386
rsync -av /storage/centos/i386/media/ /storage/centos/i386/work/
# Dla x86_64
rsync -av /storage/centos/x86_64/media/ /storage/centos/x86_64/work/
Aktualizacja pakietów instalacyjnych
Utworzenie repozytorium dla updates32 i updates64:
createrepo /storage/centos/updates/updates32/
createrepo /storage/centos/updates/updates64/
Następnie należy przekopiować zaktualizowane/dodane pakiety z repozytorium aktualizacji do repozytorium instalacyjnego. Można to zrobić ręcznie lub za pomocą narzędzia custom-repo-integrate. Jest zmodyfikowana wersja programu repodiff.
# Dla i386
custom-repo-integrate -a i386 -u file:///storage/centos/updates/updates32/ -b file:///storage/centos/i386/work/
custom-repo-integrate -a i686 -u file:///storage/centos/updates/updates32/ -b file:///storage/centos/i386/work/
custom-repo-integrate -a noarch -u file:///storage/centos/updates/updates32/ -b file:///storage/centos/i386/work/
# Dla x86_64
custom-repo-integrate -a x86_64 -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
custom-repo-integrate -a noarch -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
custom-repo-integrate -a i386 -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
custom-repo-integrate -a i686 -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
W kolejnym kroku należy odświeżyć repozytoria instalacyjne z uwzględnieniem pliku comps.xml:
# Dla i386
createrepo -g /storage/centos/i386/work/repodata/comps.xml /storage/centos/i386/work
# Dla x86_64
createrepo -g /storage/centos/x86_64/work/repodata/comps.xml /storage/centos/x86_64/work
Dodatkowo można sprawdzić integralność repozytoriów (zależności):
# Dla i386
repoclosure -a i386 -a i686 -a noarch -r it.socha.install32 --repofrompath=it.socha.install32,/storage/centos/i386/work
# Dla x86_64
repoclosure -a x86_64 -a i386 -a i686 -a noarch -r it.socha.install64 --repofrompath=it.socha.install64,/storage/centos/x86_64/work
Repozytorium do instalacji sieciowej jest gotowe do użytku. Pozostało tylko przygotowanie plików
kickstart.
Przykładowe pliki konfiguracyjne
kickstart:
- simple.ks - instalacja minimalnego systemu z dostępnym ekranem partycjonowania i konfiguracji GRUB
- 1disc.ks - instalacja automatyczna na dysku /dev/sda (LVM)
- 2disc.ks - instalacja automatyczna na dwóch dyskach z RAID1 i LVM
Dalsza cześć to opis przygotowania minimalnej płyty instalacyjnej CD.
Jeśli chcemy przygotować minimalną płytę instalacyjną (plik ISO) należy z katalogu instalacyjnego (CentOS) wybrać tylko wymagane pakiety (lista pakietów
minimalcentos.txt). Przygotowałem prosty skrypt, który z wskazanego katalogu instalacyjnego skopiuje wymagane pakiety. Skrypt nazywa się
simple-rpm-copy. Cała procedura przygotowania płyty:
# Katalog roboczy
mkdir -p /storage/centos/{i386,x86_64}/mini/CentOS
# Kopiowanie repozytorium instalacyjnego z pominięciem katalogu CentOS
# Dla i386
rsync -av --exclude=CentOS /storage/centos/i386/work/ /storage/centos/i386/mini/
# Dla x86_64
rsync -av --exclude=CentOS /storage/centos/x86_64/work/ /storage/centos/x86_64/mini/
# Pobranie skryptu simple-rpm-copy
wget http://bit.ly/eTseVD -q -O /storage/centos/simple-rpm-copy && chmod +x /storage/centos/simple-rpm-copy
# Kopiowanie wymaganych RPM do mini instalacji
# Dla i386
wget http://bit.ly/e6am3x -q -O - | /storage/centos/simple-rpm-copy /storage/centos/i386/mini/CentOS/ /storage/centos/i386/work/ i386,i686,noarch
# Dla x86_64
wget http://bit.ly/e6am3x -q -O - | /storage/centos/simple-rpm-copy /storage/centos/x86_64/mini/CentOS/ /storage/centos/x86_64/work x86_64,noarch
# Zaktualizowanie repozytorium
# Dla i386
createrepo -g /storage/centos/i386/mini/repodata/comps.xml /storage/centos/i386/mini/
# Dla x86_64
createrepo -g /storage/centos/x86_64/mini/repodata/comps.xml /storage/centos/x86_64/mini/
Dodatkowo warto sprawdzić integralność repozytoriów (zależności):
# Dla i386
repoclosure -a i386 -a i686 -a noarch -r it.socha.mini32 --repofrompath=it.socha.mini32,/storage/centos/i386/mini
# Dla x86_64
repoclosure -a x86_64 -a i386 -a i686 -a noarch -r it.socha.mini64 --repofrompath=it.socha.mini64,/storage/centos/x86_64/mini
Na płycie można również zapisać pliki kickstart i lekko zmodyfikowany plik konfiguracyjny bootloadera isolinux (archiwum centos.tar.gz)
# Dla i386
wget http://bit.ly/hzo1rA -q -O - | tar xzf - -C /storage/centos/i386/mini
# Dla x86_64
wget http://bit.ly/hzo1rA -q -O - | tar xzf - -C /storage/centos/x86_64/mini
Pozostaje tylko przygotowanie pliku ISO
# Dla i386
mkisofs -v -r -N -L -d -D -J -V CENTOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -x lost+found -o /storage/centos/output/centos-custom-55-i386.iso /storage/centos/i386/mini# Dla x86_64
mkisofs -v -r -N -L -d -D -J -V CENTOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -x lost+found -o /storage/centos/output/centos-custom-55-x86_64.iso /storage/centos/x86_64/mini
Przygotowane obrazy mini płyt instalacyjnych:
x86_64 i
i386