Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:gitlab_archlinux_-_e-mail-konfiguration

GitLab ArchLinux - E-Mail-Konfiguration

GitLab ist ein, in der Community Edition unter einer MIT-Lizenz zur Verfügung gestelltes System, zur Verwaltung von Git-Repositorys im Browser, was den unentgeltlichen Betrieb auf einem eigenen Server ermöglicht.

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root zu werden, geben Sie bitte nachfolgenden Befehl ein:

$ su -
Password: 

Voraussetzungen

Als Voraussetzung für die hier, nachfolgend dargestellte LDAP-Konfiguration von GitLab Version 16.x ist:

Gitlab: Konfiguration

Nachfolgende Konfigurationen ermöglichen die Nutzung eines SMTP-e-Mail-Servers zur Zustellung von e-Mails in Verbindung mit Gitlab.

Nachfolgendes Schaubild soll verdeutlichen, wie der e-Mail-Versand, hier durchgeführt werden soll:

 +============================+    +==================+    +------------------+    +---------------------+
 | Gitlab:                    |    | Postfix: (lokal) |    | Postfix: (relay) |    | Internet: (E-Mail)  |
 | E-Mail wird lokal erstellt | -> | relay der E-Mail | -> | sende die E-Mail | -> | empfängt die E-Mail |
 | https//gitlab.tachtler.net |    |   127.0.0.1:25   |    | mx1.tachtler.net |    |     im Postfach     |
 +============================+    +==================+    +------------------+    +---------------------+

Die Konfiguration soll demnach so gestaltet werden, dass Gitlab die e-Mail nur an den lokal laufenden Postfix via SMTP abgibt und dieser dann für die weitere Zustellung verantwortlich ist.

/etc/webapps/gitlab/gitlab.yml

Die Konfigurationsdatei /etc/webapps/gitlab/gitlab.yml ist die Haupt-Konfigurationsdatei von GitLab.

Nachfolgende Einstellungen sind für einen Betrieb mit der Möglichkeit E-Mails zu versenden erforderlich und sind im Bereich:

  #
  # 1. GitLab app settings
  # ==========================
 
  ## GitLab settings
  gitlab:

durchzuführen:

  •     # Tachtler
        # default:     email_from: example@example.com
        email_from: gitlab@tachtler.net

Definition der absendenden E-Mail-Adresse.

  •     # Tachtler
        # default:     email_display_name: GitLab
        email_display_name: gitlab.tachtler.net

Definition des angezeigten Namens vor der E-Mail-Adresse.

  •     # Tachtler
        # default:     email_reply_to: noreply@example.com
        email_reply_to: noreply+gitlab@tachtler.net

Definition der Antwort E-Mail-Adresse. (Welche jedoch hier nicht genutzt werden soll!)

  •     # Tachtler
        # default:     email_subject_suffix: ''
        email_subject_suffix: 'GitLab - '

Definition der Voranstellung im Betreffs E-Mail.

/etc/webapps/gitlab/smtp_settings.rb

Die Konfigurationsdatei /etc/webapps/gitlab/smtp_settings.rb ist die SMTP-Konfigurationsdatei von GitLab.

Nachfolgende Einstellungen sind für einen Betrieb mit der Authentifizierungsmethode SMTP erforderlich und wie folgt durchzuführen:

  •     # Tachtler
        # default:     address: "email.server.com",
        address: "localhost",

Setzen der Adresse oder auch FQDN des lokalen E-Mail-Servers.

  •     # Tachtler
        # default:     port: 465,
        port: 25,

Setzen des Ports des lokalen E-Mail-Servers.

  •     # Tachtler
        # default:     user_name: "smtp",
        # user_name: "smtp",

Deaktivieren der Authentifizierung mittels Benutzername.

  •     # Tachtler
        # default:     password: "123456",
        # password: "123456",

Deaktivieren der Authentifizierung mittels Passworts.

  •     # Tachtler
        # default:     domain: "gitlab.company.com",
        # domain: "gitlab.company.com",

Deaktivieren der Meldung beim (E)SMTP-Dialog mit dem E-Mail-Server mittels HELO/EHLO Namen.

  •     # Tachtler
        # default:     authentication: :login,
        # authentication: :login,

Deaktivieren der Authentifizierung im allgemeinen bei Verwendung eines lokalen E-Mail-Servers.

  •     # Tachtler
        # default:     enable_starttls_auto: true,
        enable_starttls_auto: false

Deaktivieren von STARTTLS beim Verbindungsaufbau zum lokalen E-Mail-Server.

  •     # Tachtler
        # default:     openssl_verify_mode: 'peer' # See ActionMailer documentation for other possible options
        # openssl_verify_mode: 'peer' # See ActionMailer documentation for other possible options

Deaktivieren der Verifikation des Server-Zertifikats beim Verbindungsaufbau zum lokalen E-Mail-Server.

