- 記事一覧 >
- ブログ記事

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メールが来ますので、リンクをクリックすると、登録完了になります。
できました!

その他、宣伝、誹謗中傷等、当方が不適切と判断した書き込みは、理由の如何を問わず、投稿者に断りなく削除します。
書き込み内容について、一切の責任を負いません。
このコメント機能は、予告無く廃止する可能性があります。ご了承ください。
コメントの削除をご依頼の場合はTwitterのDM等でご連絡ください。