LoginSignup
60
86

More than 1 year has passed since last update.

GitLab をインストールしよう! (omnibus package)

Last updated at Posted at 2016-12-04

GitLab をインストールしよう!

GitLab Advent Calendar の四日目はインストールについて書いてみようと思います。

GitLab を使うだけならサービス版の GitLab.com を使うのがもっとも手っ取り早いです。ですが、会社で使う場合、クラウドサービスはちょっと... という会社も多いのではないでしょうか? GitLab には GitLab CE という OSS の無償で使える製品がありますので、これを社内のサーバーにインストールして使うことができます。

2022/05/27 追記: この記事は 2016 年のものです。 インストール方法は大きくは変わっていませんが細かい違いがあります。公式ドキュメントを確認してください。また、初期パスワードについては大きく変更がありましたのでその点だけ修正しています。

インストールの前に

インストール方法の選択

GitLab CE のインストール方法はいくつか用意されています。公式で推奨とされるやり方は Omnibus package installation を使ったインストールです。Omnibus package は GitLab CE に加えて、Ruby/nginx/PostgreSQL などの必要なアプリケーションを同梱しており、手軽にインストールができます。

Docker ImageAMI や、その他のインストール方法 も用意されていますので、運用形態に合わせて選ぶと良いでしょう。

インストール要件

インストールに必要な OS やリソースについては、公式サイトの Requirements に書かれています。

Ruby や PostgreSQL (or MySQL) や Redis などは Omnibus package に同梱されていますので、OS とハードウェア要件だけ気にしておけばよいでしょう。

なお、お試しでインストールする場合でも、メモリは 2GB 程度はあった方がいいと思います。

インストール

インストールした仮想マシンは以下のとおりです。

項目
OS Ubuntu 16.04 LTS Server x64 (KVM にインストール)
CPU 2 core
Memory 3GB
HDD 128GB
方法 Omnibus package

GitLab CE のインストール

Install a GitLab CE Omnibus package on (Ubuntu 16.04 recommended) に書かれているとおりに進めていきます。

SSH Server や必要なソフトウェアをインストールします。

$ sudo apt-get install curl openssh-server ca-certificates postfix

途中、設定について質問されますが、そのまま Enter キーを押してデフォルトのまま進めていきます。

apt line に GitLab CE を登録するためにスクリプトを実行します。

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Detected operating system as Ubuntu/xenial.
Checking for curl...
Detected curl...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/gitlab_gitlab-ce.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.

The repository is setup! You can now install packages.

apt line に GitLab CE が登録されています。

$ cat /etc/apt/sources.list.d/gitlab_gitlab-ce.list 
# this file was generated by packages.gitlab.com for
# the repository at https://packages.gitlab.com/gitlab/gitlab-ce

deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ xenial main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ xenial main

apt-get install で GitLab をインストールします。回線速度次第ですが、ダウンロードにちょっと時間がかかります。

$ sudo apt-get install gitlab-ce

設定を再構成して、起動します。

$ sudo gitlab-ctl reconfigure
snip...


Running handlers:
Running handlers complete
Chef Client finished, 233/325 resources updated in 01 minutes 20 seconds
gitlab Reconfigured!

なにやらいっぱいメッセージが出てきます。ちょっとだけ待ちましょう。

設定と起動が終わったら、ブラウザーで http://192.168.122.xxx にアクセスします。(IP Address はインストールしたサーバーの IP Address を指定してください)

(E10 以前の IE には対応していません。たまに不具合があるようです)

gitlab1.png

最初に root ユーザーのパスワードを変更するように促されますので、New passwordConfirm new password に新しいパスワードを入れて Change Your password ボタンをクリックしてください。

2022/05/27 追記: GitLab 14.0 から初期パスワードがランダムになりました。詳しくはGitLabの初期パスワードを参照してください。

gitlab2.png

パスワードの変更が完了したら root ユーザーでログインします。

gitlab3.png

これでインストールは完了です! あとは、ユーザーやプロジェクトを作って GitLab を楽しんでください!

GitLab Mattermost の有効化

Omnibus package には Slack like なチャットアプリ、GitLab Mattermost も同梱されています。簡単なので、こちらもセットアップしちゃいましょう!

Omnibus package で設定を変更する場合、/etc/gitlab/gitlab.rb を変更して gitlab-ctl reconfigure を実行する流れになります。

$ sudo vim /etc/gitlab/gitlab.rb

