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

Git
スポンサーリンク

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

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

 

そこで今回、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 most-comprehensive AI-powered DevSecOps platform
From planning to production, bring teams together in one application. Ship secure code more efficiently to deliver value faster.

をブラウザで開きます。

 

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

 

 

以下は

Download and install GitLab
Download, install and maintain your own GitLab instance with various installation packages and downloads for Linux, Kubernetes, Docker, Google Cloud and more.

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

 

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 contains the ...

 

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分でインスト… […]

タイトルとURLをコピーしました