Dit is een oude revisie van het document!
Zet in de defaults zodat je niet bij elk hammer command de organisation en location moet meegeven:
hammer defaults add --param-name organization --param-value "ORG_NAME"
hammer defaults add --param-name location --param-value "DATACENTER_NAME"
Maak eerst products dit zijn logische units waarin je repositories die bij elkaar horen of handig samen gaan kan bundelen, in dit voorbeeld heb ik de basis CentOS repo's gescheiden van de EPEL repository, maar de indeling kan je volledig zelf bedenken, als al je CentOS servers de EPEL repository krijgen zou je de EPEL repo bijvoorbeeld bij het CentOS product kunnen invoegen:
hammer product create --name "CentOS7_repos" --description "CentOS7 repository collection"
hammer product create --name "EPEL7_repos" --description "EPEL repository for CentOS7"
Als eerste moet de GPG key van de repositories bekend zijn:
mkdir /etc/pki/rpm-gpg/import
wget http://mirror.centos.org/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 -P /etc/pki/rpm-gpg/import
maak deze bekend in katello:
hammer gpg create --key "RPM-GPG-KEY-CentOS-7" --name "RPM-GPG-KEY-CentOS-7"
en voer vervolgens de CentOS7 repositories alle 3 toe aan de product:
hammer repository create --product "CentOS7_repos" --name "CentOS-7 - Base" --label "CentOS-7_Base_x86_64" --content-type "yum" --download-policy "on_demand" --gpg-key "RPM-GPG-KEY-CentOS-7" --url "http://mirror.centos.org/centos/7/os/x86_64/" --mirror-on-sync "no"
hammer repository create --product "CentOS7_repos" --name "CentOS-7 - Extras" --label "CentOS-7_Extras_x86_64" --content-type "yum" --download-policy "on_demand" --gpg-key "RPM-GPG-KEY-CentOS-7" --url "http://mirror.centos.org/centos/7/extras/x86_64/" --mirror-on-sync "no"
hammer repository create --product "CentOS7_repos" --name "CentOS-7 - Updates" --label "CentOS-7_Updates_x86_64" --content-type "yum" --download-policy "on_demand" --gpg-key "RPM-GPG-KEY-CentOS-7" --url "http://mirror.centos.org/centos/7/updates/x86_64/" --mirror-on-sync "no"
Voor RedHat en EPEL repo's worden de errata automatisch opgehaald. Voor CentOS is dat, net als onder spacewalk, niet het geval en is de volgende workarround nodig.
Ook hier moet de GPG key van de repositories bekend zijn:
mkdir /etc/pki/rpm-gpg/import
wget https://epel.mirror.liteserver.nl/RPM-GPG-KEY-EPEL-7 -P /etc/pki/rpm-gpg/import/
Maak ook deze bekend in katello:
hammer gpg create --key "RPM-GPG-KEY-EPEL-7" --name "RPM-GPG-KEY-EPEL-7"
En koppel de EPEL repository:
hammer repository create --product "EPEL7_repos" --name "EPEL-7 - x86_64" --label "EPEL7_x86_64" --content-type "yum" --download-policy "on_demand" --gpg-key "RPM-GPG-KEY-EPEL-7" --url "http://download.fedoraproject.org/pub/epel/7/x86_64/" --mirror-on-sync "no"
Om de repositories op gezette tijden te updaten hebben we als eerste een sync-plan nodig:
hammer sync-plan create --name "dagelijkse-sync" --interval daily --enabled true --sync-date "2021-01-13"
vervolgens:
hammer sync-plan list
---|-----------------|---------------------|----------|---------|-----------------|------------------- ID | NAME | START DATE | INTERVAL | ENABLED | CRON EXPRESSION | RECURRING LOGIC ID ---|-----------------|---------------------|----------|---------|-----------------|------------------- 1 | dagelijkse-sync | 2021/01/13 00:00:00 | daily | yes | | 1 ---|-----------------|---------------------|----------|---------|-----------------|-------------------
en pas het sync-plan toe op de products:
hammer product set-sync-plan --sync-plan-id 1 --name "CentOS7_repos"
hammer product set-sync-plan --sync-plan-id 1 --name "EPEL7_repos"
Dit zijn in weze OTAP omgevingen. Je maakt ze als volgt aan:
hammer lifecycle-environment create --name "ont" --label "Ontwikkel" --prior "Library"
hammer lifecycle-environment create --name "tst" --label "Test" --prior "ont"
hammer lifecycle-environment create --name "acc" --label "Acceptatie" --prior "tst"
hammer lifecycle-environment create --name "prd" --label "Productie" --prior "acc"
Contentviews zijn verzamelingen repositories die met versies beheerd kunnen worden om zodanig een “view” van een bepaald moment te hebben. Die contentviews kunnen later dan weer “ge-published” worden naar een bepaalde lifecycle environment.
Maak de views aan:
hammer content-view create --name "CentOS7-OS-view" --description "view with CentOS7 OS repos"
hammer content-view create --name "EPEL7-view" --description "view with EPEL repos voor CentOS7"
Vervolgens zoek je de id's van de repositories die je aan deze views wilt toevoegen:
hammer repository list
---|--------------------|---------------|--------------|----------------------------------------------------- ID | NAME | PRODUCT | CONTENT TYPE | URL ---|--------------------|---------------|--------------|----------------------------------------------------- 1 | CentOS-7 - Base | CentOS7_repos | yum | http://mirror.centos.org/centos/7/os/x86_64/ 2 | CentOS-7 - Extras | CentOS7_repos | yum | http://mirror.centos.org/centos/7/extras/x86_64/ 3 | CentOS-7 - Updates | CentOS7_repos | yum | http://mirror.centos.org/centos/7/updates/x86_64/ 18 | EPEL-7 - x86_64 | EPEL7_repos | yum | http://download.fedoraproject.org/pub/epel/7/x86_64/ ---|--------------------|---------------|--------------|-----------------------------------------------------
en voeg de juiste repository aan de views toe, coor de CentOS7 OS view:
hammer content-view add-repository --name "CentOS7-OS-view" --product "CentOS7_repos" --repository-id "1"
hammer content-view add-repository --name "CentOS7-OS-view" --product "CentOS7_repos" --repository-id "2"
hammer content-view add-repository --name "CentOS7-OS-view" --product "CentOS7_repos" --repository-id "3"
en voor de EPEL view:
hammer content-view add-repository --name "EPEL7-view" --product "EPEL7_repos" --repository-id "18"
Publishing is het moment waarop je een view vastlegt in tijd. Dit doe je in de webinterface.
ga in
Content → Content Views
en klik op bv EPEL7-view
en klik op de blauwe knop Publish New Version.
Vul eventueel een Description in en druk op Save.
De Published versions zie je als je weer klikt Content → Content Views
en EPEL7-view
activation keys gebruik je om hosts aan een specifieke contentview in een specifieke lifecycle environment te koppelen, bijvoorbeeld; een CentOS mongodb server in test koppel je met 3 activation keys: