Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Gitlabintegration in UCS
Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen . Gerne. Wir bedanken uns bei dir für deine Spende! 🙏
Zum frei verfügbaren Apt-Repository
GITLAB:
Es gab mal eine GitLAB-App im Univention Appcenter: https://www.univention.com/products/app-catalog/gitlab/ Nachdem diese nun nicht mehr verfügbar ist, möchte man doch sein eigens installiertes Gitlab in UCS auf die Gleiche Weise integrieren. In dem HowTo wird ausschließlich die Anbindung via LDAP an GitLAB beschrieben. Dies könnte man natürlich auch per Gruppenmitgliedschaft (memberOf) verwirklichen. Hier erfährts du wie sich das mit einem eigenen Filter integrieren lässt, der dann auch recht hübsch in der UCS Verwaltung aussieht. Mitlerweile gibt es auch schon die Integration mit OpenID/Keycloak für GitLAB-Community.
Konfiguration auf UCS
Als erstes importieren wir das LDAP-Schema (falls noch nicht vorhanden). Lade dir dieses Schema in deinen UCS-Master (Primary Directory Node) herunter und importiere es:
- gitlab.shema
attributetype ( 1.3.6.1.4.1.10176.5000.27686.13748.54483.79322.81889.11904.95723.1135.1.1 NAME 'gitlabActivated' DESC 'Attribute created by the App Center integration for Extended Attributes' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 EQUALITY booleanMatch SINGLE-VALUE ) objectclass ( 1.3.6.1.4.1.10176.5000.27686.13748.54483.79322.81889.11904.95723.1135.2.1 NAME 'gitlabUser' DESC 'Attribute created by the App Center integration for Extended Attributes' AUXILIARY MAY ( gitlabActivated ) SUP top )
Dann importieren:
export UNIVENTION_APP_IDENTIFIER="gitlab" . /usr/share/univention-lib/ldap.sh ucs_registerLDAPExtension --schema gitlab.schema --packagename appcenter-app-gitlab --packageversion 1
Als nächstes erstellst du im LDAP unter „custom attributes“ einen Unterorder und legst darin das neue erweiterte Attribut „gitlabActivated“ an:
Das neue „erweiterte Attribut“ beschreibe wie folgt:
Allgemein:
| Bezeichnung | Wert |
|---|---|
| Eindeutiger Name | gitlabActivated |
| UDM-CLI Name | gitlabActivated |
| Kurzbeschreibung | Activate user for GitLab Community Edition |
| Sprachcode (z.B. de_DE) | German/Germany |
| Übersetzte Kurzbeschreibung | Nutzer für GitLab Community Edition aktivieren |
| Ausführliche Beschreibung | GitLab Community Edition |
| Sprachcode (z.B. de_DE) | German/Germany |
| Übersetzte Langbeschreibung | Entwicklungsplattform von OpenSource-IT |
Modul:
| Bezeichnung | Wert |
|---|---|
| Zu erweiternde Module | Benutzer |
LDAP-Abbildung:
| Bezeichnung | Wert |
|---|---|
| LDAP-Objektklasse | gitlabUser |
| LDAP-Attribut | gitlabActivated |
UMC:
| Bezeichnung | Wert |
|---|---|
| Ordnungsnummer | 1 |
| Name der Karteikarte | GitLab Community Edition |
| Gruppenname | GitLab Community Edition |
Datentyp:
| Bezeichnung | Wert |
|---|---|
| Syntax-Klasse | TrueFalseUp |
| Nachträglich modifizierbar | [X] |
Danach ist das Flag im Usermenü verfügbar und kann aktiviert werden:
Anbindung auf dem Gitlabserver
Am Gitlabserver editiere die Datei „/etc/gitlab/gitlab.rb“ und füge deinen LDAP-Server wie gewohnt hinzu. Der einzige Unterschied ist, das du einen eigenen Filter zur Verfügung hast:
'user_filter' => '(&(univentionObjectType=users/user)(gitlabActivated=TRUE))',
Hier die ganze Config, als Beispiel:
gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = { 'main' => { 'label' => 'LDAP TUX2', 'host' => 'dc1.tux2.lan', 'port' => 7389, 'uid' => 'uid', 'encryption' => 'start_tls', 'verify_certificates' => true, 'bind_dn' => 'uid=gitlabauth,cn=users,dc=tux2,dc=lan', 'password' => 'secret', 'active_directory' => false, 'base' => 'dc=tux2,dc=lan', 'user_filter' => '(&(univentionObjectType=users/user)(gitlabActivated=TRUE))', 'tls_options' => { 'ca_file' => '/usr/local/share/ca-certificates/ucs-root-tux201.crt', }, 'secondary' => { 'label' => 'LDAP TUX2-2', 'host' => 'dc2.tux2.lan', 'port' => 7389, 'uid' => 'uid', 'encryption' => 'start_tls', 'verify_certificates' => true, 'bind_dn' => 'uid=gitlabauth,cn=users,dc=tux2,dc=lan', 'password' => 'secret', 'active_directory' => false, 'base' => 'dc=tux2,dc=lan', 'user_filter' => '(&(univentionObjectType=users/user)(gitlabActivated=TRUE))', 'tls_options' => { 'ca_file' => '/usr/local/share/ca-certificates/ucs-root-tux201.crt', } } } }
Nun noch Gitlab rekonfigurieren:
gitlab-ctl reconfigure
Ab nun ist UCS mit GitLAB verbunden und die kannst mit der granularen Config im GitLAB Webinterface fortfahren.



