Skip to main content

Hyper-V で GitHub Enterprise Server をインストールする

GitHub Enterprise Server を Hyper-V にインストールするには、Windows Server 2008 から Windows Server 2022 までを実行しているマシンにデプロイする必要があります。

前提条件

  • GitHub Enterpriseのライセンスファイルを持っていなければなりません。 詳細については、「GitHub Enterprise Server のトライアルを設定する」および「GitHub Enterpriseのライセンスについて」を参照してください。
  • Hyper-V をサポートしている Windows Server 2008 から Windows Server 2022 までを所有している必要があります。
  • 仮想マシン (VM) の作成に必要なほとんどのアクションは、Hyper-V マネージャーを使用して実行することもできます。 とはいえ、初期セットアップのためにはWindows PowerShellコマンドラインシェルを使うことをおすすめします。 以下の例ではPowerShellを使っています。 詳細については、Windows PowerShell の概要に関する Microsoft ガイドを参照してください。

ハードウェアに関する考慮事項

最小推奨要件

お使いの GitHub Enterprise Server インスタンスのユーザー ライセンス数に応じた様々なハードウェア構成をおすすめします。 最小推奨要件以上のリソースを提供すれば、インスタンスのパフォーマンスとスケーラビリティは向上します。

ユーザー ライセンスx86-64 vCPUsメモリルート ストレージアタッチされた (データ) ストレージ
トライアル、デモ、あるいは10人の軽量ユーザ432 GB200 GB150 GB
10-3000848 GB200 GB300 GB
3000-50001264 GB200 GB500 GB
5000-80001696 GB200 GB750 GB
8000-10000+20160 GB200 GB1000 GB

インスタンスのユーザーに対して GitHub Actions または GitHub Advanced Security を有効にする予定の場合は、さらに多くのリソースが必要です。

  • GitHub Actions - CPU とメモリの両方を 25% 以上増やします
  • GitHub Advanced Security - CPU とメモリの両方を 25% 以上増やします

これらの調整は、各ユーザー層の基本要件に適用する必要があります。 さらに増やす必要があるかもしれないので、リソースに対するすべての変更を監視することをお勧めします。

これらの要件について詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」をご覧ください。

インスタンスのユーザーに対して Container registry を有効にする予定の場合は、さらに多くのリソースが必要です。 これらの要件について詳しくは、「Enterprise 向けの GitHub Packages を使い始める」をご覧ください。

既存インスタンスのリソース調整の詳細については、「ストレージ容量の増加」と「CPUあるいはメモリリソースの増加」を参照してください。

ストレージ

GitHub Enterprise Serverには、高い秒あたりの入出力操作(IOPS)と低いレイテンシを持つ高性能なSSDをおすすめします。 ワークロードはI/O集中的です。 ベアメタルのハイパーバイザを使用するなら、直接アタッチされたディスクか、ストレージエリアネットワーク(SAN)からのディスクを利用することをおすすめします。

インスタンスには、ルートディスクとは別の永続化用のデータディスクが必要です。 詳しくは、「システムの概要」を参照してください。

Warning

ルート ストレージとは、インスタンスのルート ディスクの合計サイズを指します。 インスタンスが起動すると、ルート ファイルシステムで 100 GB は、ルート ファイルシステムで使用できます。 残りの 100 GB はアップグレード用に予約されています。 詳しくは、「システムの概要」を参照してください。

GitHub Actions を構成するには、外部 BLOB ストレージを指定する必要があります。 詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」を参照してください。

ルート ファイルシステム上の使用可能な領域は、ディスクの合計サイズの 50% です。 新しいインスタンスを構築するか、既存のインスタンスを利用して、インスタンスのルートディスクのサイズを変更できます。 詳細については、「システムの概要」および「ストレージ容量の増加」を参照してください。

CPU とメモリ

GitHub Enterprise Serverが必要とするCPU及びメモリリソースは、ユーザ、自動化、インテグレーションのアクティビティのレベルによります。

お使いの GitHub Enterprise Server インスタンス用にプロビジョニングしたすべての VM では、x86-64 CPU アーキテクチャを使う必要があります。 AArch64 や arm64 など、他のアーキテクチャはサポートされていません。

GitHub Enterprise Server インスタンスのユーザーに対して GitHub Actions を有効にする予定の場合は、インスタンスに追加の CPU とメモリ リソースをプロビジョニングする必要がある場合があります。 詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」を参照してください。

CPU リソースを増やす場合、GitHub は、インスタンスにプロビジョニングする各 vCPU ごとに少なくとも6.5GBのメモリを追加する(最大16vCPUまで)ことをおすすめします。 16以上のvCPUを使う場合は、各vCPUごとに6.5GBのメモリを追加する必要はありませんが、インスタンスが十分なメモリを持っているかをモニターするべきです。

Warning

GitHub Enterprise Server でのアクティビティを外部システムに通知する Webhook イベントを構成することをおすすめします。 変更の自動チェックまたは ポーリング は、インスタンスのパフォーマンスとスケーラビリティに悪影響を与えます。 詳しくは、「webhook について」を参照してください。

GitHub Enterprise Server の容量とパフォーマンスの監視について詳しくは、「インスタンスを監視する」をご覧ください。

