Windows Server上にHyper-Vを使用してGitLabサーバーをセットアップする方法

Windows Server 上に GitLab Self-Managed をセットアップするには、Hyper-V でサポートされている Ubuntu Server 仮想マシンを実行し、Linux ゲスト内に GitLab をインストールします。Windows Server はホストとして機能し、GitLab は公式の Linux パッケージから実行されます。GitLab の現在の Ubuntu パッケージ ガイドには Ubuntu 22.04 と 24.04 が記載されているため、この手順では Ubuntu Server 24.04 LTS を使用します。

開始する前に、ホストがゲストOS用にCPU、RAM、ディスクのリソースを確保できることを確認してください。GitLabのシングルノード構成の基準は、8つのvCPUと16GBのRAMです。アプリケーション用に40GB、データベース用に5~12GB、さらにリポジトリのストレージ容量を確保してください。SSDベースのディスクを使用し、Windows Server用にリソースを残しておきましょう。

1. Hyper-V ロールをインストールします

サーバー マネージャーで、[管理] > [役割と機能の追加]を選択し、ローカル サーバーを選択して、Hyper-Vを有効にします。管理ツールを含め、必要な再起動を許可します。また、管理者として PowerShell を実行し、次のコマンドでローカル ロールをインストールすることもできます。

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Hyper-Vのインストール時にはホストが再起動されます。サーバーが異なる管理設定を使用している場合は、 MicrosoftのHyper-Vインストールガイドを参照してください。

Hyper-Vサーバーの役割を選択した状態で、サーバーマネージャーの役​​割と機能の追加ウィザードを開きます。
サーバーマネージャーでHyper-Vの役割を選択し、管理ツールをインストールします。

2. ゲスト用の仮想スイッチを作成する

Hyper-V マネージャーで、仮想スイッチ マネージャーを開き、ホストの LAN アダプター上に外部スイッチを作成します。Windows で共有するかどうかを選択します。これにより、Ubuntu に LAN アドレスが割り当てられ、承認されたデバイスが GitLab にアクセスできるようになります。信頼できる LAN または VPN を使用し、公開アクセスを行う前にネットワーク ポリシーに従ってください。詳細については、Microsoft の仮想スイッチ ガイドを参照してください。

Hyper-V仮想スイッチマネージャーに、イーサネットアダプタに接続された外部スイッチが表示されています。
外部スイッチによって、UbuntuゲストOSが選択された物理ネットワークに接続されます。

3. Ubuntu仮想マシンを作成する

Ubuntu Server 24.04 LTSをダウンロードします。Hyper-V マネージャーで、という名前の VM を作成しGitLab-Ubuntu、第 2 世代を選択し、外部スイッチを接続して、SSD をバックアップした VHDX を作成します。単一ノードの場合は、GitLab の 8-vCPU/16-GB ベースラインを使用します。ラボは、より小規模でパフォーマンスの低い構成から始めることもできます。

ISOファイルを仮想DVDドライブに接続します。Ubuntuが起動しない場合は、第2世代VMのセキュアブートテンプレートをMicrosoft UEFI証明機関に設定します。

Hyper-V 新規仮想マシンウィザードによる第2世代Ubuntu Server仮想マシンの概要
このサンプル第2世代VMは、GitLabが公開しているCPUとメモリの基準値に基づいています。アプリケーション、データベース、リポジトリの拡張に合わせて、拡張可能なディスクのサイズを設定してください。
Ubuntu ServerのインストールISOイメージが仮想DVDドライブに接続されたHyper-V VM設定ウィンドウ
Ubuntu ServerのISOイメージをここにマウントし、ネットワークアダプタの設定で外部スイッチを確認してください。

4. Ubuntuをインストールし、安定したアドレスを割り当てます。

VMを起動し、Ubuntu Serverインストーラーを完了します。管理者アカウントを作成し、ホスト名として などを使用しgitlab、リモート管理用にOpenSSHを有効にします。VMに静的IPアドレスまたはDHCP予約を設定して、アドレスが安定するようにします。

