Linux(Ubuntu)への抵抗感もなくなってきたのでVagrant(Ubuntu16.04)にGitLabをインストールしてみます。タイトルが「その1」なのはそのうち続きを書くつもりだからです。なお、Dockerを使用して構築する方法はこちらに書きました

目次

  1. まえがき
  2. 前提
  3. Vagrantの設定
  4. インストール
  5. 設定
  6. 管理者でログイン
  7. ログイン
  8. どういう構成で動いているのか

まえがき


前職でもGitLabを使用したかったのですが、その時はLinuxに疎かった(GiLabはLinuxしかサポートしていないし、今後もWindowsサポートの予定はない)のでGitBucketを使っていました。

個人で使うのであればGitLab.comとかがありますが、会社で使うとなればなかなか外部サービスを使用できません。
ので、Community Editionをインストールします。

なお、GitLab.comはEnterprise Editionと同等ですが、オンプレミス版で無料で使用できるのはCommunity Editionだけです。
GitLab.comはプライベートリポジトリを無制限につくったり、GitHubからIssueとかTagとかそのまま丸ごとインポートできたりします。

前提


Vagrant上のUbuntu16.04に構築します。

Vagrantの設定


GitLabの動作要件はメモリ1GBです。
実際にどれくらいでメモリを使用しているのかわかりませんが、少なくとも512MBとかだと動作しません。
(ステータスコード500が表示されます)

また、会社で使ってみた感じでは8000コミットくらいのリポジトリを放り込んだらかなり動作が重くなりました。
そのため、会社ではVagrantfileでゲストOSに対して、メモリを「1GB」 + 「プロセッサー数4つ」割り当てました。
これくらいだと特に問題なく動作してます。(といってもアクセスしているのが私一人ですが…)

その他、ホストOSのディスクのアクセス速度(SSDかどうか)等も影響してくると思います。

インストール


ごく簡単です。公式サイトの手順に従うだけです。
下記の通り順番に流すだけ。

1
2
3
4
sudo apt-get install curl openssh-server ca-certificates postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
sudo gitlab-ctl reconfigure

ちなみ、会社だとすぐ終わっ(略
自宅だと1時間半くらいかかりました…

設定


/etc/gitlabgitlab.rbで設定を変更できます。
今回はとりあえず動かすのが目的ということでexternal_urlのみ変更します。

こいつを変更しないと、いろんなリンク先でページが見つからない状態になります。
external_urlの値をVagrantfileで設定したIPもしくはドメインに設定します。

1
2
//例
external_url 'http://192.168.33.10'

設定後にgitlab-ctl reconfigureで設定を反映します。

管理者でログイン


初期ユーザーは下記のIDとパスワードでログインできるはずです。

  • Username: root
  • Password: 5iveL!fe

ところが…なぜかログインできません。
このままユーザーを作成してログインしてもいいんですが、管理者にしかできない設定ができません。

下記の手順でリセットします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//コンソール起動
gitlab-rails console production

//rootユーザの情報取得
user = User.where(id: 1).first

//変更後パスワード入力
user.password = '変更後パスワード'

//パスワード再確認
user.password_confirmation = '変更後パスワード'

//設定保存
user.save

//コンソール終了
exit

下記の記事を参考にしました。

Gitlabのrootユーザー(admin)のパスワードを忘れてしまった場合

ログイン


デフォルトだと80番ポートで動いているようなので、そのままゲストOSのIP(もしくはドメイン)でアクセスします。
ログインできました!

イメージ1

どういう構成で動いているのか


GitLab CEは下記のような構成で動いているようです。

postgreSQL DB
Nginx Webサーバー
unicorn NginxでRuby On Railsを稼働するために使用

これらは、GitLabインストール時に自動でインストールされます。
これらをもともとインストールしている場合はそれらとは別で稼働するようです。ちなみにもともとインストールしているものを使用して稼働させる方法もあるようです。
これらのサービスやデータは/var/opt/gitlab/配下にあります。

また、Community EditionではPostgreSQLしか使えません…
Postgres使ったことないんだよな…

細かい設定とかは会社で試しながら書いていきたいな~と思います。