====== Channels en Repositories in Spacewalk ======
Nadat je [[installatie_handleidingen:spacewalk|een Spacewalk server hebt geinstalleerd]] moet je deze nog van channels voorzien.
Het verdient aanbeveling even goed na te denken over de layout van je channels.
mijn setup ziet er zo uit :
>centos_6-base
>├─ centos_6-extras
>├─ centos_6-updates
>└─ epel_6
>centos_7-base
>├─ centos_7-extras
>├─ centos_7-updates
>└─ epel_7
Je zou kunnen overwegen om de dot releases als child channels te configureren en geen repository aan het base channel te koppelen. hierdoor wordt het opruimen van verouderde packages eenvoudiger en duurt het aanvankelijke synchen met de upstream repository korter.
Met het goedkoper worden van storage en het sneller worden van internet verbindingen wordt dit wel steeds minder belangrijk.
===== Base channel =====
Maak een base channel aan door in het boven menu **Channels** te kiezen en vervolgens in het zij menu **Manage Software Channels** en druk op het blauwe **+ Create Channel**
{{ :installatie_handleidingen:channels-1.png?700 |}}
Vul de naam en label in, geen idee waarom er twee zijn, maar volgens de instructies moger er in geen van beide hoofdletters of spaties. Hou ze voor het gemak gelijk.
{{ :installatie_handleidingen:channels-2.png?700 |}}
Scroll naar beneden, daar moet de GPG informatie worden ingevuld waar de rpm's uit de repository mee gesigned zijn.
Je krijgt deze informatie het eenvoudigst door de gpg-key te downloaden naar een linux machine, de spacewalk server zelf is een prima optie aangezien in afgeschermde omgevingen dit überhaupt de enige server is die met de repo server die als bron gekozen is kan communiceren.
installeer wget :''yum install wget''
haal de gpgkey op:
''cd /tmp\\
wget %%http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/os/x86_64/RPM-GPG-KEY-CentOS-7%%''
en haal de nodige gegevens uit de key door:
''gpg %%--with-fingerprint RPM-GPG-KEY-CentOS-7%%''
de output ziet er ongeveer zo uit. Het getal na de slash is het key ID
pub 4096R/F4A80EB5 2014-06-23 CentOS-7 Key (CentOS 7 Official Signing Key)
Key fingerprint = 6341 AB27 53D7 8A78 A7C2 7BB1 24C6 A8A7 F4A8 0EB5
vul dit in en druk op **Create Channel**:
{{ :installatie_handleidingen:channels-3.png?700 |}}
nu is het tijd om een repository aan te maken, aan het channel te koppelen en te syncen met de upstream.
kies in het zij menu **Manage Repositories** en druk rechs boven op **+Create Repository**
vul vervolgens de velden in en druk op **Create Repository**:
{{ :installatie_handleidingen:channels-6.png?700 |}}
Vervolge stap is de repository aan het channel koppelen. In **Manage Software Channels** klick op de channel waar de repository bij hoort, kies het tabblad **Repositories** selecteer de net gemaakte repository en druk op **Update Repositories**
{{ :installatie_handleidingen:channels-7.png?700 |}}
Vervolgens is het tijd om het channel te syncen met de upstream repository. Log in op de spacewalk server en doe:
''spacewalk-repo-sync -c centos_7-x86_64''
Dit kan overigens even duren.
07:15:26 ======================================
07:15:26 | Channel: centos_7-x86_64
07:15:26 ======================================
07:15:26 Sync of channel started.
07:15:26 Repo URL: http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/os/x86_64/
07:15:29 Packages in repo: 9363
07:15:48 Packages already synced: 0
07:15:48 Packages to sync: 9363
07:15:48 1/9363 : 389-ds-base-1.3.5.10-11.el7-0.x86_64
07:16:19 2/9363 : 389-ds-base-devel-1.3.5.10-11.el7-0.x86_64
07:16:20 3/9363 : 389-ds-base-libs-1.3.5.10-11.el7-0.x86_64
...
...
14:30:07 9361/9363 : zziplib-devel-0.13.62-5.el7-0.x86_64
14:30:16 9362/9363 : zziplib-devel-0.13.62-5.el7-0.i686
14:30:18 9363/9363 : zziplib-utils-0.13.62-5.el7-0.x86_64
14:30:19 Linking packages to channel.
14:30:30 Repo http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/os/x86_64/ has comps file comps.xml.
14:30:30 Repo http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/os/x86_64/ has 0 errata.
14:30:30 Sync of channel completed in 7:15:04.
14:30:30 Total time: 7:15:04
Om de local channel up to date te houden moet je nog een syncronisatie instellen. Klik op **Manage Software Channels** kies het tabblad **Repositories** en daaronder **Sync**.
Selecteer **Sync only latest packages** en stel een dagelijkse sync rond 5:00AM in:
{{ :werkinstructies:channels-8.png?700 |}}
Elk Base channel heeft een activation key nodig om later clients te kunnen verbinden. Maak een key aan door in het top menu **Systems** te kiezen en vervolgens in het zij menu **Activation Keys**
{{ :werkinstructies:channels-11.png?nolink&700 |}}
klik op ''**+Create Key**''
===== Child Channels =====
Child channels maak je onder een base Channel aan om repositories te ontsluiten die specifiek bij de OS release van dat Base Channel horen, zoals in dit voorbeeld de updates en de EPEL repositories.
==== update child channel ====
Maak eerst een repository aan, dit gaat hetzelfde als de repository voor het base Channel.
Ga naar **Channels** en kies in het zij menu **Manage Software Channels** --> **Manage Repositories** en druk op **+Create Repository**
Vul een naam in en de URL ''http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/updates/x86_64/'' en druk op de groene knop **Create Repository**
Maak vervolgens het Child Channel aan. Ga naar **Manage Software Channels** en druk op **+Create Channel** , vul alles in en kies deze keer een **Parent Channel**
{{ :werkinstructies:channels-9.png?700 |}}
De GPG keys zijn hetzelfde, vul dus dezelfde waarden in al bij het Parent Channel en druk op de groene knop **Create Channel**:
{{ :werkinstructies:channels-10.png?700 |}}
Ga vervlogens naar het tabblad **Repositories**, selecteer de net aangemaakte repository voor updates, en druk op **Update Repositories**
Log in op de server en doe ''spacewalk-repo-sync -c centos_7-x86_64-updates''
14:15:16 ======================================
14:15:16 | Channel: centos_7-x86_64-updates
14:15:16 ======================================
14:15:16 Sync of channel started.
14:15:17 Repo URL: http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/updates/x86_64/
14:15:18 Packages in repo: 807
14:15:19 Packages already synced: 0
14:15:19 Packages to sync: 807
14:15:19 1/807 : 389-ds-base-1.3.5.10-12.el7_3-0.x86_64
14:15:31 2/807 : 389-ds-base-1.3.5.10-15.el7_3-0.x86_64
...
...
15:35:42 806/807 : zsh-5.0.2-25.el7_3.1-0.x86_64
15:35:43 807/807 : zsh-html-5.0.2-25.el7_3.1-0.x86_64
15:35:43 Linking packages to channel.
15:35:44 Repo http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/7/updates/x86_64/ has 0 errata.
15:35:44 Sync of channel completed in 1:20:27.
15:35:44 Total time: 1:20:27
Stel nog wel een dagelijkse sync in: Ga naar het subtabblad **Sync** selecteer **Daily**, kies een tijdstip en druk op **schedule**
==== Andere child channels ====
We nemen als voorbeeld de populaire EPEL repository. Nagenoeg hetzelfde als de update child channel.
Maak eerst een repository aan, ga naar **Channels** en kies in het zij menu **Manage Software Channels** --> **Manage Repositories** en druk op **+Create Repository**
Vul een naam in''EPEL_7-x86_64-nluug'' en de URL ''http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/7/x86_64/'' en druk op de groene knop **Create Repository**
Maak vervolgens het Child Channel aan''epel_7-x86_64''. Ga naar **Manage Software Channels** en druk op **+Create Channel** , vul alles in en kies deze keer een **Parent Channel** in dit geval ''centos_7-x86_64''
De GPG key moet je weer downloaden en analyseren om die vervolgens in te vullen.
''cd /tmp\\
wget http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/RPM-GPG-KEY-EPEL-7\\
gpg %%--with-fingerprint RPM-GPG-KEY-EPEL-7%%''
pub 4096R/352C64E5 2013-12-16 Fedora EPEL (7)
Key fingerprint = 91E9 7D7C 4A5E 96F1 7F3E 888F 6A2F AEA2 352C 64E5
druk op **Create Channel**.
Vervolgens de repository aan dit channel koppelen: Ga naar het tabblad **Repositories**, selecteer ''EPEL_7-x86_64-nluug'' en druk op **Update Repositories**
log in op de server en doe ''spacewalk-repo-sync -c epel_7-x86_64''
stel nog een sync schedule in en klaar.
===== Debian Channels en Repositories =====
Spacewalk kan ook voor Debian en Ubuntu werken.
Wordt aan gewerkt
zet de gpg keys:
https://ftp-master.debian.org/keys.html\\
https://github.com/spacewalkproject/spacewalk/wiki/RegisteringClients\\
http://www.devops-blog.net/spacewalk/registering-ubuntu-and-debian-servers-with-spacewalk\\
http://purplepalmdash.github.io/2015/08/06/setup-spacewalker-trusty-channel\\
http://www.devops-blog.net/spacewalk/gpg-signing-apt-repository-in-spacewalk\\
===== En Verder =====
Nu je je channels met repositories klaar hebt is het tijd om [[werkinstructies:spacewalk_connecting_clients|clients te koppelen]].
===== Bronnen =====
[[http://www.unixmen.com/how-to-manage-spacewalk-channels-and-repositories/]]
[[https://www.redhat.com/archives/spacewalk-list/2012-January/msg00105.html]]
[[https://easyitstuff.wordpress.com/2015/08/17/how-to-create-spacewalk-channel/]]