GitLab Community Edition mit Spacewalk verteilen

GitLab-Pakete in Spacewalk

GitLab-Pakete in Spacewalk

Für interessierte Hobbyisten und kleinere Firmen steht die beliebte GitHub-Alternative GitLab als kostenlose Community Edition bereit. Zur Installation wird ein Skript bereitgestellt, welches die einzelnen Software-Pakete bezieht und installiert. Wer einen Blick in den Quellcode dieses Skripts wirft, erkennt, dass sich dieses hierbei konventioneller YUM-Repositories bedient. Prinzipiell lässt sich GitLab also auch komfortabel über ein bestehendes Spacewalk-, Red Hat Satellite– oder SUSE Manager-System verteilen.

GitLab bietet für verschiedene RPM-basierende Linux-Distributionen entsprechende YUM-Repositories (Binär- und Quellcode-Pakete) an. Die folgende Tabelle listet URLs für einige gängige Linux-Distributionen zur Verteilung mit Spacewalk auf:

Fedora 21, i386 https://packages.gitlab.com/gitlab/gitlab-ce/fedora/21/i386
Fedora 21, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/fedora/21/x86_64
Fedora 22, i386 https://packages.gitlab.com/gitlab/gitlab-ce/fedora/22/i386
Fedora 22, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/fedora/22/x86_64
RHEL/CentOS 6, i386 https://packages.gitlab.com/gitlab/gitlab-ce/el/6/i386
RHEL/CentOS 6, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/el/6/x86_64
RHEL/CentOS 7, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/el/7/x86_64
Scientific Linux 6, i386 https://packages.gitlab.com/gitlab/gitlab-ce/el/6/i386
Scientific Linux 6, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/el/6/x86_64
Scientific Linux 7, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/el/7/x86_64
Oracle Linux 6, i386 https://packages.gitlab.com/gitlab/gitlab-ce/ol/6/i386
Oracle Linux 6, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/ol/6/x86_64
Oracle Linux 7, x86_64 https://packages.gitlab.com/gitlab/gitlab-ce/ol/7/x86_64
Distribution URL

Zuerst muss der GPG-Key des YUM-Repositories auf dem Spacewalk-System unter /var/www/html/pub abgelegt werden, damit bereits registrierte Systeme ohne Internet-Zugang den Schlüssel importieren können. Wird dies nicht erledigt, weigern sich registrierte Systeme feige, die Pakete zu installieren, da der entsprechende Schlüssel nicht importiert wurde:

spacewalk# curl https://packages.gitlab.com/gpg.key -o /var/www/html/pub/RPM-GPG-KEY-gitlab
client# rpm --import http://spacewalk/pub/RPM-GPG-KEY-gitlab

Kommen Kickstart oder Aktivierungsschlüssel zum Einsatz, ist es ratsam, diesen Schlüssel auch im Spacewalk-Backend (unterhalb Systeme, Kickstart, GPG- und SSL-Schlüssel) zu hinterlegen. Auf dem Spacewalk-System müssen ein neues Repository und ein Software-Kanal erstellt werden. Hierzu wird innerhalb der Spacewalk-Oberfläche auf die Menü-Elemente Channels, Software-Channels verwalten, Repositories verwalten und Repository anlegen geklickt. Im folgenden Dialog werden die folgenden Angaben gemacht:

Repository-Label z.B. gitlab-ce-centos7-x86_64
Repository-URL Passende URL aus oberer Tabelle, z.B. https://packages.gitlab.com/gitlab/gitlab-ce/el/7/x86_64
Filter (kein)

Anschließend kann der dazugehörige Software-Channel erstellt werden. Hierzu werden innerhalb der Spacewalk-Oberfläche die Menü-Elemente Software-Channels verwalten und Channel erstellen angewählt. Der folgende Dialog wird folgendermaßen ausgefüllt:

Channel-Name Lesbarer Name, z.B. GitLab CE EL7 x86_64
Channel-Label Interner Bezeichner, z.B. gitlab-ce-centos7-x86_64
Parent-Channel Übergeordneter Software-Kanal, z.B. CentOS 7
Channel-Zusammenfassung GitLab Community Edition for Enterprise Linux 7 x86_64
GPG-Schlüssel-URL https://packages.gitlab.com/gpg.key
GPG-Schlüssel-ID
E15E78F4
GPG-Schlüssel-Fingerprint
1A4C 919D B987 D435 9396  38B9 1421 9A96 E15E 78F4

Im Reiter Repositorien muss das zuvor angelegte Repository ausgewählt werden. Es empfiehlt sich, die GPG-Schlüssel-ID und den -Fingerprint nochmals zu überprüfen, da sich der Schlüssel seit der Erstellung dieses Artikel geändert haben kann:

$ gpg --with-fingerprint /var/www/html/pub/RPM-GPG-KEY-gitlab
pub 4096R/E15E78F4 2015-04-17 GitLab B.V. (package repository signing key) <packages@gitlab.com>
 Key fingerprint = 1A4C 919D B987 D435 9396 38B9 1421 9A96 E15E 78F4

Die erste fett markierte Angabe entspricht der GPG-Schlüssel-ID, die zweite Markierung zeigt den zugehörigen Fingerprint.

Anschließend erfolgt die initiale Synchronisation des Netzwerkspiegels, beispielsweise mit spacewalk-repo-sync:

# spacewalk-repo-sync --channel gitlab-ce-centos7-x86_64
======================================
| Channel: gitlab-ce-centos7-x86_64
======================================

Repo URL: https://packages.gitlab.com/gitlab/gitlab-ce/el/7/x86_64
Packages in repo: 18
Packages already synced: 0
Packages to sync: 18
...

Alternativ kann die Synchronisation auch über die Web-Oberfläche erfolgen. Hierzu wird unterhalb der Reiter Repositorien und Sync die Schaltfläche Jetzt synchronisieren ausgewählt. In diesem Zuge kann auch gleich die automatische Synchronisation konfiguriert werden. Sofern die YUM-Repositories über einen Cronjob synchronisiert werden, muss dieser angepasst werden. Beispielsweise:

# vi /etc/cron.daily/spacewalk_sync.cron
...
/usr/bin/spacewalk-repo-sync --channel gitlab-ce-centos7-x86_64 >/dev/null

ESC ZZ

Auf den registrierten Client-Systemen kann GitLab nun wie folgt installiert werden:

# yum install -y postfix openssh-server yum-utils pygpgme curl
# yum -q makecache -y --disablerepo='*' --enablerepo='gitlab-ce-centos7-x86_64'
# yum install gitlab-ce
# gitlab-ctl reconfigure

Sofern die Firewall korrekt konfiguriert wurde, kann GitLab anschließend über den Web-Browser erreicht werden. 🙂

Schreibe einen Kommentar