CentOS 7にGitHubライクなオンプレミス GitLab CE (community edition) を2分でインストール・導入・構築してみた

スポンサーリンク
Git

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

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

 

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

 

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

 

GitLab (ギットラボ) とは

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

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

GitLabの読み方は、ギットラボです。

 

クラウドサービスである GitHubと似ていますが、GitLabの場合、オンプレミスな自社サーバーに導入出来ます。

 

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

GitLab CE : Community Edition

GitLab EE : Enterprise Edition

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

 

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

 

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

GitLabの公式サイト

The first single application for the entire DevOps lifecycle - GitLab
From project planning and source code management to CI/CD and monitoring, GitLab is a single application for the entire DevOps lifecycle. Only GitLab enables C...

をブラウザで開きます。

 

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を動作させている場合は停止しておきます。

 

 

以下は

Redirecting
Code, test & deploy with GitLab. Everyone can contribute!

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

 

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のpython-gitlabでコマンドラインでユーザーを一括で追加、アカウント登録、削除する方法
GitLabのセットアップについて、以下の記事の通り完了しました。 その後、GitLabでGUI画面から1人1人ユーザー登録するのはGUIから行えます。 一方で、コマンドラインから一括でバルクでユ...

 

まとめ

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

 

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

 

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

 

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

 

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

Git

 

 

コメント

  1. […] CentOS 7にGitHubライクなオンプレミス GitLab CE (community edition) を2分でインスト… […]

  2. […] CentOS 7にGitHubライクなオンプレミス GitLab CE (community edition) を2分でインスト… […]