Benutzer-Werkzeuge

Webseiten-Werkzeuge


prebuilt_systems:ucs:gitlabintegration_in_ucs

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',
    }
   } 
  } 
}

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.

prebuilt_systems/ucs/gitlabintegration_in_ucs.1764434251.txt.gz · Zuletzt geändert: (Externe Bearbeitung)