Dies ist eine alte Version des Dokuments!
Gitlabintegration in UCS
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. Herfür benötigen wir einige Dinge.
Als erstes importieren wir das LDAP-Schema. Lade dir dieses Schema in deinen UCS-Master 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', } } } }