GitLab Mattermost の設定は 820 行目あたりから始まります。

#####################
# GitLab Mattermost #
#####################

# mattermost_external_url 'http://mattermost.example.com'
#
# mattermost['enable'] = false

mattermost_external_url を変更します。今回は、ポート番号 '5001' 番でアクセスできるように変更します。

#####################
# GitLab Mattermost #
#####################

mattermost_external_url 'http://192.168.122.xxx:5001' # サーバーの IP Address を指定
#
# mattermost['enable'] = false

VIM の使い方が分からない方は代わりに以下を実行してください。

$ echo "mattermost_external_url 'http://192.168.122.xxx:5001'" | sudo bash -c 'cat >> /etc/gitlab/gitlab.rb'

gitlab-ctl reconfigure を実行します。

$ sudo gitlab-ctl reconfigure

完了したらブラウザーで http://192.168.122.xxx:5001 にアクセスします。

mattermost1.png

GitLab の OAuth の連携の設定も完了していますので、すぐに使いはじめることができます。

GitLab Container Registry の有効化

Omnibus package には GitLab Container Registry も含まれています。GitLab Container Registry を使うとプロジェクトに Docker Image をアップロードできるようになります。Docker を使っている方には嬉しい機能ではないでしょうか?

有効化は GitLab Mattermost と同じ手順です。

Container Registry の設定は 350 行目あたりにあります。

###############################
# Container Registry settings #
###############################
# See https://docs.gitlab.com/ce/administration/container_registry.html
#

# registry_external_url 'https://registry.gitlab.example.com'

## Settings used by GitLab application
# gitlab_rails['registry_enabled'] = true

registry_external_url を変更します。ポート番号 5002 番でアクセスできるよう変更します。

###############################
# Container Registry settings #
###############################
# See https://docs.gitlab.com/ce/administration/container_registry.html
#

registry_external_url 'https://192.168.122.xxx:5002'

## Settings used by GitLab application
# gitlab_rails['registry_enabled'] = true

VIM の使い方がわからない方は代わりに以下を実行してください。

$ echo "registry_external_url 'http://192.168.122.xxx:5002'" | sudo bash -c 'cat >> /etc/gitlab/gitlab.rb'

gitlab-ctl reconfigure を実行します。

$ sudo gitlab-ctl reconfigure

これでプロジェクトに Docker Image がアップロードできるようになります。

プロジェクトを作って Registry タブをクリックすると、Docker Image の登録方法が表示されています。

registry1.png

ですが、SSL 化されていないため、docker push ができません。(その前に docker login できませんが...) GitLab Container Registry に非 SSL で繋がるよう Docker Engine の設定を変更する必要があります。

GitLab Advent Calendar 2016 九日目の記事、GitLab Container RegistryGitLab CE 編 に設定方法を書いてありますので参考にしてください。

最後に

GitLab CE のインストールはそれほど難しくはありません。GitLab Mattermost や Container Registry も同梱されています。

以前はソースコードからインストールする必要があり、かなり大変だったのですが Omnibus package の登場で手軽にインストールできるようになりました。

チーム内で使ってみるだけなら手軽に始められるので、ぜひインストールしてみてください。

おまけ

名前

今回のインストールではサーバーの IP Address を直接使いました。この方法では GitLab CE/GitLab Mattermost/Container Registry のポート番号を別々にする必要があります。使う上で非常に不便です。

Omnibus package では名前ベースバーチャルホストを使ってポート番号を全て 80 番に統一することができます。

/etc/gitlab/gitlab.rb を以下のように変更します。

external_url 'http://gitlab.example.com'
mattermost_external_url 'http://mattermost.example.com'
registry_external_url 'http://registry.example.com'

gitlab-ctl reconfigure で再設定します。

$ sudo gitlab-ctl reconfigure

gitlab.example.com mattermost.example.com registry.example.com の三つの名前を DNS に登録してください。

これで、それぞれの URL でアクセスできるようになります。

アップグレード

GitLab は頻繁にバージョンアップされています。月に一回のバージョンアップ (8.1 -> 8.2) と、月に数回のセキュリティアップデートやバグフィクス (8.1.0 -> 8.1.1) がなされています。

GitLab Omnibus package でインストールした場合は apt-get upgrade または apt-get dist-upgrade でアップグレードされます。

アップグレード方法もとても簡単でいいですね!

60
86
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
86