Ubuntu Serverインストーラーのネットワークとホスト名の画面(イーサネットインターフェースとホスト名gitlab)
Ubuntuのインストール時に、仮想マシンのホスト名を設定し、安定したネットワーク構成を選択してください。

初回ログイン後、利用可能なアップデートをインストールし、指示が​​あれば再起動してください。

sudo apt update && sudo apt upgrade -y
Ubuntu Serverのターミナルにパッケージの更新情報とゲストネットワークアドレスが表示されている。
GitLabをインストールする前に、Ubuntuをアップデートし、ゲストOSがネットワークアドレスにアクセス可能であることを確認してください。

5. DNSを設定し、必要なトラフィックのみを許可する。

gitlab.example.comVMの安定したアドレスに解決されるようなDNSレコードを作成します。Git over SSH用にTCPポート22 、HTTPおよびLet's Encrypt証明書の検証用にポート80、 HTTPS用にポート443の受信を許可します。Ubuntuのファイアウォール、Windows/ネットワークファイアウォール、およびホストの前にあるルーターまたはクラウドファイアウォールで、一致するルールを適用します。可能な限り、SSHおよびWebアクセスを意図したユーザーまたはネットワークに制限します。

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

6. GitLab Linuxパッケージをインストールする

これらのコマンドは、Community Edition パッケージをインストールします。例のホスト名を、設定済みの DNS 名に置き換えてください。Enterprise Edition の場合は、GitLab の公式Ubuntu インストールガイドにある EE オプションを使用してください。リポジトリ設定スクリプトを管理者として実行する前に、内容を確認してください。

sudo apt update
sudo apt install -y curl
curl --location "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce

有効なパブリックDNS名とHTTPインバウンドアクセスがあれば、GitLabはインストール時にLet's Encrypt証明書を要求できます。内部専用サーバーの場合は、組織が信頼する証明書を設定し、GitLabの最新のTLS設定手順に従ってください。本番環境のVMのサイズを決定する前に、GitLabのインストール要件を確認してください。

7. サインインしてインスタンスを保護し、リポジトリをテストします。

インストールが完了したら、を開きますhttps://gitlab.example.com。としてサインインしroot、Ubuntu VM上のから初期パスワードを取得します/etc/gitlab/initial_root_password。GitLabはこのファイルを24時間後に削除するため、すぐにパスワードを変更し、新しい認証情報を安全に保管してください。

ブラウザで、ユーザー名とパスワードの入力欄が空欄のGitLabサインインページ(HTTPS経由)を開く。
設定済みのHTTPSホスト名を使用して、GitLabのサインインページにアクセスしてください。

テストプロジェクトを作成し、READMEを追加して、クライアントマシンからHTTPSまたはSSH経由でクローンし、DNS、ファイアウォールルール、認証が正しく機能することを確認します。チームを招待する前に、GitLabの推奨する次のステップを確認し、2要素認証を有効にし、インスタンスがプライベートの場合は公開サインアップを制限します。スケジュールされたバックアップを設定し、VMからコピーします。GitLabのバックアップガイドには、バックアップコマンドに含まれる内容と、別途バックアップする必要がある内容が説明されています。

GitLabプロジェクトのリポジトリページ。クローンメニューにはHTTPSとSSHの接続オプションが表示されます。
プロジェクトのクローンメニューを使用して、チームが使用するHTTPSまたはSSHルートを確認してください。

WindowsとUbuntuのパッチを常に最新の状態に保ち、ディスク容量の増加を監視し、重要なリポジトリをインスタンスに保存する前にバックアップからの復元をテストしてください。