インスタンスのCPUあるいはメモリリソースは増やすことができます。 詳しくは、「CPUあるいはメモリリソースの増加」を参照してください。

VMotion を使用する必要がありますか?

VMotion は一般的なリソース管理には非常に役立ちますが、ゲスト インスタンスへの影響は大きくなる可能性があります。 より大きな GitHub Enterprise Server インスタンス (8 CPU/64 GB RAM 以上) では、VMotion イベントにより、CPU、RAM、ストレージ IOPS が大幅に削減されるため、エンド ユーザーに対する GitHub Enterprise Server が完全に停止する可能性があります。 この点を考慮すると、GitHub Enterprise Server は "待機時間が非常に影響を受けやすい" アプリケーションであると考える必要があります。

分散リソース スケジューラ (DRS) が有効な VMware 上の大規模な配置の場合は、GitHub Enterprise Server の VM とホスト間のアフィニティ規則を構成し、仮想アプライアンスを単一ホスト上に維持することをお勧めします。 VMotion を使用した移行が必要な場合は、これを "計画的な停止" と見なし、移行が完了するまで GitHub Enterprise Server をメンテナンス モードにすることをお勧めします。

また、ESXi 電源管理設定を [High Performance] に構成することもお勧めします。 これを [Balanced] のままにすると、システム全体のパフォーマンスに悪影響が及ぶケースがあることが確認されています。

GitHub Enterprise Server イメージをダウンロードする

  1. ライセンスをダウンロードします。 詳しくは、「GitHub Enterpriseのライセンスのダウンロード」を参照してください。

  2. 新しいインスタンスに使用するイメージに移動します。

    • [リリース ノート]に移動します。
    • 右側のサイドバーで、ダウンロードするバージョンをクリックします。
    • [GitHub Enterprise Server X.X.X のダウンロード] をクリックします。
  3. [GitHub オンプレミス] で、[ハイパーバイザーの選択] ドロップダウン メニューを選び、 [Hyper-V (VHD)] をクリックします。

  4. [Hyper-V (VHD) のダウンロード] をクリックします。

GitHub Enterprise Server インスタンスを作成する

インスタンスを作成するには、GitHub Enterprise Server のイメージを仮想マシンにインポートし、インスタンスのデータ用に追加のストレージボリュームをアタッチしなければなりません。 詳細については、「ハードウェアに関する考慮事項」を参照してください。

  1. PowerShell で、新しい第1世代の仮想マシンを作成し、ユーザライセンス数に基づいてサイズを設定し、ダウンロードしたGitHub Enterprise Serverイメージをアタッチします。 詳細については、Microsoft のドキュメントの「New-VM」を参照してください。

    PS C:\> New-VM -Generation 1 -Name VM_NAME -MemoryStartupBytes MEMORY_SIZE -BootDevice VHD -VHDPath PATH_TO_VHD  
    
  2. インスタンスデータ用にアタッチされるストレージボリュームとして使うための新しい仮想ディスクを作成し、サイズをユーザライセンス数に基づいて設定してください。 既存のディスクを再利用する場合は、ディスクが空であり、パーティションが存在しないことを確認してください。 PATH_TO_DATA_DISK をディスクを作成した場所へのパスに置き換えます。 詳細については、Microsoft のドキュメントの「New-VHD」を参照してください。

    PS C:\> New-VHD -Path PATH_TO_DATA_DISK -SizeBytes DISK_SIZE
    
  3. データディスクをインスタンスにアタッチします。 詳細については、Microsoft のドキュメントの「Add-VMHardDiskDrive」を参照してください。

    PS C:\> Add-VMHardDiskDrive -VMName VM_NAME -Path PATH_TO_DATA_DISK
    
  4. VM を起動します。 詳細については、Microsoft のドキュメントの「Start-VM」を参照してください。

    PS C:\> Start-VM -Name VM_NAME
    
  5. VM の IP アドレスを入手します。 詳細については、Microsoft のドキュメントの「Get-VMNetworkAdapter」を参照してください。

    PS C:\> (Get-VMNetworkAdapter -VMName VM_NAME).IpAddresses
    
  6. VM の IP アドレスをコピーし、Web ブラウザに貼り付けます。

GitHub Enterprise Server インスタンスを設定する

インスタンスを構成するには、ライセンス ファイルのアップロード、ルート[Management Console] パスワードの設定、インスタンスの設定の構成、インスタンスの再起動を行う必要があります。

Warning

攻撃者が新しいインスタンスを侵害できないようにするには、自分だけが知っているルート [Management Console] パスワードを設定して、最初のユーザーをできるだけ早く作成してください。

  1. 仮想マシンのパブリックDNS名をコピーして、Webブラウザに貼り付けてください。
  2. プロンプトでライセンスファイルをアップロードし、管理コンソールのパスワードを設定してください。 詳しくは、「GitHub Enterpriseのライセンス管理」を参照してください。
  3. [Management Console] で、目的の設定を構成して保存します。 詳しくは、「GitHub Enterprise を設定する」をご覧ください。
  4. インスタンスは自動的に再起動します。
  5. [Visit your instance](インスタンスにアクセスする) をクリックします。

参考資料