前書き
[ GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce)またはCommunity Editionは、主にGitリポジトリおよび問題追跡などの他の開発関連機能をホストするために使用されるオープンソースアプリケーションです。これは、ホスティングに独自のインフラストラクチャを使用し、開発チームに内部リポジトリを展開する柔軟性、ユーザーと対話するためのパブリックな方法、または貢献者に独自のプロジェクトをホストする方法を提供するように設計されています。
GitLabプロジェクトは、単純なインストールメカニズムを使用して、独自のハードウェア上にGitLabインスタンスをセットアップします。このガイドでは、Ubuntu18.04サーバーにGitLabをインストールして構成する方法を紹介します。
このチュートリアルでは、次のものが必要になります。
sudo
コマンドを使用できる非rootアカウントを持つUbuntu サーバー、およびファイアウォールがオンになっています。サーバーをお持ちでない方は[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs?from=10680)を使って実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。[リリースされたGitLabハードウェア要件](http://docs.gitlab.com/ce/install/requirements.html#hardware-requirements)は、サーバーの使用を推奨しています。
一部のスワップスペースを置き換えることでRAMを取得できますが、お勧めしません。このガイドでは、少なくとも上記のリソースがあることを前提としています。
GitLabを自分でインストールする前に、インストールプロセス中に引き続き使用するソフトウェアをインストールすることが非常に重要です。幸い、必要なすべてのソフトウェアは、Ubuntuのデフォルトのパッケージリポジトリから簡単にインストールできます。
このセッションで apt
を使用するのはこれが初めてなので、ローカルパッケージインデックスを更新してから、次のように入力して依存関係をインストールできます。
sudo apt update
sudo apt install ca-certificates curl openssh-server postfix
このソフトウェアの一部はすでにインストールされている可能性があります。 postfix
のインストールについては、プロンプトが表示されたら「**インターネットサイト」**を選択してください。次の画面で、サーバーのドメイン名を入力して、システムがメールを送信する方法を構成します。
依存関係が整ったので、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
これにより、必要なコンポーネントがシステムにインストールされます。
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インターフェイスにアクセスできることを示しています。
アプリケーションを使用する前に、構成ファイルを更新して、再構成コマンドを実行する必要があります。まず、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証明書も構成されます。
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にログインするときは、新しいユーザー名を使用することを忘れないでください。
ほとんどの場合、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プロジェクトとリポジトリを管理できるようになります。
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