Gebruikershulpmiddelen

Site-hulpmiddelen


werkinstructies:foreman-katello_content_inrichten

Dit is een oude revisie van het document!


Foreman-Katello "Content" inrichten

Defaults

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"

products

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"

repositories toevoegen aan product

CentOS7 repositories

GPG keys

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"

Repo URL

Voeg 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"

Errata voor CentOS

Errata komt later

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.

https://github.com/nicolas-r/katello-centos-errata-import/blob/master/centos-errata-katello-importer.py

EPEL repository

GPG keys

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"

repo URL

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"

Syncronisatie

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"

Lifecycle environments

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

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"

Omdat een host maar aan 1 content view mag subscriben moeten we een “Composit Content View” aanmaken, het proces lijkt op die van een gewone Content View. Zoek de id's van de Content Views die je wilt toevoegen:
hammer content-view list

----------------|---------------------------|---------------------------|-----------|---------------------|---------------
CONTENT VIEW ID | NAME                      | LABEL                     | COMPOSITE | LAST PUBLISHED      | REPOSITORY IDS
----------------|---------------------------|---------------------------|-----------|---------------------|---------------
5               | CentOS7-OS-view           | CentOS7-OS-view           | false     | 2021/01/13 13:48:16 | 1, 2, 3       
1               | Default Organization View | Default_Organization_View | false     | 2021/01/10 15:15:03 |               
6               | EPEL7-view                | EPEL7-view                | false     | 2021/01/13 15:00:48 | 18            
----------------|---------------------------|---------------------------|-----------|---------------------|---------------

Publishing contentviews

Publishing is het moment waarop je een view vastlegt in tijd. Dit doe je in de webinterface. ga in
ContentContent 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.

promoting contentviews

De Published versions zie je als je weer klikt ContentContent Views en EPEL7-view

vervolgens zie je rechts een knop Promote.

als je hier op klikt krijg je de keus hem te promoten, de Environments waar al naar gepromote is zijn grijs, en doordat we bij het aanmaken van de environments –prior hebben gebruikt volgen ze netjes op elkaar.

Activation keys

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:

  • key test CentOS7_OS-view
  • key test EPEL7-view
  • key test mongodb-view

Maak ze (bijvoorbeeld voor test) zo aan:
hammer activation-key create --name "Test_CentOS7_OS" --unlimited-hosts --description "Key for CentOS7 repos on Test" --lifecycle-environment "test" --content-view "CentOS7-OS-view"

en ook die voor de EPEL repo view:
hammer activation-key create --name "Test_EPEL7-key" --unlimited-hosts --description "Key for EPEL repo on Test" --lifecycle-environment "test" --content-view "EPEL7-view"

Klaar voor de volgende stappen

Bronnen

werkinstructies/foreman-katello_content_inrichten.1612013751.txt.gz · Laatst gewijzigd: 2021/01/30 14:35 door abel