(24) コメント

  1. Hiroshi Tech -

    これからも更新していくつもりなら、GitLabの最新バージョンについても書いてくださいね

  2. 明子 -

    ハードウェアの要件についても詳しく書いてもらえると嬉しいです。その点も知りたいです

  3. たくや -

    Linuxでの構築と比較して、Windowsの利点と欠点についても教えてほしいな

  4. 高橋 あかね -

    特にサーバーのパフォーマンスの最適化について詳しい説明があったのが良かったです。

  5. あかり -

    Windows Serverを使ってGitLabを動かしたいと思っていたけど、この記事を見つけてとても助かりました

  6. 尚子 -

    友達にもこのウェブサイトを教えてあげます。本当に役立ちました

  7. なお -

    このガイドがなかったら、もっと手こずっていただろうな。ありがたい

  8. 佐藤 雅紀 -

    このチュートリアルがとても役に立ちました!GitLabサーバーのセットアップが簡単になりました

  9. 飼い猫のタマ -

    お、思ったより簡単にできた。GitLab、これからも使い続けるぞ

  10. 加藤 直樹 -

    初心者でもわかりやすい解説ですね!私も試してみます

  11. ゆうた -

    ありがとうございます!これで仕事が楽になります。GitLab、頑張ります

  12. はなこ -

    現在、GitLabの導入を検討中ですが、この記事を参考にさせていただきます

  13. カズオ -

    ここまで丁寧に説明してくれるとは思いませんでした。感謝です

  14. おかしなエンジニア -

    すごい!GitLabでプロジェクト管理が楽になりそうです。皆さんも使っていますか

  15. 田中 明 -

    GitLabは便利ですが、セキュリティ設定にも気を付けないといけませんね。皆さん、どうしていますか

  16. りょうた -

    これ、プラグインの設定も含めて具体的に説明してほしいです。特にお勧めのプラグインがあれば教えてください

  17. Miko 2023 -

    セッティングが完了しました!素晴らしいガイドをありがとう!

  18. 翔太 -

    おお、GitLabサーバーの設定方法、これでやり方がわかった!感謝!

  19. かなえ -

    無事にセットアップできたけど、メール通知がうまくいかない。この点について手助けしてもらえたら嬉しいです。

  20. 林 誠 -

    この記事を見てから色々試した結果、かなりスムーズにGitLabが動作するようになりました。信じられない!

  21. Mako 6789 -

    記事を読みながら一緒に設定して、無事にサーバーが立ち上がりました!嬉しい!

  22. 優子 -

    GitLabは本当に便利です!これからも愛用します。この情報を広めたいです。

  23. さくら -

    成功したので、記念にGitLabのロゴを作ろうと思います!いいアイデアだと思います!

  24. けんじ -

    サポートが必要な方がいれば、私も手伝いますよ!一緒にやりましょう

コメントを残す

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcher Studioを使えば、写真を絵画、鉛筆画、漫画に変換できます。エフェクトの選択方法、プレビューの調整方法、作品の保存方法を学びましょう。

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別子がビットレート、エンコーダー、タグについて何を明らかにするのか、従来のワークフローがどのように機能するのか、そして現在利用可能なツールの中で、ファイルの検査や楽曲の識別に使えるものはどれなのかを学びましょう。

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Indexは、ローカル画像のタグ付け、評価、閲覧を行うための、Windows向けの旧来の写真カタログツールです。その機能、互換性の制限、および現在もサポートされている代替ツールについてご確認ください。

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用して、Windowsファイルの属性とタイムスタンプを編集したり、JPEG EXIF写真の日付を更新したり、バッチ変更を安全にプレビューしたりする方法を学びましょう。

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10の各モニターに個別の壁紙を設定し、ディスプレイを識別し、画像のフィットを調整し、モニターの選択肢が見つからない場合のトラブルシューティングを行います。

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewerの機能、写真モードとコミックモードの仕組み、ダウンロードすべきWindows版、そして旧バージョンと改訂版の違いについて学びましょう。

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloaderプロジェクトの作成方法、クロール範囲の選択方法、画像フィルタと保存先の設定方法、バッチダウンロードの確認方法を学びましょう。

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7または8用のスライドショーを設定し、簡単なVBScriptショートカットを作成して、キーボードショートカットキーを割り当てて次の壁紙に進めるようにします。

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvertを使えば、エフェクトの適用、写真のリサイズ、画像フォーマットの一括変換が可能です。出力設定の選択、編集内容のプレビュー、オリジナル画像の保護も行えます。

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeAppを使って、インストール済みのWindowsアプリケーションを別のPCに移行しましょう。TAPパッケージの仕組み、設定の取得方法、転送できない可能性のある項目について学びます。