Pulp sillabusz

 ( zeller | 2016. október 29., szombat - 21:57 )

Most találtam meg ezt a néhány hónapja összerakott, zanzásított sillabuszt - a cél az volt, hogy legyen egy darab belső szerver, ahonnan lehet frissíteni a RHEL7-es szervereket, lehetőség szerint egyszerűen.

Az, hogy hova mekkora diszkterületet érdemes pakolni, azt sajnos nem raktam bele - ennek érdemes utánaolvasni, mert a MOngoDB meg a repók is elég nagyra bírnak hízni.

A gép CentOS7, standard telepítés, úgyhogy első körben kapcsoljuk permissive-be a selinuxot, hogy legyen log, ami alapján a szükséges modult meg lehet csinálni:

setenforce 0

Illetve a /etc/sysconfig/selinux fájlban a SELINUX=permissive beállítást kell megejteni.

Kel egy rakat csomag innen-onnan:

yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install qpid-cpp-server qpid-cpp-server-linearstore mongodb-server
( cd /etc/yum.repos.d/ ; wget https://repos.fedorapeople.org/repos/pulp/pulp/rhel-pulp.repo )
yum groupinstall pulp-server-qpid

Mivel a doksit a működő rendszer alapján raktam össze, ahol a szükséges selinux policy-t így kellett összerakni (lehet benne fölösleges dolog, amit inkább átcimkézéssel lett volna érdemes megoldani, de ez már így maradt):

## /etc/selinux/local/pulp_local.te:
module pulp_local 1.0;

require {
        type    celery_t;
        type    httpd_t;
        type    mongod_t;
        type    qpidd_t;
        type    unconfined_t;

        type    unlabeled_t;
        type    httpd_sys_rw_content_t;
        type    qpidd_var_lib_t;
        type    init_t;

        class   dir      { write remove_name create read add_name search open getattr };
        class   file     { rename write getattr setattr read create open append lock };
        class   lnk_file { rename read create unlink getattr };
        class   service  { enable };
}

#============= celery_t ==============
allow celery_t unlabeled_t:dir { write remove_name create read add_name };
allow celery_t unlabeled_t:file { rename write getattr setattr read create open };
allow celery_t unlabeled_t:lnk_file { rename read create };

#============= httpd_t ==============
allow httpd_t unlabeled_t:dir { write add_name };
allow httpd_t unlabeled_t:file { write getattr read create open append };

#============= mongod_t ==============
allow mongod_t httpd_sys_rw_content_t:dir { read search open getattr };
allow mongod_t httpd_sys_rw_content_t:file { read write getattr open lock };

#============= qpidd_t ==============
allow qpidd_t qpidd_var_lib_t:lnk_file { read create unlink getattr };

#============= unconfined_t ==============
allow unconfined_t init_t:service enable;

Ebből selinux policy-t csinálni nem ördöngősség:

cd /etc/selinux/local
checkmodule -M -m -o pulp_local.mod pulp_local.te
semodule_package -m pulp_local.mod -o pulp_local.pp
semodule -i pulp_local.pp

A telepített komponenseket illendő sorrendben elindítjuk, némi masszázs a MongoDB-nek jár közben, illetve a végén még egy pici telepítgetés:

systemctl enable qpidd
systemctl start qpidd
systemctl enable mongod
systemctl start mongod
sudo -u apache pulp-manage-db
systemctl enable httpd
systemctl restart httpd
systemctl enable pulp_workers
systemctl start  pulp_workers
systemctl status pulp_worker-0
systemctl enable pulp_celerybeat
systemctl start  pulp_celerybeat
systemctl enable pulp_resource_manager
systemctl start pulp_resource_manager
yum groupinstall pulp-admin

Eddig megvan, most kéne megoldani, hogy RHEL7-es csomagokat is le tudjuk rá húzni... Ez sem űrtechnológia:
Meglévő RHEL előfizetéssel RH7-en subscribe, attach, majd a RHEL repókhoz szükseges kulcsokat szépen át kell pakolni a Pulp-os gépre, ezek ha minden igaz /etc/rhsm/ca/redhat-uep.pem es /etc/pki/entitlement/* fájlok (vagy közöttük vannak).

Innentől csak a repók generálása/csomagok letöltése van hátra - a pulp admin default jelszava is admin (a key meg a cert az, amit a regisztrált RH7-es gépről hoztunk át). A "serve-http=true" kell, mert https-en nem szereti a yum - lehet, hogy ezt is ki lehetne reszelni, de itt nem volt rá szükség:

pulp-admin login –u admin
pulp-admin rpm repo create --repo-id=rhel-7-server
pulp-admin rpm repo update --repo-id=rhel-7-server \
 --feed=https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os \
 --feed-ca-cert=/etc/rhsm/ca/redhat-uep.pem \
 --feed-key=/etc/pki/entitlement/0998877665544332211-key.pem \
 --feed-cert=/etc/pki/entitlement/0998877665544332211.pem \
 --serve-http=true
pulp-admin rpm repo publish run --repo-id=rhel-7-server
pulp-admin rpm repo sync run --repo-id=rhel-7-server

A RH7-es gépen a repó fájlból ki lehet mazsolázni a többi feed linkjét, és a fentieknek megfelelően azokat is be lehet húzni a pulp alá.

A repó így érhető el (szerintem van egyszerűbb linkje is, csak amikor írtam, azt még nem sikerült életre lehelni, azóta meg nem én foglalkozom a géppel):

[rhel-7-server-pulp]
metadata_expire = 86400
baseurl = http://192.168.1.1/pulp/repos/content/dist/rhel/server/7/$releasever/$basearch/os/
ui_repoid_vars = releasever basearch
name = Red Hat Server Repo (Pulp)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

sub
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 14.2 | 4.4.19-janos

Kösz! :-)

Nincs mit, használjátok egészséggel :-)

Magáncélokra kellett :-)