RPM repositoryk tükrözése

Szeretnék egy gépet, ahova a hivatalos CentOS 6/7 és RHEL 5/6/7 repository-kat letükrözöm. A CentOS esetében ez egyszerű, mint a szög, le-rsync-elem valamelyik publikus mirror-ról a csomagokat és készen vagyok. A RHEL esete sokkal bonyolultabb. Az RHN-nek van kétféle "változata" az RHN Classic és a Subscription Manager alapú. Az előbbi a RHEL 5/6 verziókról használható, az utóbbi pedig elvileg mindhárom verzióról.

Próbáltam különböző toolokat a mirroringra:

- mrepo: nem beszél Subscription Manager-ül, nem tudja a RHEL7-es repokat tükrözni
- cobbler: kizárólag a host OS-sel megegyező verziójú RHEL repokat tudja tükrözni, nem lehet több különböző OS verzióhoz tartozó csatornára regisztrálni vele
- spacewalk 5.6: nem tűnik úgy, mintha a RHEL7-tel megbírkózna (de még küzdök vele, ezt belülről nem látom igazán, hogy hogy működik)
- pulp: nem tűnik úgy, mintha a RHEL5-tel megbírkózna valamiért (de még küzdök vele, ezt belülről nem látom igazán, hogy hogy működik)

Más esetleg nem rakott össze ilyet Satellite nélkül? Ötlet, hogy mivel érdemes nekimenni?

Hozzászólások

Pedig valoszinu a pulp lesz a baratod. Mivel a 6-os Satellite pulp-ot hasznal, gondolom visszafele is kompatibilisnek kell lenniuk.
Szemely szerint nem probaltam mert nem en vagyok a felelos a projectert nalunk, de megkerdezem a sracot, hogy mi tukrozunk-e 5-os repokat is vele, vagy arra meg mindig az mrepo-t hasznaljuk.

Ha valaki nem akar plup-ot, hanem csak konkrétan a repository-k tükrözését:

1. Patch az mrepo-hoz:

[root@admin ~]# diff /usr/bin/mrepo /usr/bin/mrepo.old
340,345d339
< elif option in ('sslcert'):
< dist.sslcert = self.cfg.get(section, option)
< elif option in ('sslkey',):
< dist.sslkey = self.cfg.get(section, option)
< elif option in ('sslca',):
< dist.sslca = self.cfg.get(section, option)
392,394d385
< self.sslcert = None
< self.sslkey = None
< self.sslca = None
731c722
< mirrorlftp(url, self.srcdir, self.dist)
---
> mirrorlftp(url, self.srcdir)
733c724
< mirrorlftp(url, self.srcdir, self.dist)
---
> mirrorlftp(url, self.srcdir)
1363c1354
< def mirrorlftp(url, path, dist):
---
> def mirrorlftp(url, path):
1377,1383d1367
< if dist.sslcert:
< cmds = cmds + ' set ssl:cert-file ' + dist.sslcert + ';'
< if dist.sslkey:
< cmds = cmds + ' set ssl:key-file ' + dist.sslkey + ';'
< if dist.sslca:
< cmds = cmds + ' set ssl:ca-file ' + dist.sslca + ';'

2. RHN-en regisztrálni kell egy gépet, le kell tölteni az entitlement certificate-ét. Emellett CA certificate-ként használandó a /etc/rhsm/ca/redhat-uep.pem fájl.

3. Létrehoztam az alábbi konfigot:

[root@admin ~]# cat /etc/mrepo.conf.d/rhel-7.conf
[rhel-7]
name = Red Hat Server $release ($arch)
release = 7
arch = x86_64
metadata = repomd repoview

sslkey = /etc/mrepo.conf.d/rhel-7.0-x86_64-mrepo.pem
sslcert = /etc/mrepo.conf.d/rhel-7.0-x86_64-mrepo.pem
sslca = /etc/mrepo.conf.d/redhat-uep.pem

os = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os

Ezekkel működik a sync.

Mi a reposync, repomanage, createrepo kombot valasztottuk.

Mi a reposync, repomanage, createrepo kombot valasztottuk.

Hasonló feladatot kell majd nekem is megoldanom, de jelenleg csak CentOS-es repókra van egy teszt szerverem.

Ahogy előttem már említették én is csak a reposync, repomanage, createrepo trióval dolgozom.

Amivel már korábban is szemezgettem az a Katello, amelynek nem régen jött ki a 2.0 verziója amihez már van normális dokumentáció is.

Mondjuk az elvárásaidnál jóval többet tud:
- Forman
- Puppet
- Pulp
- Cadlepin

cserébe az erőforrás igénye is nagyobb :)

Ha van időd foglalkozni vele, akkor kíváncsi lennék a tapasztalataidra.

A Katello-ból nekem csak a Pulp az, ami érdekes, az összes többi részére nincs szükségem (ráadásul sem a foreman-t, sem a puppet-et nem is kedvelem különösebben).

Most nem nagyon van motivációm újranézegetni a Pulp-ot - az mrepo a kis módosítással együtt, hogy tudjon certificate-tel authentikálni a https-es szerverhez, kiválóan működik...

Szervusz!

Én Spacewalk-ot használok, nagyon jó. Könnyen lehet vele frissítéseket teríteni, új csatornákat létrehozni/törülni, gépeket csoportban kezelni stb. De csak tiszta centos-os környezetben. REHL-lel nem próbáltam még, de azt hiszem menni kellene RHEL csatornákkal is.

Érdemes lenne azt is megnézned szerintem!

Sherpa