GitLab: Dienste/Daemons stoppen

Nachdem GitLab wahrscheinlich bereits lauffähig gestartet wurde, ist es erforderlich GitLab zu stoppen.

Da ein systemd-Target - hier in diesem Fall gitlab.target nicht einfach gestoppt werden kann, ist es sinnvoll sich den Inhalt von gitlab.target mit nachfolgendem Befehl anzeigen zu lassen:

# systemctl cat gitlab.target
# /usr/lib/systemd/system/gitlab.target
[Unit]
Description=GitLab - Self Hosted Git Management
Requires=gitlab-puma.service gitlab-workhorse.service
Wants=gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service

[Install]
WantedBy=multi-user.target

Hier sind alle Dienste/Daemons welche ebenfalls mittels systemd gestartet werden aus dem gitlab.target in den Bereichen

  • Requires
  • Wants

aufgelistet

Diese können dann mit nachfolgendem Befehl gestoppt werden:

# systemctl stop gitlab-puma.service gitlab-workhorse.service gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service

GitLab: Dienste/Daemons starten

Mit nachfolgendem Befehl wird GitLab wieder gestartet.

Dieser systemd-Start beinhaltet auch den Start alle anderen benötigten Komponenten bzw. Dienste/Daemons von GitLab.

# systemctl start gitlab.target

Eine Überprüfung, ob der Start des Ziel/Target erfolgreich war, kann mit nachfolgendem Befehl überprüft werden:

● gitlab.target - GitLab - Self Hosted Git Management
     Loaded: loaded (/usr/lib/systemd/system/gitlab.target; enabled; preset: disabled)
     Active: active since Fri 2024-05-30 06:07:15 CET; 30min ago

Mar 22 06:07:15 server systemd[1]: Reached target GitLab - Self Hosted Git Management.

GitLab: E-Mail Überprüfung

Nach erfolgreichem Start von GitLab kann mit nachfolgendem Befehl überprüft werden, ob die E-Mail/SMTP-Konfiguration erfolgreich war.

Mit dem nachfolgendem Befehl muss zuerst in das Verzeichnis /usr/share/webapps/gitlab gewechselt werden:

# cd /usr/share/webapps/gitlab

Der nachfolgende Befehl, führt in die rails console von GitLab: (:!: Der Aufruf kann erwartungsgemäss ein wenig länger dauern!)

# sudo -u gitlab $(cat environment | xargs) bundle exec rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]
 GitLab:       17.0.1 (bd824d1abb2) FOSS
 GitLab Shell: 14.35.0
 PostgreSQL:   16.2
------------------------------------------------------------[ booted in 32.86s ]
Loading production environment (Rails 7.0.8.1)
irb(main):001:0>

Anschliessend kann mit nachfolgendem Befehl eine Test-Notifikation aus GitLab heraus via E-Mail versendet werden:

Notify.test_email('klaus@tachtler.net', 'Test Message Subject', 'Test Message Body').deliver_now
irb(main):001:0> Notify.test_email('klaus@tachtler.net', 'Test Message Subject', 'Test Message
Body').deliver_now
Delivered mail 665825e09cdb3_243c2f086254b@vml200.mail (217.7ms)
=> #<Mail::Message:404880, Multipart: false, Headers: <Date: Thu, 30 May 2024 09:08:16 +0200>, <From: 
"gitlab.tachtler.net" <gitlab@tachtler.net>>, <Reply-To: "gitlab.tachtler.net" 
<noreply+gitlab@tachtler.net>>, <To: klaus@tachtler.net>, <Message-ID: 
<665825e09cdb3_243c2f086254b@vml200.mail>>, <Subject: Test Message Subject>, <Mime-Version: 1.0>, 
<Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-
generated>, <X-Auto-Response-Suppress: All>>

Der nachfolgende Befehl, beendet die rails console von GitLab

quit
irb(main):002:0> quit

:!: HINWEIS - Wie in der oben gezeigten Konstellation, kann auch die e-Mail Zustellung an Postfix via SMTP auf localhost.localdomain erfolgen, was nachfolgend gezeigter E-Mail-Header zeigt, anstelle die e-Mails direkt an einen weiteren (zentralen) e-Mail-SMTP-Server zuzustellen!

Die E-Mails haben dann z.B. im Header der E-Mail als erste Received Station folgende Angabe (smtpd):

(Nur relevanter Ausschnitt)

...
Received: from localhost.localdomain (localhost.localdomain [IPv6:::1])
	by gitlab.tachtler.net (Postfix) with ESMTP id C370988
	for <klaus@tachtler.net>; Thu, 30 May 2024 09:08:16 +0200 (CEST)
...
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/gitlab_archlinux_-_e-mail-konfiguration.txt · Zuletzt geändert: 2024/05/30 09:31 von klaus