Microsoft AzureへのGitLabインストール

Microsoft Azureビジネスクラウドのユーザーのために、GitLabはAzure Marketplaceで設定済みのオファーを提供しています。このチュートリアルでは、GitLab Enterprise Editionを単一のVirtual Machine(VM)にインストールする方法を説明します。

前提条件

Azure のアカウントが必要です。以下の方法でアカウントを取得してください:

  • あなたやあなたの会社がすでにサブスクリプションのアカウントを持っている場合は、そのアカウントを使用してください。そうでない場合は、独自のAzureアカウントを無料で開設できます。Azureの無料トライアルは、30日間Azureを探索するための200ドルのクレジットを提供します。詳しくは、Azureの包括的なFAQをご覧ください。
  • MSDNサブスクリプションをお持ちの場合は、Azureサブスクライバー特典を有効にできます。MSDNサブスクリプションは、毎月定期的にAzureクレジットを提供しますので、そのクレジットを使ってGitLabを試すことができます。

GitLabのデプロイと設定

GitLabはすでに設定済みのイメージにインストールされているので、あとは新しいVMを作成するだけです:

  1. マーケットプレイスのGitLabをご覧ください。
  2. Get it nowを選択すると、Create this app in Azureウィンドウが開きます。Continue を選択します。
  3. Azure ポータルから次のいずれかのオプションを選択します:
    • ゼロからVMを作成するには、Createを選択します。
    • Start with a pre-set configurationを選択すると、事前に設定されたオプションで開始できます。これらの設定はいつでも変更できます。

このガイドでは、ゼロからVMを作成することにします。

note
Azureは、無料トライアルクレジットを使用している場合でも、VMがアクティビティ(「割り当て」と呼ばれる)しているときは常に計算料金が発生することに注意してください。リソースのコストについては、Azure価格計算を参照してください。

仮想マシンを作成したら、次のセクションの情報を使用して設定します。

基本] タブの設定

最初に設定する必要があるのは、基盤となる仮想マシンの基本設定です:

  1. サブスクリプションモデルとリソースグループを選択します(存在しない場合は新規作成します)。
  2. VM の名前を入力します(例:GitLab)。
  3. リージョンを選択します。
  4. 可用性オプションで可用性ゾーンを選択し、1に設定します。可用性ゾーンの詳細については、こちらをご覧ください。
  5. 選択したイメージがGitLab - Gen1 に設定されていることを確認します。
  6. ハードウェア要件に基づいてVMサイズを選択します。500ユーザーまでのGitLab環境を実行するための最小システム要件はD4s_v3 サイズでカバーされているため、そのオプションを選択します。
  7. 認証タイプをSSH公開キーに設定します。
  8. ユーザー名を入力するか、自動的に作成されるユーザー名のままにします。これは、Azure が SSH 経由で VM に接続する際に使用するユーザーです。デフォルトでは、ユーザーはrootアクセス権を持っています。
  9. 独自のSSHキーを提供するか、Azureに作成させるかを決定します。SSH公開キーの設定方法の詳細については、SSHを参照してください。

入力した設定をレビューし、[ディスク]タブに進みます。

ディスク]タブの設定

ディスクに対して

  1. OS ディスクのタイプは、Premium SSD を選択します。
  2. デフォルトの暗号化を選択します。

Azureが提供するディスクの種類については、こちらをご覧ください。

設定をレビューし、[Networking] タブに進みます。

ネットワーク]タブの設定

このタブを使用して、ネットワーク インターフェイス カード(NIC) の設定を構成して、仮想マシンのネットワーク接続を定義します。デフォルト設定のままにしておくこともできます。

Azureはデフォルトでセキュリティグループを作成し、VMはそれに割り当てられます。マーケットプレイスのGitLabイメージは、デフォルトで以下のポートを開いています:

ポート説明
80VM が HTTP リクエストに応答できるようにし、公開アクセスを許可します。
443VMがHTTPSリクエストに応答し、公開アクセスを許可するようにします。
22VMがSSH接続要求に応答し、リモート端末セッションへの公開アクセス(認証付き)を許可するようにします。

