DUICUO

UbuntuにGitLabをインストールする方法

GitLabは、リポジトリ、課題、CI/CDパイプラインなどを管理するための強力で機能豊富なソリューションを提供するオープンソースプラットフォームです。Ubuntu 22.04または20.04をご利用で、DevOpsワークフローを効率化するために独自のGitLabインスタンスをセットアップしたいとお考えなら、まさにうってつけの場所です。

このステップバイステップガイドでは、Ubuntu 22.04または20.04へのGitLabのインストール手順を詳しく説明します。GitLabは、Enterprise Edition(GitLab EE)とCommunity Edition(GitLab CE)を提供しています。この記事では、Community Editionについて説明します。

前提条件:

  • SSH アクセスを備えた Ubuntu 22.04 または 20.04 を実行する仮想サーバーまたはプライベート サーバー。
  • 静的ホスト名 ( gitlab.linuxtechi.net )
  • 管理者権限を持つsudoユーザー
  • 2GB以上のメモリ
  • 2つ以上のvCPU
  • インターネット接続

1. システムパッケージを更新する

まずパッケージ リストを更新し、既存のパッケージを最新バージョンにアップグレードしましょう。

 $ sudo apt update $ sudo apt upgrade -y

アプリケーションの更新後、システムを再起動します。

 $ sudo reboot

2. 依存関係をインストールする

GitLabが正常に機能するには、いくつかの依存関係が必要です。以下のコマンドでインストールしてください。

 $ sudo apt install -y curl openssh-server ca-certificates postfix

Postfixのインストール中に設定ウィンドウが表示されます。「インターネットサイト」を選択し、メールサーバー名としてサーバーのホスト名を入力してください。これにより、GitLabからメール通知が送信できるようになります。

「インターネットサイト」を選択し、「OK」を選択します。

システムのホスト名を確認し、「OK」を選択します。

3. GitLab Aptリポジトリを追加する

それでは、GitLabリポジトリを追加します。以下のcurlコマンドを実行してください。Ubuntuのバージョンが自動的に検出され、それに応じてリポジトリが設定されます。

 $ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

4. GitLabをインストールする

次のコマンドを実行して、Ubuntu システムに GitLab CE を自動的にインストールして構成し、サーバーのホスト名を設定に置き換えます。

 $ sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce

上記のコマンドが正常に実行されると、次の出力が得られます。

上記の出力は、GitLabが正常にインストールされたことを示しています。GitLabのWebインターフェースのユーザー名はrootで、パスワードは/etc/gitlab/initial_root_passwordに保存されています。

注意: Ubuntu システムでオペレーティング システムのファイアウォールが有効になっている場合は、ポート 80 と 443 を許可してください。

 $ sudo ufw allow http $ sudo ufw allow https

5. GitLabのWebインターフェースにアクセスする

GitLab をインストールして設定したら、Web ブラウザを開き、サーバーの IP アドレスまたはホスト名を入力します。

 http://<Server-IP-Address-or-Hostname>
  • ユーザー名: root
  • パスワード: /etc/gitlab/initial_root_passwordからパスワードを取得します。

「サインイン」をクリックします。

素晴らしい。上記により、GitLab Web インターフェースに正常にログインできたことが確認できました。

GitLabサーバーは現在、HTTP (80)プロトコルで動作しています。GitLabでHTTPSを有効にするには、以下の手順をご覧ください。

6. GitLabウェブインターフェースのHTTPSを設定する

セキュリティを強化するために、自己署名証明書またはLet's Encryptを使用してGitLabインスタンスにHTTPSを設定できます。Let's Encryptは、インターネット上のAレコードを持つパブリックドメインでのみ機能します。ただし、この例ではプライベートドメインを使用しているため、GitLabを保護するために自己署名証明書を使用します。

次に、次のフォルダーを作成し、 opensslコマンドを使用して自己署名証明書を生成します。

 $ sudo mkdir -p /etc/gitlab/ssl $ sudo chmod 755 /etc/gitlab/ssl

秘密鍵を生成するには、次のopensslコマンドを使用します。

 $ sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key 2048

パスワードを入力して覚えておいてください。

CSR を作成するには、次のコマンドを使用します。

 $ sudo openssl req -new -key /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.csr

キーからパスワード文字列を削除するには、次のコマンドを順番に実行します。

 $ sudo cp -v /etc/gitlab/ssl/gitlab.linuxtechi.net.{key,original} $ sudo openssl rsa -in /etc/gitlab/ssl/gitlab.linuxtechi.net.original -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key $ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.original

証明書ファイルを作成します。

 $ sudo openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitlab.linuxtechi.net.csr -signkey /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.crt

CSR ファイルを削除するには、次のrmコマンドを使用します。

 $ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.csr

キーファイルと証明書ファイルの権限を設定します。

 $ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.key $ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.crt

GitLab サーバーのすべての重要な構成はファイル/etc/gitlab/gitlab.rbによって制御されるため、このファイルを編集し、 external_urlを検索してhttps://gitlab.linuxtechi.netを追加します。

 $ sudo vi /etc/gitlab/gitlab.rb ---------------------------------------------------------- external_url 'https://gitlab.linuxtechi.net' ----------------------------------------------------------

ファイルを保存して終了し、次のコマンドを使用して GitLab を再構成し、Web インターフェースで HTTPS を使用できるようにします。

 $ sudo gitlab-ctl reconfigure

上記のコマンドが正常に実行されると、GitLabインターフェースにHTTPS経由でアクセスできるようになります。私の例では、URLはhttps://gitlab.linuxtechi.net/です。

初めてアクセスすると、接続が安全ではないというメッセージが表示されます。「リスクを承知で続行」をクリックしてください。

結論は

おめでとうございます!Ubuntu 22.04または20.04システムにGitLabをインストールできました。GitLabを起動すれば、リポジトリの作成、チームとの共同作業、そしてGitLabの優れた機能を活用して開発ワークフローを強化できます。シームレスなバージョン管理、継続的インテグレーションなど、すべてを自分の手でコントロールできます。