GitLab Community Edition mit Spacewalk verteilen
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:
1spacewalk# curl https://packages.gitlab.com/gpg.key -o /var/www/html/pub/RPM-GPG-KEY-gitlab
2client# 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 Repositories 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:
1$ gpg --with-fingerprint /var/www/html/pub/RPM-GPG-KEY-gitlab
2pub 4096R/E15E78F4 2015-04-17 GitLab B.V. (package repository signing key) <packages@gitlab.com>
3 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
:
1# spacewalk-repo-sync --channel gitlab-ce-centos7-x86_64
2======================================
3| Channel: gitlab-ce-centos7-x86_64
4======================================
5
6Repo URL: https://packages.gitlab.com/gitlab/gitlab-ce/el/7/x86_64
7Packages in repo: 18
8Packages already synced: 0
9Packages to sync: 18
10...
Alternativ kann die Synchronisation auch über die Web-Oberfläche erfolgen. Hierzu wird unterhalb der Reiter Repositories 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:
1# vi /etc/cron.daily/spacewalk_sync.cron
2...
3/usr/bin/spacewalk-repo-sync --channel gitlab-ce-centos7-x86_64 >/dev/null
4
5ESC ZZ
Auf den registrierten Client-Systemen kann GitLab nun wie folgt installiert werden:
1# yum install -y postfix openssh-server yum-utils pygpgme curl
2# yum -q makecache -y --disablerepo='*' --enablerepo='gitlab-ce-centos7-x86_64'
3# yum install gitlab-ce
4# gitlab-ctl reconfigure
Sofern die Firewall korrekt konfiguriert wurde, kann GitLab anschließend über den Web-Browser erreicht werden. 🙂