1. 記事一覧 >
  2. ブログ記事
category logo

Ubuntu 20.04.2.0にGitLabをインストール

(更新) (公開)

はじめに

Ubuntu 20.04.2.0 に GitLab をインストールしてみました。

GitLabはGitHubとほぼ同じ機能を有するOSSのソースコード管理ツールです。
オンプレミスで使う分には完全無料です。
同じ目的の場合、GitHubが有名ですが、閉じた環境で自力運用したくて、GitLabを選びました。
(GitHub Enterpriseの場合、オンプレミス運用できるようですが、有料になります。)
インストール環境:Ubuntu 20.04.2.0 (VMware上、インターネット接続あり)

インストール準備

root権限で作業していますので、全てsudoは省略しています。


パッケージを最新化します。

# apt update && apt upgrade
Do you want to continue? [Y/n]: Y

※以降基本的にYのため、-yを付けます。
 -y は、? [y/N]: のようなときに自動的に y とするオプションです。

apt update は、パッケージ一覧の更新

apt upgrade は、更新された一覧を元に、実際にパッケージを更新

という動作になります。


curlをインストールします。

# apt install -y curl

GitLab インストール

GitLabをインストールします。

# curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
# apt install -y gitlab-ce

ホスト名を設定します。

# vi /etc/gitlab/gitlab.rb
external_url "http://gitlab.itccorporation.jp"

設定を反映します。

# gitlab-ctl reconfigure

ブラウザアクセス

https://にもできますが、今回は、閉じた環境で運用するため、http://のまま利用します。

http://gitlab.itccorporation.jp へブラウザでアクセス



OKです!


最初の画面は、root のパスワードの設定です。rootは、GitLab管理者になります。


公式サイトのインストール手順では、postfixのインストールが書かれていましたが、smtpサーバーに直接繋いでメール送信できれば良いため、postfixのインストールは行っていません。
gmailでのメール送信設定を試してみました。

メール送信設定(gmail)

2段階認証無し

gmailの設定を行います。

# 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'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "my-gmail-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'

gitlab_rails['smtp_openssl_verify_mode'] = 'peer'は、

SMTPサーバのSSL証明書の有効性を検証して、接続先がなりすまされていないことを確認します。

my.email@gmail.com は、自分のメールアドレス。my-gmail-password は、Googleアカウントのパスワードになります。


設定を反映します。

# gitlab-ctl reconfigure

gitlab-rails consoleで確認してみます。
smtpが有効かどうか確認します。

# gitlab-rails console
> ActionMailer::Base.delivery_method
=> :smtp

⇒OKです。


メール送信設定がきちんと設定されているか確認します。

> ActionMailer::Base.smtp_settings
=> {:authentication=>:login, :address=>"smtp.gmail.com", :port=>587, :user_name=>"my.email@gmail.com", :password=>"my-gmail-password", :domain=>"smtp.gmail.com", :enable_starttls_auto=>true, :tls=>false, :openssl_verify_mode=>"peer", :ca_file=>"/opt/gitlab/embedded/ssl/certs/cacert.pem"}

⇒OKです。


> Notify.test_email('my.email@gmail.com', 'Hello World', 'This is a test message').deliver_now
(略)
Net::SMTPAuthenticationError (535-5.7.8 Username and Password not accepted. Learn more at)

⇒メール送信テストでエラーになりました。


smtp.gmail.comを利用する場合、Googleアカウントの設定が必要のようです。
「安全性の低いアプリのアクセス」をオンにしたらうまくいきました。





# gitlab-rails console
> Notify.test_email('my.email@gmail.com', 'Hello World', 'This is a test message').deliver_now

エラーは起きません。


メーラーで確認をすると、メールが来ました。


⇒Good!


2段階認証有り

2段階認証をOnにしている場合、別の対応が必要のようです。
アプリ パスワードを利用したらうまくいきました。




# 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'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "my-gmail-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'

my-gmail-password をアプリ パスワードにします。


# gitlab-ctl reconfigure

# gitlab-rails console
> Notify.test_email('my.email@gmail.com', 'Hello World', 'This is a test message').deliver_now

メーラーで確認をすると、メールが来ました。


⇒Good!


コンソールでのユーザー登録

gitlab-rails console でユーザー登録ができます。


まずは、root(管理者)を登録します。

# gitlab-rails console
> user = User.where(id: 1).first
> user.password = 'パスワード'
> user.password_confirmation = 'パスワード'
> user.save!

続いて、ユーザーを登録します。


> User.create(
> :username => 'testuser',
> :name => 'Test_User',
> :password => 'test-user-pass',
> :password_confirmation => 'test-user-pass',
> :email => 'my.email@gmail.com',
> :admin => true)

登録したユーザーにconfirmメールが来ますので、リンクをクリックすると、登録完了になります。


できました!