ポートを変更したり、ルールを追加したい場合は、VMを作成した後、VMのダッシュボードで左サイドバーのNetworking settingsを選択します。

管理タブの設定

このタブを使用して、VM の監視および管理オプションを設定します。デフォルト設定を変更する必要はありません。

詳細設定タブの設定

このタブを使用して、仮想マシンの拡張機能またはcloud-init を使用して、追加の設定、エージェント、スクリプト、またはアプリケーションを追加します。 デフォルトの設定を変更する必要はありません。

タグ] タブの設定

このタブを使用して、リソースを分類するための名前/値のペアを追加します。デフォルトの設定を変更する必要はありません。

VMのレビューと作成

最後のタブでは、選択したすべてのオプションが表示され、前のステップで選択した内容をレビューしたり変更したりできます。Azureはバックグラウンドで検証テストを実行し、必要な設定がすべて提供されていれば、VMを作成できます。

Createを選択した後、AzureがSSHキーペアを作成することを選択した場合、SSH秘密鍵をダウンロードするプロンプトが表示されます。VMにSSH接続するために必要なので、キーをダウンロードします。

キーをダウンロードすると、デプロイが始まります。

デプロイ完了

この時点で、Azure は新しい VM のデプロイを開始します。デプロイプロセスの完了には数分かかります。完了すると、新しい VM と関連リソースが Azure ダッシュボードに表示されます。VM のダッシュボードを表示するには、Go to resourceを選択します。

これで GitLab はデプロイされ、すぐに使えるようになりました。しかし、その前にドメイン名を設定し、GitLabがそれを使うように設定する必要があります。

ドメイン名の設定

VMには公開IPアドレス(デフォルトでは静的)がありますが、AzureではVMに説明的なDNS名を割り当てることができます:

  1. VMダッシュボードから、DNS名の下にあるConfigureを選択します。
  2. DNS name label] フィールドに、インスタンスのわかりやすい DNS 名を入力します(例:gitlab-prod )。こ れに よ り 、 VM はgitlab-prod.eastus.cloudapp.azure.comからアクセスできるようになります。
  3. Save を選択します。

最終的には、ほとんどのユーザーは自分のドメイン名を使用したいと思います。これを行うには、ドメインレジストラでAzure VMの公開IPアドレスを指すDNSA レコードを追加する必要があります。AzureのDNSまたは他のレジストラを使用できます。

GitLabの外部URLを変更します。

GitLabは設定ファイルでexternal_url 、ドメイン名を設定します。これを設定しないと、Azureのフレンドリーネームにアクセスしたとき、ブラウザは公開IPにリダイレクトします。

GitLabの外部URLを設定するには:

  1. VMのダッシュボードからSettings > Connectと進み、指示に従ってSSHでGitLabに接続します。VMを作成したときに指定したユーザ名とSSHキーでサインインすることを忘れないでください。Azure VMドメイン名は以前に設定したものです。VMにドメイン名を設定していない場合は、IPアドレスを代わりに使用できます。

    この例の場合

    ssh -i <private key path> gitlab-azure@gitlab-prod.eastus.cloudapp.azure.com
    
    note
    認証情報をリセットする必要がある場合は、Azure VM上のユーザーのSSH認証情報をリセットする方法をお読みください。
  2. エディタで/etc/gitlab/gitlab.rb を開きます。
  3. external_url を検索し、独自のドメイン名に置き換えます。この例では、Azureが設定するデフォルトのドメイン名を使用します。URL にhttps を使用すると、Let’s Encrypt が自動的に有効になり、デフォルトで HTTPS が設定されます:

    external_url 'https://gitlab-prod.eastus.cloudapp.azure.com'
    
  4. GitLabが間違った証明書を拾わないように、以下の設定を見つけてコメントアウトしてください:

    # nginx['redirect_http_to_https'] = true
    # nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
    # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
    
  5. 変更を有効にするためにGitLabを再設定します。/etc/gitlab/gitlab.rb に変更を加えるたびに、以下のコマンドを実行してください:

    sudo gitlab-ctl reconfigure
    
  6. 再起動後にドメイン名がリセットされないようにするには、Bitnamiが使用するユーティリティの名前を変更します:

    sudo mv /opt/bitnami/apps/gitlab/bnconfig /opt/bitnami/apps/gitlab/bnconfig.bak
    

