GitLabは、Railsに基づいてGitLab Incによって開発されたオープンソースのGITリポジトリマネージャーです。これは、チームがコードで作業し、バグや機能のリクエストを追跡し、アプリケーションをテストしてデプロイできるようにするWebベースのGITリポジトリマネージャーです。 GitLabは、Wiki、問題追跡、コードレビュー、アクティビティフィード、マージ管理などの機能を提供します。複数のプロジェクトをホストできます。
GitLabには4つのエディションがあります:
- Gitlab CE(Community Edition)-セルフホスト、無料、コミュニティフォーラムからのサポート。
- Gitlab EE(Enterprise Edition)-セルフホストの有料アプリには、追加機能が付属しています。
- GitLab.com-SaaS、無料。
- GitLab.io-GitLabInc.が管理するプライベートGitLabインスタンス
このチュートリアルでは、GitLab CE(Community Edition)を独自のUbuntu 16.04XenialXerusサーバーにインストールする方法を段階的に説明します。このチュートリアルでは、簡単にインストールできるように、GitLabが提供する「オムニバス」パッケージを使用します。
私たちが行うこと:
- パッケージのインストール
- GitLabをインストールする
- GitLabURLを構成する
- SSLを生成する暗号化してDHPARAM証明書を作成する
- GitLabでNginxHTTPSを有効にする
- UFWファイアウォールを設定する
- GitLabのインストールを実行する
- テスト
前提条件
- Ubuntu16.04サーバー-64ビット
- 最小RAM2GB
- ルート権限
最初のステップは、GitLabのインストールに必要なパッケージをインストールすることです。 rootユーザーとしてサーバーにログインし、Ubuntuリポジトリを更新してください。
ssh [email protected]
apt-get update
次に、GitLabリポジトリをダウンロードするためのcurl、ca-certificates、SMTP構成のpostfixを含むパッケージをインストールします。
以下のaptコマンドを使用してすべてのパッケージをインストールします。
sudo apt install curl openssh-server ca-certificates postfix
Postfixのインストール中に、設定についてプロンプトが表示されたら、[インターネットサイト]を選択します。
次に、メールの送信に使用するサーバードメイン名を入力します。
このステップでは、オムニバスパッケージを使用してGitLabをインストールします。 Omnibusは、サーバーでGitLabを実行するために必要なすべてのパッケージ、サービス、およびツールをインストールします。
curlコマンドを使用してGitLabリポジトリを追加します。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
次に、aptコマンドを使用してGitLab CECommunityEditionをインストールします。
sudo apt install gitlab-ce
サーバーがgitlabパッケージをダウンロードしてインストールするのを待ちます。インストールが完了すると、次のような結果が表示されます。
次に、GitLabサーバーへのアクセスに使用されるURLを構成する必要があります。ここでは、GitLab URLにドメイン名「gitlab.hakase-labs.co」を使用し(独自のドメイン名を選択してください)、ユーザーがセキュリティにアクセスするためにHTTPSを使用します。
GitLabの主な構成は、「/ etc/gitlab」ディレクトリにあります。そのディレクトリに移動し、vimで構成ファイル「gitlab.rb」を編集します。
cd /etc/gitlab
vim gitlab.rb
GitLab構成で、9行目の「external_url」に移動し、URLを「gitlab.hakase-labs.co」に変更します。
external_url 'http://gitlab.hakase-labs.co'
ファイルを保存して、エディターを終了します。次のステップでは、GitLabのHTTPSを有効にします。
このステップでは、GitLabのHTTPSプロトコルを有効にします。 gitlabドメイン名を暗号化して提供される無料のSSL証明書を使用します。
aptコマンドを使用してletsencryptコマンドラインツールをインストールします。
sudo apt install letsencrypt -y
インストールが完了したら、以下のコマンドを使用してgitlabドメイン名の新しい証明書を生成します。
letsencrypt certonly -d gitlab.hakase-labs.co
SSL証明書の更新通知のメールアドレスを入力してください。
Let'sEncryptの利用規約で[同意する]を選択して待ちます。
完了すると、以下の結果が表示されます。
NewGitLabの証明書ファイルを暗号化しましょう。証明書ファイルは「/etc/letsencrypt/live」ディレクトリにあります。
次に、GitLab構成ディレクトリの下に「ssl」という名前の新しいディレクトリを作成します。
mkdir -p /etc/gitlab/ssl/
そして、opensslコマンドを使用してsslディレクトリにdhparampemファイルを生成します。
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
次に、証明書ファイルのアクセス許可を600に変更します。
chmod 600 /etc/gitlab/ssl/*
SSL Let's GitLabの証明書を暗号化すると、DHPARAM証明書が生成されます。
この段階では、Letsencryptの証明書ファイルが「/ etc /letsencrypt / live」ディレクトリにあり、DHPARAM証明書が「/ etc / gitlab/ssl」ディレクトリにあります。
このステップでは、証明書ファイルを使用するようにGitLabを構成します。 '/ etc / gitlab'ディレクトリに移動し、vimで'gitlab.rb'構成を編集します。
cd /etc/gitlab/
vim gitlab.rb
「http」ではなく「https」を使用するように外部URLを変更します。
external_url 'https://gitlab.hakase-labs.co'
次に、以下のようにgitlabの新しいSSL構成を追加します。
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
注:
gitlabでHTTPからHTTPSへのリダイレクトを有効にします。
ファイルを保存してvimを終了します。
次に、rootとして以下のコマンドを実行して、新しいgitlab構成を適用する必要があります。
sudo gitlab-ctl reconfigure
結果は次のように表示されます。
GitLabのHTTPS構成が完了しました。
このステップでは、UFWファイアウォールを有効にします。すでにシステムにインストールされているので、サービスを開始するだけです。 GitLabはUFWファイアウォールの背後で実行するため、HTTPポートとHTTPSポートを開く必要があります。
以下のコマンドでUFWファイアウォールを有効にします。
ufw enable
このコマンドはufwサービスを実行し、それを追加して起動時に自動的に開始します。
次に、新しいポートssh、HTTP、HTTPSを開きます。
ufw allow ssh
ufw allow http
ufw allow https
次に、ファイアウォールのステータスを確認し、ssh、http、およびhttpsポートがリストに含まれていることを確認します。
ufw status
HTTPおよびHTTPSポートが構成されています。
GitLabがシステムにインストールされており、UFWファイアウォールの背後で実行されています。このステップでは、パスワード、ユーザー名、プロファイル設定の変更など、いくつかの簡単な設定を行います。
Webブラウザーを開き、gitlabのURLを入力します。私の名前は「gitlab.hakase-labs.co」です。 HTTPS接続にリダイレクトされます。
GitLabルートパスワードをリセット
次に、ユーザー「root」とパスワードを使用してGitLabにログインします。
ユーザー名とプロファイルの変更
右上隅にあるプロファイルをクリックして、[プロファイル設定]を選択します。
[プロファイル]タブで、デフォルトの名前を自分の名前に、電子メールを自分の電子メールアドレスに交換します。次に、[プロファイルの更新]をクリックします。
[アカウント]タブをクリックし、ユーザー名を自分のユーザー名に変更します。次に、[ユーザー名の更新]をクリックします。
SSHキーを追加
キーがすでにあることを確認してください。SSHキーがない場合は、以下のコマンドを使用して生成できます。
ssh-keygen
また、秘密鍵「id_rsa」と公開鍵「id_rsa.pub」の2つの鍵を取得します。
次に、[SSHキー]タブをクリックし、[id_rsa.pub]ファイルの内容をコピーしてキーボックスに貼り付け、[キーの追加]をクリックします。
新しいSSHキーが追加されました。
登録制限と制限設定
「管理領域」アイコンをクリックしてから、歯車アイコンをクリックして「設定」を選択します。
[アカウントと制限の設定]-ユーザーあたりの最大プロジェクト数と[サインアップの制限]を構成でき、メールのドメイン名をホワイトリストボックスに追加できます。
すべてが完了したら、一番下までスクロールして[保存]をクリックします。
基本的なGitLab構成が完了しました。
最後に、GitLabシステムが正しく機能していることを確認するためにいくつかのテストを行います。
新しいプロジェクトを作成する
上部のプラスアイコンをクリックして、新しいプロジェクトリポジトリを作成します。プロジェクト名と説明を入力し、プロジェクトの可視性設定をセットアップします。次に、[プロジェクトの作成]ボタンをクリックします。
新しいプロジェクトが作成されました。
最初のコミットとプッシュをテストする
'howtoforge'プロジェクトが作成されると、プロジェクトページにリダイレクトされます。次に、リポジトリへの新しいコンテンツの追加を開始します。 Gitがコンピューターにインストールされていることを確認し、以下のコマンドを使用してgitのグローバルユーザー名と電子メールを設定します。
git config --global user.name "hakase"
git config --global user.email "[email protected]"
リポジトリのクローンを作成し、README.mdファイルを追加します。
git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
'hakase'ユーザーパスワードの入力を求められます。初めてGitLabにアクセスしたときに使用したものと同じパスワードを入力してください。
新しいファイルをhowtoforgeリポジトリにコミットします。
git add .
git commit -m 'Add README.md file by hakase-labs'
次に、変更をGitLabサーバーのリポジトリにプッシュします。
git push origin master
パスワードを入力し、Enterキーを押して続行します。結果は次のように表示されます。
次に、Webブラウザからhowtoforgeプロジェクトを開くと、新しいREADME.mdファイルがリポジトリに追加されていることがわかります。
GitlabはUbuntu16.04XenialXerusサーバーにインストールされています。
- https://about.gitlab.com/downloads/#ubuntu1604
- https://docs.gitlab.com/ce/