GitLabは、GitLab Incによって開発されたRailsに基づくオープンソースのリポジトリマネージャーです。これは、チームがアプリケーションのコーディング、テスト、およびデプロイで共同作業できるようにするWebベースのgitリポジトリマネージャーです。 GitLabは、Wiki、問題追跡、コードレビュー、アクティビティフィードなど、いくつかの機能を提供します。
GitLab Incは4つの製品を提供しています:
- Gitlab CE(Community Edition)-セルフホストで無料。コミュニティフォーラムからのサポート。
- Gitlab EE(Enterprise Edition)-自己ホスト型で有料。追加機能が付属しています。
- GitLab.com-SaaSおよび無料。
- GitLab.io-GitLabInc.が管理するプライベートGitLabインスタンス
このチュートリアルでは、4GBのRAMを搭載したCentOS7サーバーにGitLabCE(Community Edition)を段階的にインストールする方法について説明します。以前のチュートリアルの1つでは、GitLabのインストールを手動で行いました。ただし、ここでは、GitLabが提供する「オムニバス」パッケージをインストールに使用します。
- パッケージをインストールする
- GitLabをインストールする
- GitLabURLを構成する
- SSLを生成する暗号化してDHPARAM証明書を作成する
- GitLabでNginxHTTPSを有効にする
- fIrewalldを構成する
- GitLabのインストールを実行する
- テスト
- CentOS7サーバー-64ビット
- 最小RAM2GB
- root権限
このステップでは、GitLabのインストールに必要ないくつかのパッケージをダウンロード/インストールします。 curlを使用して、リポジトリインストーラー、SELinuxマネージャー用のpolicycoreutils、OpenSSH、およびpostfixをローカルSMTPサーバーとしてダウンロードします。
次のyumコマンドを使用して、これらのパッケージをすべてインストールします。
yum -y install curl policycoreutils openssh-server openssh-clients postfix
その後、sshおよびpostfixサービスを開始します。
systemctl start sshd
systemctl start postfix
次に、起動時に自動的に実行できるようにします。
systemctl enable sshd
systemctl enable postfix
これで、GitLabのインストールに必要なすべてのパッケージがサーバーにインストールされました。
GitLabは、GitLabCEリポジトリを追加するためのインストーラーを提供します。 curlを使用してインストーラーをダウンロードし、スクリプトを実行して(以下に示すように)、新しいGitLabCEリポジトリーを追加します。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
GitLabCEリポジトリがシステムに追加されました。
次に、次のyumコマンドを使用してGitLabをインストールします。
yum -y install gitlab-ce
インストールが完了すると、次のような結果が得られます。
これにより、GitLabCEがCentOS7サーバーにインストールされます。
このチュートリアルでは、GitLabのドメイン名を使用します。具体的には、ドメイン名「gitlab.hakase-labs.co」を使用します。
GitLab構成ディレクトリ「/etc/ gitlab」に移動し、vimエディターで構成ファイル「gitlab.rb」を編集します。
cd /etc/gitlab/
vim gitlab.rb
external_url行をドメイン名'gitlab.hakase-labs.coに変更します '。
external_url 'http://gitlab.hakase-labs.co'
変更を保存してvimを終了します。
セキュリティの基本層として、GitLabサイトにSSLを使用します。 Letsencryptからの無料のSSL証明書を使用し、DHPARAM証明書を生成してセキュリティレイヤーを追加します。
Letsencrypt証明書を生成するには、リポジトリで利用できるletsencryptコマンドラインツールをインストールする必要があります。
以下のyumコマンドを使用してCentOS7にLetsencryptツールをインストールします。
yum -y install letsencrypt
インストールが完了したら、以下のコマンドを使用して新しいSSL証明書letsencryptを生成します。
letsencrypt certonly --standalone -d gitlab.hakase-labs.co
注: SSL Letsencryptを生成するときは、HTTPポートとHTTPSポートがファイアウォールによってブロックされていないことを確認してください。
通知を更新するためのメールアドレスを入力し、Letsencrypt利用規約に「A」と入力し、最後に「N」と入力してもう一度Enterキーを押します。
また、以下のような結果が表示された場合は、ドメイン名の証明書が生成され、「/ etc /letsencrypt/live」ディレクトリに保存されていることを意味します。
次に、GitLab構成ディレクトリ'/ etc /gitlab/'の下に新しい'ssl'ディレクトリを作成します。
mkdir -p /etc/gitlab/ssl/
次に、OpenSSLを使用してDHPARAM証明書pemファイルを生成します。ビットが大きいほど安全です。
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
そして、DHPARAM証明書が生成されたら、証明書ファイルのアクセス許可を600に変更します。
chmod 600 /etc/gitlab/ssl/*
そのため、GitLabインストール用のSSLLetsencryptおよびDHPARAM証明書が生成されました。
この段階では、Letsencryptからの無料のSSL証明書ファイルと、OpenSSLコマンドを使用して生成されたDHPARAM証明書がすでに用意されています。このステップでは、GitLabサイトでHTTPSを有効にします。 HTTPSを有効にし、HTTPをHTTPS接続に強制します。
まず、GitLab構成ディレクトリに移動し、構成ファイル「gitlab.rb」を編集します。
cd /etc/gitlab/
vim gitlab.rb
そして、external_url行でHTTPをHTTPSに変更します。
external_url 'https://gitlab.hakase-labs.co'
次に、次の構成を「external_url」行構成の下に貼り付けます。
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"
変更を保存してvimを終了します。
最後に、次のコマンドを使用してGitLab構成を適用します。
gitlab-ctl reconfigure
そして、すべてが完了すると、次のような結果が得られるはずです。
このチュートリアルでは、ファイアウォールで保護されたファイアウォールの下でGitLabを実行します。したがって、システムにインストールされていることを確認してください。パッケージがない場合は、次のコマンドを使用してインストールできます。
yum -y install firewalld
次に示すように、firewalldを起動し、systemctlコマンドを使用して起動時に自動的に実行できるようにします。
systemctl start firewalld
systemctl enable firewalld
次に、サービス用に新しいポートを開きます。 GitLab構成用にSSH、HTTP、およびHTTPSポートを開きます。以下のfirewall-cmdコマンドを実行して、ポートを開きます。
firewall-cmd --permanent --add-service ssh>
firewall-cmd --permanent --add-service http
firewall-cmd --permanent --add-service https
次に、ファイアウォールをリロードし、firewalldの構成を確認します。 SSH、HTTP、およびHTTPSがリストに含まれていることを確認してください。
firewall-cmd --reload
firewall-cmd --list-all
これで、GitLabのファイアウォール設定が完了しました。
そのため、GitLabはシステムにインストールされており、ファイアウォールで保護されたファイアウォールの下で実行されています。このステップでは、サーバーにGitLabをインストールした後、いくつかの簡単な設定を行います。
GitLabルートパスワードをリセット
Webブラウザーを開き、gitlabのURL「gitlab.hakase-labs.co」を入力します。 HTTPS接続にリダイレクトされます。ルートパスワードを自分のパスワードに変更し、[パスワードの変更]ボタンをクリックして確認します。
これで、デフォルトのユーザー「root」と自分のパスワードを使用してGitLabダッシュボードにログインできます。
GitLabダッシュボードにログインしたら、アイコンプロファイルの右上をクリックし、[設定]アイコンをクリックしてプロファイルを設定します。
[プロファイル]タブで、名前とメールアドレスを変更し、下部にある[プロファイル設定の更新]ボタンをクリックして確認します。
次に、[アカウント]タブに移動し、デフォルトのrootユーザー名を自分のユーザー名に変更してから、[ユーザー名の更新]ボタンをクリックします。
SSHキーを追加
キーがすでにあることを確認してください。SSHキーがない場合は、以下のコマンドを使用して生成できます。
ssh-keygen
そして、〜/.ssh/ディレクトリに2つのキーがあります。 「id_rsa」が秘密鍵になり、「id_rsa.pub」が公開鍵になります。
次に、Webブラウザに戻り、[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
はかせパスワードの入力を求められます。初めてGitLabにアクセスしたときに使用したものと同じパスワードを入力してから、README.mdファイルに新しいコンテンツを追加してください。
次のコマンドを使用して、リポジトリに新しい変更をコミットします。
git add .
git commit -m 'Add README.md file by hakase-labs'
次に、リポジトリをGitLabサーバーにプッシュします。
git push origin master
パスワードを入力し、Enterキーを押して続行します。以下のような結果が表示されます。
次に、Webブラウザからプロジェクト(この場合はhowtoforge)を開くと、新しいREADME.mdファイルがリポジトリに追加されていることがわかります。
したがって、これは、Gitlabが4GBのメモリを搭載したUbuntuCentOS7に正常にインストールされていることを確認します。