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

シェアする

  • このエントリーをはてなブックマークに追加

GitのWebインターフェースを探している中で、GitWeb、Ginatraを試したのですが、イマイチでした。
GitWebが日本語でエラー出すので、Ginatraをインストールしてみた
そこで今回、GitLabを試してみました。

スポンサードリンク

GitLabとは

GitLab(https://about.gitlab.com/)は、wikiとバグ管理機能(Issue Tracking System)を備えたGitのリポジトリ管理システムです。
GitHubと似ていますが、オンプレミスなサーバーに導入出来ます。
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分でダウンロードしてインストール)を押します。

以下の画面が表示されます。
ロゴがちょっとキモいですが、気にせずに「Select Operating System」のところから自分の環境にあったオペレーティングシステムを選択します。
私の場合「CentOS 7」を選択しました。

image

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を使ってバルクでユーザー登録する方法

まとめ

以下の記事の通り、Ginatraを使ってみてイマイチだったので、GitLabはいい感じだと思っています。
GitWebが日本語でエラー出すので、Ginatraをインストールしてみた

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

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です