そういうのがいいブログ

某SIerで働く30代サラリーマンSEが、WEBエンジニアに憧れてプログラミング勉強をするブログ

GitLabサーバから別のSMTPサーバを使ってメール送信する設定手順

・ローカル内のGitLabサーバから別のSMTPサーバを使ってメール送信ができるようにしたい。
・具体的な設定方法を教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. ローカル内のCentOS8サーバ上のGitLabから、別のSMTPサーバを使ってメール送信する設定方法

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

ローカル内のCentOS8サーバ上のGitLabから、別のSMTPサーバを使ってメール送信する設定方法

「gitlab.rb」の修正

修正前ファイルのバックアップ

cp -p /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.original_bk
[root@SV-MARS gitlab]# cp -p /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.original_bk

「gitlab.rb」ファイルの修正

vi /etc/gitlab/gitlab.rb
### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "sv-earth.ad.planet.jp"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "△△△△△ユーザ名"
gitlab_rails['smtp_password'] = "●●●●●パスワード"
gitlab_rails['smtp_domain'] = "ad.planet.jp"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = false

### Email Settings

gitlab_rails['gitlab_email_enabled'] = true

##! If your SMTP server does not like the default 'From: gitlab@gitlab.example.com'
##! can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = 'gitlab@ad.planet.jp'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'
gitlab_rails['gitlab_email_reply_to'] = 'gitlab@ad.planet.jp'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
# gitlab_rails['gitlab_email_smime_enabled'] = false
# gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'

設定変更後の再構築

gitlab-ctl reconfigure
[root@SV-MARS gitlab]# gitlab-ctl reconfigure
Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab"]
Synchronizing Cookbooks:
  - gitlab (0.0.1)
  - package (0.1.0)
  - postgresql (0.1.0)
  - redis (0.1.0)
  - monitoring (0.1.0)
  - registry (0.1.0)
  - mattermost (0.1.0)
  - consul (0.1.0)
  - gitaly (0.1.0)
  - praefect (0.1.0)
  - gitlab-kas (0.1.0)
  - letsencrypt (0.1.0)
  - nginx (0.1.0)
  - runit (5.1.3)
  - acme (4.1.1)
  - crond (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...

---------(途中省略)-------------------------

Running handlers:
Running handlers complete
Chef Infra Client finished, 5/785 resources updated in 16 seconds
gitlab Reconfigured!

GitLab再起動

gitlab-ctl restart
[root@SV-MARS gitlab]# gitlab-ctl restart
ok: run: alertmanager: (pid 222764) 0s
ok: run: gitaly: (pid 222774) 0s
ok: run: gitlab-exporter: (pid 222805) 0s
ok: run: gitlab-workhorse: (pid 222807) 1s
ok: run: grafana: (pid 222813) 0s
ok: run: logrotate: (pid 222822) 1s
ok: run: nginx: (pid 222828) 0s
ok: run: node-exporter: (pid 222837) 0s
ok: run: postgres-exporter: (pid 222843) 1s
ok: run: postgresql: (pid 222852) 0s
ok: run: prometheus: (pid 222854) 1s
ok: run: puma: (pid 222869) 0s
ok: run: redis: (pid 222874) 1s
ok: run: redis-exporter: (pid 222883) 0s
ok: run: sidekiq: (pid 222966) 0s

GitLabからメール送信テスト

ログイン画面の「Forgot your password?」をクリック。

メールアドレスを入力して「Reset password」をクリック。

すぐに、GitLabから「Reset password instructions」というメールが届きました。

souiunogaii.hatenablog.com

エンジニアの勉強ができるオンライン学習サイト

Udemy (オンライン動画学習サイト)

≫世界最大級のオンライン学習サイトUdemy https://www.udemy.com/ 

Udemy(ユーデミー)は、オンラインで動画で学習できるサービスです。
ITエンジニア系の講座もたくさん公開されています。

Udemyの特徴
  • ユーザー登録すれば、第1回の講座は無料で視聴できる
  • 無料のコンテンツもある
  • 過去に受講した人の人数や、受講した人の評価も表示されるので選びやすい

≫DevOps Project: CICD with Git GitLab Jenkins and Laravel(トータル4時間)