| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung |
| prebuilt_systems:ucs:gitlabintegration_in_ucs [2025/11/29 16:06] – loma | prebuilt_systems:ucs:gitlabintegration_in_ucs [2025/11/30 18:27] (aktuell) – boospy |
|---|
| ====== Gitlabintegration in UCS ====== | ====== Gitlabintegration in UCS ====== |
| | Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! 🙏 \\ |
| | [[https://www.paypal.com/donate/?hosted_button_id=JTFYJYVH37MNE|{{:spenden.gif|}}]] \\ |
| | \\ |
| | Zum frei verfügbaren [[:apt-repository|Apt-Repository]] |
| | \\ |
| | GITLAB: [[https://git.osit.cc|{{:gitlab_logo.png?nolink&60|}}]] |
| | \\ |
| | \\ |
| | Es gab mal eine [[https://www.univention.com/products/app-catalog/gitlab/|GitLAB-App im Univention Appcenter]]. 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 [[https://help.univention.com/t/memberof-attribute-group-memberships-of-user-and-computer-objects/6439|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 [[https://docs.gitlab.com/administration/auth/oidc/#configure-keycloak|OpenID/Keycloak für GitLAB-Community]]. |
| |
| 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: | ===== 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: |
| <file plain gitlab.shema> | <file plain gitlab.shema> |
| attributetype ( 1.3.6.1.4.1.10176.5000.27686.13748.54483.79322.81889.11904.95723.1135.1.1 | attributetype ( 1.3.6.1.4.1.10176.5000.27686.13748.54483.79322.81889.11904.95723.1135.1.1 |
| {{:prebuilt_systems:ucs:screenshot_20251129_170027.png?direct&700|}} | {{:prebuilt_systems:ucs:screenshot_20251129_170027.png?direct&700|}} |
| |
| | {{:prebuilt_systems:ucs:screenshot_20251129_170714.png?direct&600|}} |
| |
| | 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: |
| | |
| | {{:prebuilt_systems:ucs:screenshot_20251129_172539.png?direct&700|}} |
| | |
| | ===== 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: |
| | <code ruby> |
| | 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', |
| | } |
| | } |
| | } |
| | } |
| | </code> |
| |
| | 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. |