CentOS 7にGitHubライクなGitLabを2分でインストールしてみた

Git

GitのWebインターフェースを探している中で、GitWeb、Ginatraを試したのですが、イマイチでした。

GitWebが日本語でエラー出すので、Ginatra(ギナトラ)のインストール手順をまとめた
GitWebが日本語でエラー出すので、Ginatraをインストールしてみました。 Ginatraのインストール...

そこで今回、GitLabを試してみました。

GitLabは、単にGitのGUIインターフェースのみならず、ユーザー管理、グループ管理、リポジトリのバックアップなどを行うユーザーインターフェースを備え、いわばリポジトリの管理システムとなっています。

スポンサーリンク
スポンサーリンク

GitLabとは

GitLab (公式サイト: https://about.gitlab.com/ ) は、

wikiとバグ管理機能(Issue Tracking System)を備えたGitのリポジトリ管理システムです。

GitHubと似ていますが、GitLabの場合、オンプレミスなサーバーに導入出来ます。

GitLabには以下の二つのエディションが存在します。

GitLab CE : Community Edition

GitLab EE : Enterprise Edition

この中でGitLab CEがフリーでオープンソースなパッケージでMITライセンスで提供されています。

GitLab EEは、プロプライエタリなライセンスでGitLab CEにない機能を備えているようです。

GitLab CEを2分でインストール

GitLabの公式サイト

https://about.gitlab.com/

をブラウザで開きます。

image

「Download and install the open source GitLab CE in 2 minutes」

(オープンソースのGitLab CEを2分でダウンロードしてインストール)

を押します。

以下の画面が表示されます。

image

ロゴがちょっとキモいですが、気にせずに

「Select Operating System」

のところから自分の環境にあったオペレーティングシステムを選択します。

私の場合「CentOS 7」を選択しました。

GitLabではデフォルトでWebサーバーNginxがインストールされます。

よって、Apacheを動作させている場合は停止しておきます。

以下は

https://about.gitlab.com/downloads/

からの引用ですが、日本語でコメントしておきました。

1. Install and configure the necessary dependencies
If you install Postfix to send email please select ‘Internet Site’ during setup. Instead of using Postfix you can also use Sendmail or configure a custom SMTP server. Do not use Exim to send email from GitLab.
On Centos 6 and 7, the commands below will also open HTTP and SSH access in the system firewall.

以下をコマンドから入力します。
openssh-serverのインストールと自動設定、postfixのインストールと自動設定、ファイアウォールとしてhttp(ポート80)を開けておく設定です。

2. Download the Omnibus package and install everything

以下をコマンドから入力します。
rpmパッケージのダウンロードとインストールです。

3. Configure and start GitLab

以下をコマンドから入力します。
GitLabのコンフィギュレーションを行います。

少し時間がかかります。

4. Browse to the hostname and login

ブラウザで開いてみて以下のユーザーでログインします。

Username: root
Password: 5iveL!fe

image

初回ログイン時のみパスワードの変更が要求されるのでパスワードを変更しておきます。

image

そのままログイン出来ます。 以下の画面に遷移します。

image

誇大広告ではなかったです。

本当に2分でダウンロードしてインストール出来ました!

gitlab-ctl reconfigure

というコマンドが非常に優秀なようです。

自動起動設定

GitLabはNginxを同梱していて、インストールするとデフォルトで自動起動設定になっているようです。

以下のファイルが関係しています。

中身は以下の通りです。

以下のコマンドのようにサービスで起動することも出来るようです。

ただ、通常は、Linuxのサービスで起動したり停止したりせず、

gitlab-ctlコマンドを使うようです。

gitlab-ctlには以下のオプションが存在します。

リポジトリの設定など

GitLabのデフォルトのリポジトリの場所は以下のディレクトリです。

/var/opt/gitlab/git-data/gitlab-satellites

は、マージリクエストのために存在するフォルダのようです。

また、リポジトリは、

/var/opt/gitlab/git-data/repositories/root

のように名前空間(namespace)を持つようになっています。

私の環境では、すでに、ローカルの

/var/lib/git/

にすでにbareリポジトリが存在していたので、そのbareリポジトリを丸ごと以下にコピーしました。

その後、以下のコマンドを実行してリポジトリをGitLabに取り込みます。

GitLabのデフォルトのリポジトリの場所は設定ファイル

/etc/gitlab/gitrab.rb

の中で、

git_data_dir

により変更することも可能です。

GitLabのユーザーインターフェースを見る限り、

リポジトリのフォルダ名には必ず.gitという拡張子が必要なようです。

Gitでbareリポジトリを作る際には、

.gitを付けるのは慣習があることは知っていましたが、

GitLabの場合、仕様上、.gitを付けることが必要なようです。

ユーザーの移行方法は?

GitLabはリポジトリのアクセス制御なども行うことが可能です。

そのために、GitLabにユーザーの登録画面が存在します。

これまで、Linuxの/homeにあるユーザーとgitグループでリポジトリを使っていたので、一括でGitLabにユーザーを登録する方法が見つからないのでちょっと困っています。

2015.02.20 追記

その後、Stack Overflowで質問したらアドバイスがありました。

以下の記事にまとめています。

GitLabでGUI画面からでなく、python-gitlabを使ってバルクでユーザー登録する方法
GitLabのセットアップが以下の記事の通り完了しました。 その後、GitLabでGU...

まとめ

以下の記事の通り、Ginatraを使ってみてイマイチだったので、GitLabはいい感じだと思っています。

GitWebが日本語でエラー出すので、Ginatra(ギナトラ)のインストール手順をまとめた
GitWebが日本語でエラー出すので、Ginatraをインストールしてみました。 Ginatraのインストール...

GitLabは単なるGitのWebインターフェースに留まらず、リポジトリのアクセス権限やユーザー登録も備えたGitの管理システムと言えるでしょう。

Gitについてのおすすめの本

↓Gitについてのおすすめの本はコチラ

Git