Rešil jsem takový malý problém. Mám 10 RHEL 6.3 serverů a při jejich aktualizaci nechci balíky stahovat pokaždé z
RedHat RHN. S tím že
Squid HTTP proxy je jen průtokáčem a nic se nekešuje :-( Komunikace s RHN se provádí skrze
xmlrpc bránu.
1352209629.189 1482 192.192.42.13 TCP_MISS/000 2206 CONNECT xmlrpc.rhn.redhat.com:443 - FIRST_UP_PARENT/192.192.42.42 -
První plánované řešení bylo použít
RHN Proxy Server. Tento server je součástí komerčního
RedHat Network Satellite. Jistou variantou bylo použít komunitní verzi
SpaceWalk, ale pro 10 serverů je to moc velký moloch, který se vyplatí používat jen u velkých firem o desítkách serverů.
Pan Google mě přivedl na tento
návod. Kde se použije poněkud jednodužší řesení s
reposync. Jeden s 10ti serverů vybereme jako ten pro stahovaní repo. Všechny servery jsou registrovány v
RHN. 11cty server je
CentOS, kde je zprovozněn NFS server, kde je repo fyzicky umístěný.
Vypíši si použité repositáře na RHEL serveru:
yum repolist
repo id
rhel-x86_64-server-6
rhel-x86_64-server-ha-6
rhel-x86_64-server-supplementary-6
Příkazy pro synchronizaci repository. Je zapotřebí balík
yum-utils
reposync -p /data/nfs/repo/ --repoid=rhel-x86_64-server-ha-6 -l
reposync -p /data/nfs/repo/ --repoid=rhel-x86_64-server-supplementary-6 -l
reposync -p /data/nfs/repo/ --repoid=rhel-x86_64-server-6 -l
Pro funkční repo musíme nainstalovat balíček
createrepo
yum install createrepo
createrepo /data/nfs/repo/
...
Saving Primary metadata
Saving file lists metadata
Saving other metadata
V adresáři kam se syncují repositáře se vytvoří adresář repodata s metadaty o aktualizacích. Vzhledem k tomu, že tři uvedené repo obsahuji 16GB dat je vytvoření metadat o 9tisících souborech poněkud zdlouhavé.
ls -1 repodata/
filelists.xml.gz
other.xml.gz
primary.xml.gz
repomd.xml
Nastavení
yum na jednotlivých
RHEL serverech.
vi /etc/yum.repos.d/local.repo
[rhel-localrepo]
name=Local Red Hat Enterprise Linux $releasever - $basearch
baseurl=file:///data/nfs/repo
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Vypneme RHN krom aktualizačního serveru.
vi /etc/yum/pluginconf.d/rhnplugin.conf
[main]
enabled = 0
Provedeme aktualizace, za předpokladu, že všechny RHEL servery maji namontován NFS svazek do
/data/nfs/repo.
yum clean all
yum list updates
yum update
A na závěr taková rejpavá poznámka. Proč ty komerční krámy musí být tak komplikované? CentOS má veřejné repo a např. Debianí svět má svou
APT-Cacher NG.