Gitユーザーなら、ローカルLAN(または外部WAN)経由でアクセスできるローカルリポジトリを持つことが開発プロセスにおいて重要な要素であることはご存知でしょう。GitHubを使うという選択肢もありますが、そうするとローカルでのホスティングができなくなります。では、独自のリポジトリをホストしたい場合は、どうすれば良いのでしょうか?
一言で言えば、GitLabです。
GitLabを使用すると、社内LANまたは(利用可能なパブリックIPアドレスがあれば)社外からアクセスできるオンプレミスのGitリポジトリをホストできます。GitLabはインストールも使い方も非常に簡単です。Ubuntu Server 16.04にGitLabをインストールする手順を解説します。Ubuntu Serverが既に起動しており、sudo権限を持つアカウントにアクセスできることを前提としています。
インストールしてみましょう。
インストール
GitLabをインストールするには、少なくとも2コアと4GBのRAMを搭載したサーバーが必要です。仮想マシンで実行する場合は、VMがこれらのリソースを超えていることを確認してください。
最初に行うべきことは、アップデートまたはアップグレードを実行することです。カーネルをアップグレードする場合は、再起動が必要になりますのでご注意ください。本番環境のマシンの場合は、このプロセスを営業時間外に実行してください。
サーバー上でターミナル ウィンドウを開き、次のコマンドを発行します。
sudo apt update
sudo apt upgrade
これらのコマンドを実行すると、GitLab をインストールする準備が整います (サーバーを再起動する必要がないと仮定)。
最初にインストールする必要があるのは、必要な依存関係です。これは次のコマンドで実行できます。
sudo apt-get install ca-certificates curl openssh-server postfix
上記のインストール中に、Postfixの設定方法を尋ねられます。「インターネットサイト」を選択し、サーバーのドメインまたはIPアドレスを入力してください。ユーザーがLinuxに慣れている場合は、ローカルのみのPostfix設定を選択することもできます。その場合、すべてのユーザーがサーバー上でmailコマンドを使用して、GitLabからメールが配信されているかどうかを確認する必要があります。その場合は、mailutilsパッケージを以下のようにインストールする必要があります。
sudo apt install mailutils
依存関係が準備できたら、次のコマンドで必要なリポジトリをインストールする必要があります。
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
cd /tmp
sudo bash /tmp/script.deb.sh
最後に、次のコマンドで GitLab をインストールします。
sudo apt-get install gitlab-ce
GitLabの設定
設定を編集するファイルは1つだけです。sudo nano /etc/gitlab/gitlab.rbコマンドでファイルを開き、編集してください。ファイル内で以下の行を探してください。
external_url 'https://yourdomain'
サーバーのドメインまたはIPアドレスに合わせて変更してください。IPアドレスを使用する場合は、httpsをhttpに置き換えてください。
GitLabをドメイン使用に設定する場合は、SSLを有効にする必要があります。SSLを有効にするには、次の2行(1519行目付近)を見つけてください。
# letsencrypt['enable'] = false
# letsencrypt['contact_emails'] = [ ]
これらの行のコメントを解除し (# を削除)、false を true に変更して、空の [ ] 文字内に有効な電子メール アドレスを入力します。
ファイルを保存して閉じます。以下のコマンドでGitLabを再設定します。
sudo gitlab-ctl reconfigure
再構成が完了したら、ブラウザを開き、https://DOMAIN または http://IP にアクセスします(DOMAIN はサーバーのドメイン、IP はサーバーのIPアドレス)。管理者アカウントのパスワードを変更するように求められます(図A)。
図A
完了すると、ログイン画面が表示され、アカウントを登録できます。アカウントを作成してログインすれば、GitLabを使い始める準備が整います。グループやプロジェクトなどの作成も可能です。
SSHキーの追加
プロジェクトにプッシュまたはプルするには、新しいGitLabアカウントにリモートマシンアカウントのSSH鍵を追加する必要があります。これを行うには、リモートマシン上のSSH公開鍵を見つけます。Linuxでは、コマンドcat ~/.ssh/id_rsa.pubを実行し、出力をコピーすることで見つけることができます。GitLabアカウントに戻り、右上隅の「プロファイル」ドロップダウンをクリックし、「設定」をクリックします。設定ウィンドウで、「SSH鍵」をクリックします(図B)。
図B
「キー」セクションのSSH公開鍵の内容をコピーし、キーにタイトルを付けて「キーを追加」をクリックします。公開鍵を追加したら、GitLabサーバーに変更をプッシュおよびプルできるようになります。
ラボへようこそ
おめでとうございます。これでローカルのGitLabが起動しました。GitHubをご利用いただいたことがある方なら、GitLabの仕組みはすぐに理解できるでしょう。ローカルネットワーク内でGitのパワーをぜひご活用ください。