TECHSTEP

ITインフラ関連の記事を公開してます。

GitLab Self-managedでGmailを利用してメール送信を実現する

今回はGitLab Self-managedインスタンスからメール送信を有効にするため、Gmailを利用した例を紹介します。

GitLab Self-managedインスタンスの作成方法は前回の記事を参照してください。

背景

GitLab Self-managed版は、ユーザー作成後のパスワード更新などでメール送信を利用します。Self-managed版ではメール送信を有効にするため、SMTPサーバーの用意と機能設定が必要です。ここではGmailを利用した例を紹介します。

docs.gitlab.com

検証

Gmailの設定

最初にGmail側の設定を行います。ここではまずアプリパスワードを発行します。前提として、Googleアカウントの2段階認証が有効になっている必要があります。

Googleアカウントのページに移動し、 セキュリティ を選択します。その後の画面で 2段階認証プロセス を選択後、画面下部の アプリパスワード を選択します。

アプリパスワード画面に移動するので、適当なアプリ名を入力して 作成 をクリックします。

作成するとアプリパスワードが一度だけ表示されます。後ほど利用するので、表示されたパスワードをメモしておきます。

GitLabの設定

次にGitLab側の設定を変更します。設定は /etc/gitlab/gitlab.rb ファイルを変更することで実現します。

まずはインスタンスにログインします。変更前にバックアップの取得を行っておきます。

[ec2-user@ip-10-0-0-238 ~]$ sudo cp -p /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bk

次に以下のようにファイルを修正します。設定内容はSMTPサーバーによって異なりますが、ここではGmail用の設定を行います。

[ec2-user@ip-10-0-0-238 ~]$ sudo vi /etc/gitlab/gitlab.rb

(一部抜粋)

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "<Googleアカウント>@gmail.com"
gitlab_rails['smtp_password'] = "<アプリパスワード>"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

[ec2-user@ip-10-0-0-238 ~]$

ファイルを修正後は gitlab-ctl reconfigure コマンドで変更を反映します。

[ec2-user@ip-10-0-0-238 ~]$ sudo gitlab-ctl reconfigure
[2024-01-07T00:53:48+00:00] INFO: Started Cinc Zero at chefzero://localhost:1 with repository at /opt/gitlab/embedded (One version per cookbook)
Cinc Client, version 17.10.0
Patents: https://www.chef.io/patents
Infra Phase starting

(割愛)

[2024-01-07T00:54:41+00:00] INFO: Report handlers complete
Infra Phase complete, 14/940 resources updated in 52 seconds
[2024-01-07T00:54:41+00:00] WARN: This release of Cinc Client became end of life (EOL) on May 1st 2023. Please update to a supported release to receive new features, bug fixes, and security updates.
gitlab Reconfigured!
[ec2-user@ip-10-0-0-238 ~]$

動作確認

最後に動作確認です。

まずは管理者のメールアドレスの変更を行います。 root ユーザーでログイン後、アイコンをクリックして Edit profile を選択します。

次にメールアドレスを変更します。初期は admin@example.com です。修正後は画面下部の Update profile settings を選択します。

アドレスを修正すると、指定のメールアドレス宛に以下のようなメールが送信されています。 Confirm your email address をクリックして変更を確定します。

次にユーザーの作成を行います。ここではGItLabの画面上から test-gmail-01 というユーザー名で作成しました。ユーザーの作成に成功すると、指定したメールアドレス宛にメールが送信され、パスワードの変更を要求します。

メール中の Click here to set your password を選択すると、パスワードの変更画面が表示されます。

パスワードの変更に成功すると以下のようなメールが送信されます。試しにログインしてもちゃんとログインできることを確認できます。