Ubuntu18.04にGitLabをインストールして構成する方法

前書き

[ GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce)またはCommunity Editionは、主にGitリポジトリおよび問題追跡などの他の開発関連機能をホストするために使用されるオープンソースアプリケーションです。これは、ホスティングに独自のインフラストラクチャを使用し、開発チームに内部リポジトリを展開する柔軟性、ユーザーと対話するためのパブリックな方法、または貢献者に独自のプロジェクトをホストする方法を提供するように設計されています。

GitLabプロジェクトは、単純なインストールメカニズムを使用して、独自のハードウェア上にGitLabインスタンスをセットアップします。このガイドでは、Ubuntu18.04サーバーにGitLabをインストールして構成する方法を紹介します。

準備 ##

このチュートリアルでは、次のものが必要になります。

[リリースされたGitLabハードウェア要件](http://docs.gitlab.com/ce/install/requirements.html#hardware-requirements)は、サーバーの使用を推奨しています。

一部のスワップスペースを置き換えることでRAMを取得できますが、お勧めしません。このガイドでは、少なくとも上記のリソースがあることを前提としています。

ステップ1-依存関係をインストールする

GitLabを自分でインストールする前に、インストールプロセス中に引き続き使用するソフトウェアをインストールすることが非常に重要です。幸い、必要なすべてのソフトウェアは、Ubuntuのデフォルトのパッケージリポジトリから簡単にインストールできます。

このセッションで aptを使用するのはこれが初めてなので、ローカルパッケージインデックスを更新してから、次のように入力して依存関係をインストールできます。

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

このソフトウェアの一部はすでにインストールされている可能性があります。 postfixのインストールについては、プロンプトが表示されたら「**インターネットサイト」**を選択してください。次の画面で、サーバーのドメイン名を入力して、システムがメールを送信する方法を構成します。

**ステップ2-GitLab **をインストールする##

依存関係が整ったので、GitLabを自分でインストールできます。これは、インストールスクリプトを使用して、GitLabリポジトリを使用してシステムを構成する単純なプロセスです。

/ tmpディレクトリに入り、インストールスクリプトをダウンロードします。

cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

ダウンロードしたスクリプトをチェックして、必要な操作に満足していることを確認してください。スクリプトのホストバージョンも[ここ](https://packages.gitlab.com/gitlab/gitlab-ce/install)にあります。

less /tmp/script.deb.sh

スクリプトのセキュリティに満足したら、インストーラーを実行します。

sudo bash /tmp/script.deb.sh

このスクリプトは、GitLabによって維持されているリポジトリを使用するようにサーバーを設定します。これにより、他のシステムパッケージと同じパッケージ管理ツールを使用してGitLabを管理できます。完了したら、次の aptコマンドを使用して実際のGitLabアプリケーションをインストールできます。

sudo apt install gitlab-ce

これにより、必要なコンポーネントがシステムにインストールされます。

ステップ3-ファイアウォールルールを調整する

GitLabを構成する前に、ファイアウォールルールがWebトラフィックを許可するのに十分緩いことを確認する必要があります。前提条件にリンクされているガイドに従うと、 ufwファイアウォールが有効になります。

次のように入力して、アクティブなファイアウォールの現在のステータスを表示します。

sudo ufw status
Status: active
​
To                         Action      From
------------
OpenSSH                    ALLOW       Anywhere                  
OpenSSH(v6)               ALLOW       Anywhere(v6)

ご覧のとおり、現在のルールではSSHトラフィックの通過が許可されていますが、他のサービスへのアクセスは制限されています。 GitLabはWebアプリケーションであるため、HTTPアクセスを許可する必要があります。 GitLabを使用して[Let'sEncrypt](https://letsencrypt.org/)から無料のTLS / SSL証明書を要求して有効にするため、HTTPSアクセスも許可します。

/ etc / servicesファイルはHTTPおよびHTTPSのポートマッピングプロトコルを提供するため、このトラフィックを名前で許可できます。 OpenSSHトラフィックを有効にしていない場合は、今すぐ許可する必要があります。

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

もう一度 ufw statusを確認してください。少なくとも、次の2つのサービスにアクセス権が設定されているはずです。

sudo ufw status
Status: active
​
To                         Action      From
------------
OpenSSH                    ALLOW       Anywhere                  
80 /tcp                     ALLOW       Anywhere                  
443 /tcp                    ALLOW       Anywhere                  
OpenSSH(v6)               ALLOW       Anywhere(v6)80/tcp(v6)                ALLOW       Anywhere(v6)443/tcp(v6)               ALLOW       Anywhere(v6)

上記の出力は、アプリケーションの構成後にGitLabWebインターフェイスにアクセスできることを示しています。

ステップ4-GitLab構成ファイルを編集する

アプリケーションを使用する前に、構成ファイルを更新して、再構成コマンドを実行する必要があります。まず、Gitlab構成ファイルを開きます。

sudo nano /etc/gitlab/gitlab.rb

上部近くには external_url構成行があります。ドメインに一致するように更新してください。 http httpsに変更して、GitLabがLet's暗号化証明書で保護されているサイトにユーザーを自動的にリダイレクトするようにします。

##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

次に、 letsencrypt ['contact_emails']設定を探します。この設定は、電子メールアドレスのリストを定義します。ドメインに問題がある場合は、暗号化プロジェクトを使用して連絡できます。問題に気付くように、このコンテンツのコメントを外して記入することをお勧めします。

letsencrypt['contact_emails']=['[email protected]']

ファイルを保存して閉じます。次のコマンドを実行して、Gitlabを再構成します。

sudo gitlab-ctl reconfigure

これにより、GitLabがサーバーに関して検出できる情報で初期化されます。これは完全に自動化されたプロセスであるため、プロンプトに応答する必要はありません。このプロセスでは、ドメインのLet'sEncrypt証明書も構成されます。

ステップ5-Webインターフェイスを介して初期構成を実行します

GitLabの実行とアクセスを許可する場合は、Webインターフェイスを介してアプリケーションの初期構成を実行できます。

最初のログイン

WebブラウザでGitLabサーバーのドメイン名にアクセスします。

https://example.com

初めてアクセスすると、管理者アカウントのパスワードを設定するための最初のプロンプトが表示されます。

最初のパスワードプロンプトで、管理アカウントの安全なパスワードを入力して確認します。終了したら、[**パスワードの変更] **ボタンをクリックします。

従来のGitLabログインページにリダイレクトされます。

ここでは、設定したパスワードでログインできます。資格情報は次のとおりです。

既存のユーザーのフィールドにこれらの値を入力し、[**ログイン] **ボタンをクリックします。アプリケーションにログインしてログインページに入り、アイテムの追加を開始するように求められます。

これで、いくつかの簡単な変更を加えて、GitLabを希望どおりにセットアップできます。

構成ファイルの設定を調整する

クリーンインストール後に最初にすべきことは、プロファイルを改善することです。 GitLabはいくつかの妥当なデフォルト値を選択しましたが、ソフトウェアの使用を開始すると、これらのデフォルト値は通常不適切です。

必要な変更を加えるには、インターフェイスの右上隅にあるユーザーアイコンをクリックします。表示されるドロップダウンメニューで、[設定]を選択します。

設定の「**プロファイル」**セクションに入ります。

名前メールのアドレスを「管理者」と「[[email protected]](https://cloud.tencent.com/developer/article/write?from=10680#mailto:[email protected])」からより正確な名前に調整します。選択した名前は他のユーザーに表示され、電子メールはデフォルトのアバター検出、通知、インターフェイスを介したGit操作などに使用されます。

終了したら、下部にある[**プロファイル設定の更新]ボタンをクリックします。

指定したアドレスに確認メールが送信されます。メールの指示に従ってアカウントを確認し、GitLabの使用を開始できるようにします。

アカウント名を変更する

次に、左側のメニューバーのアカウント項目をクリックします。

ここでは、プライベートAPIトークンを検索したり、2要素認証を構成したりできます。ただし、現在関心のある機能はユーザー名の変更の部分です。

デフォルトでは、最初の管理アカウントの名前は** root **です。これは既知のアカウント名であるため、別の名前に変更する方が安全です。管理者権限は引き続き付与されます。変更されるのは名前だけです。 ** root **をお好みのユーザー名に置き換えます。

[ユーザー名の更新]ボタンをクリックして変更を加えます。

次回GitLabにログインするときは、新しいユーザー名を使用することを忘れないでください。

アカウントにSSHキーを追加します

ほとんどの場合、GitLabプロジェクトと対話するには、GitでSSHキーを使用する必要があります。これを行うには、SSH公開キーをGitLabアカウントに追加する必要があります。

ローカルコンピューターでSSHキーペアを作成した場合は、通常、次のように入力して公開キーを表示できます。

cat ~/.ssh/id_rsa.pub

次のようなテキストの大きなブロックが表示されます。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

このテキストをコピーして、GitLabWebインターフェイスの[プロファイル設定]ページに戻ります。

逆に、次のようなメッセージが表示された場合は、SSHキーペアがコンピューターで構成されていないことを意味します。

cat:/home/sammy/.ssh/id_rsa.pub: No such file or directory

この場合、次のように入力してSSHキーペアを作成できます。

ssh-keygen

デフォルトを受け入れ、キーをローカルで保護するためのパスワードを提供することを選択します。

Generating public/private rsa key pair.
Enter file in which to save the key(/home/sammy/.ssh/id_rsa):
Enter passphrase(empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/home/sammy/.ssh/id_rsa.
Your public key has been saved in/home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:+---[RSA 2048]----+|..%o==B||*.E =.||.++= B  ||         ooo.o .||. S .o  ..||.+...   o||+.o.o ..||       o .++o .||        oo=+|+----[SHA256]-----+

これが完了したら、次のように入力して、上記の公開キーを表示できます。

cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

表示されたテキストブロックをコピーして、GitLabWebインターフェイスの構成ファイル設定に戻ります。

左側のメニューの** SSHキー**項目をクリックします。

ローカルコンピュータからコピーした公開鍵を所定のスペースに貼り付けます。説明的なタイトルを付けて、[追加]ボタンボタンをクリックします。

これで、GitLabアカウントの資格情報を提供しなくても、ローカルコンピューターからGitLabプロジェクトとリポジトリを管理できるようになります。

手順6-公開登録を制限または無効にする(オプション)

GitLabインスタンスのログインページにアクセスすると、誰でもアカウントに登録できることに気付いたかもしれません。公開プロジェクトをホストしたい場合は、これが必要な場合があります。ただし、多くの場合、より制限的な設定が必要です。

まず、ページ上部のメインメニューバーにあるレンチアイコンをクリックして、管理領域に入ります。

次のページで、GitLabインスタンス全体の概要を確認できます。設定を調整するには、左側のメニューの下部にある** [設定]項目をクリックします。

GitLabインスタンスのグローバル設定を入力します。ここでは、新しいユーザーが登録できるかどうかとそのアクセスレベルに影響するいくつかの設定を調整できます。

登録を無効にする

登録を完全に無効にしたい場合(新規ユーザーのアカウントを手動で作成することもできます)、[**登録の制限] **セクションまでスクロールしてください。

登録を有効にするチェックボックスをオフにします。

一番下までスクロールして、[**変更を保存] **ボタンをクリックします。

これで、登録セクションがGitLabログインページから削除されます。

ドメイン制限による登録

ドメインに関連付けられた電子メールアドレスを提供する組織の一部としてGitLabを使用する場合、登録を完全に無効にするのではなく、ドメインごとに制限できます。

[**登録の制限] **セクションで、[**登録時に確認メールを送信する] **ボックスを選択して、ユーザーがメールを確認した後にのみログインできるようにします。

次に、1つまたは複数のドメインを登録用のホワイトリストドメインに1行に1つのドメインで追加します。アスタリスク「*」を使用して、ワイルドカードドメインを指定できます。

一番下までスクロールして、[**変更を保存] **ボタンをクリックします。

これで、登録セクションがGitLabログインページから削除されます。

プロジェクトの作成を制限する

デフォルトでは、新規ユーザーは最大10個のプロジェクトを作成できます。外部からの新しいユーザーの表示と参加を許可したいが、新しいプロジェクトを作成する許可を制限したい場合は、「**アカウントと制限の設定」**セクションでこれを行うことができます。

内部的には、デフォルトのプロジェクト制限を0に変更して、新しいユーザーによるプロジェクトの作成を完全に無効にすることができます。

新しいユーザーは引き続き手動でプロジェクトに追加でき、他のユーザーが作成した内部プロジェクトまたは公開プロジェクトにアクセスできます。

一番下までスクロールして、[**変更を保存] **ボタンをクリックします。

新規ユーザーはアカウントを作成できますが、プロジェクトを作成することはできません。

証明書を暗号化しましょう

デフォルトでは、GitLabのスケジュールされたタスクは、深夜0時から4日ごとにLet's暗号化証明書を更新するように設定されています。正確な分は external_urlに基づいています。これらの設定は、 / etc / gitlab / gitlab.rbファイルで変更できます。たとえば、7日ごとの12:30に更新する場合は、次のように構成できます。

letsencrypt['auto_renew_hour']="12"
letsencrypt['auto_renew_minute']="30"
letsencrypt['auto_renew_day_of_month']="*/7"

/ etc / gitlab / gitlab.rbに他の設定を追加して、自動更新を無効にすることもできます。

letsencrypt['auto_renew']=false

自動更新により、サービスの中断を心配する必要はありません。

結論として ##

これで、動作中のGitLabインスタンスを自分のサーバーでホストする必要があります。新しいプロジェクトのインポートまたは作成を開始し、チームに適切なレベルのアクセスを構成できます。 GitLabは定期的に機能を追加し、プラットフォームを更新します。そのため、プロジェクトのホームページを確認して、改善点や重要な通知を最新の状態に保つようにしてください。

その他のLinuxチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。

参照:「Ubuntu18.04にGitLabをインストールして構成する方法」

Recommended Posts

Ubuntu18.04にGitLabをインストールして構成する方法
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu18.04にGogsをインストールして構成する方法
Ubuntu18.04にCyberpanelをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Ubuntu14.04にOrientDBをインストールして構成する方法
Ubuntu12.04にAppScaleをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
ubuntuはGitLabをインストールして構成します
Ubuntu 16.04 /18.04にPycharmとIpythonをインストールする方法
CentOS7にElasticsearchをインストールして構成する方法
Ubuntu20.04にDockerをインストールして使用する方法
CentOS8にVNCをインストールして構成する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
CentOS8にRedisをインストールして構成する方法
Ubuntu20.04にComposerをインストールして使用する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にOwncloudをインストールして構成する方法
Ubuntu16.04にDockerをインストールして使用する方法
CentOS8にRedmineをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
UbuntuにMySQLをインストールして構成する
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu16.04にPrometheusをインストールする方法