新しい外部URLからブラウザでGitLabにアクセスできるようになりました。

初めてGitLabにアクセスする場合

新しい GitLab インスタンスにブラウザでアクセスするには、先ほど設定したドメイン名を使います。この例では、https://gitlab-prod.eastus.cloudapp.azure.com

最初に表示されるのはサインインページです。GitLab はデフォルトで管理者ユーザーを作成します。認証情報は

  • ユーザー名root
  • パスワード:パスワードは自動的に作成されます。

サインイン後、すぐにパスワードを変更してください。

GitLab インスタンスのメンテナー

GitLab環境を最新の状態に保つことは重要です。GitLabチームは常に機能拡張を行っており、時にはセキュリティ上の理由からアップデートが必要になることもあります。GitLabのアップデートが必要なときはいつでも、このセクションの情報を使ってください。

現在のバージョンの確認

現在起動している GitLab のバージョンを確認します:

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. 左サイドバーで「概要」>「ダッシュボード」を選択します。
  4. コンポーネント]テーブルの下にあるバージョンを検索します。

GitLabの新しいバージョンに1つ以上のセキュリティフィックスが含まれている場合、GitLabはアップデートを促すUpdate asapnotificationメッセージを表示します。

GitLabのアップデート

GitLabを最新版にアップデートするには:

  1. SSHでVMに接続します。
  2. GitLab を更新します:

    sudo apt update
    sudo apt install gitlab-ee
    

    このコマンドはGitLabとその関連コンポーネントを最新バージョンにアップデートします。この間、ターミナルには様々な更新タスクが完了したことが表示されます。

    note
    E: The repository 'https://packages.gitlab.com/gitlab/gitlab-ee/debian buster InRelease' is not signed.のようなエラーが表示された場合は、トラブルシューティングのセクションをご覧ください。
  3. アップデートが完了すると、次のようなメッセージが表示されます:

    Upgrade complete! If your GitLab server is misbehaving try running
       
       sudo gitlab-ctl restart
       
    before anything else.
    

ブラウザでGitLabインスタンスを更新し、管理エリアに移動してください。これでGitLabインスタンスが最新の状態になるはずです。

次のステップとさらなる設定

GitLab インスタンスが機能するようになったので、次のステップに従って新しいインストールでできることを増やしていきましょう。

トラブルシューティング

このセクションでは、よく遭遇するエラーについて説明します。

GitLab リポジトリの GPG 鍵を更新します。

note
これはGitLabイメージが新しいGPGキーで更新されるまでの一時的な修正です。

Azureで設定済みのGitLabイメージ(Bitnamiが提供)は、2020年4月に廃止されたGPGキーを使用しています。

リポジトリを更新しようとすると、システムは以下のエラーを返します:

[   21.023494] apt-setup[1198]: W: GPG error: https://packages.gitlab.com/gitlab/gitlab-ee/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3F01618A51312F3F
[   21.024033] apt-setup[1198]: E: The repository 'https://packages.gitlab.com/gitlab/gitlab-ee/debian buster InRelease' is not signed.

この問題を解決するには、新しいGPGキーを取得してください:

sudo apt install gpg-agent
curl "https://gitlab-org.gitlab.io/omnibus-gitlab/gitlab_new_gpg.key" \
     --output /tmp/omnibus_gitlab_gpg.key
sudo apt-key add /tmp/omnibus_gitlab_gpg.key

これでGitLab をアップデートできます。詳しくは、パッケージの署名についてをご覧ください。