GitHub Enterprise Server をグローバル Azure または Azure Government にデプロイできます。
前提条件
- GitHub Enterpriseのライセンスファイルを持っていなければなりません。 詳細については、「GitHub Enterprise Server のトライアルを設定する」および「GitHub Enterpriseのライセンスについて」を参照してください。
- 新しいコンピューターをプロビジョニングできる Azure アカウントを所有していなければなりません。 詳しくは、Microsoft Azure Web サイトをご覧ください。
- 仮想マシン(VM)を起動するのに必要なアクションのほとんどは、Azureポータルを使っても行えます。 とはいえ、初期セットアップ用にはAzureコマンドラインインターフェース(CLI)をインストールすることをお勧めします。 以下の例では、Azure CLI 2.0が使われています。 詳細については、Azure のガイド「Azure CLI 2.0 のインストール」を参照してください。
ハードウェアに関する考慮事項
最小推奨要件
お使いの GitHub Enterprise Server インスタンスのユーザー ライセンス数に応じた様々なハードウェア構成をおすすめします。 最小推奨要件以上のリソースを提供すれば、インスタンスのパフォーマンスとスケーラビリティは向上します。
ユーザー ライセンス | x86-64 vCPUs | メモリ | ルート ストレージ | アタッチされた (データ) ストレージ |
---|---|---|---|---|
トライアル、デモ、あるいは10人の軽量ユーザ | 4 | 32 GB | 200 GB | 150 GB |
10-3000 | 8 | 48 GB | 200 GB | 300 GB |
3000-5000 | 12 | 64 GB | 200 GB | 500 GB |
5000-8000 | 16 | 96 GB | 200 GB | 750 GB |
8000-10000+ | 20 | 160 GB | 200 GB | 1000 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あるいはメモリリソースの増加」を参照してください。
仮想マシンタイプの決定
Azure でお使いの GitHub Enterprise Server インスタンスを起動するには、Organization のニーズに最適なマシン タイプを決定する必要があります。 メモリ最適化済みマシンの詳細については、Microsoft Azure ドキュメントの「メモリ最適化済み仮想マシンのサイズ」を参照してください。 GitHub Enterprise Server の最小リソース要件を確認するには、「最小推奨要件」を参照してください。
インスタンスをサイズ変更すれば、いつでも CPU やメモリをスケールアップできます。 インスタンスで使用できるリソースを変更するには、ユーザーのダウンタイムが必要であるため、GitHub では、スケーリングを考慮してリソースを過剰プロビジョニングすることをおすすめします。
GitHub Enterprise Server アプライアンスは、プレミアムストレージのデータディスクを必要としており、プレミアムストレージをサポートするあらゆる Azure VM でサポートされます。 s
サフィックスが付いた Azure VM の種類では、Premium Storage がサポートされます。 詳細については、「Azure で利用できるディスクの種類」 および Azure ドキュメントの「Azure Premium Storage: 高パフォーマンス用に設計する」を参照してください。
GitHub は、GitHub Enterprise Server にメモリ最適化された VM を推奨しています。 詳細については、Azure ドキュメントの「メモリ最適化済み仮想マシンのサイズ」を参照してください。
GitHub Enterprise Server は、VM タイプをサポートするあらゆる地域をサポートします。 各 VM でサポートされているリージョンの詳細については、Azure の「リージョン別の利用可能な製品」を参照してください。
GitHub Enterprise Server 仮想マシンを作成する
インスタンスを作成するには、GitHub Enterprise Server のイメージを仮想マシンにインポートし、インスタンスのデータ用に追加のストレージボリュームをアタッチしなければなりません。 詳細については、「ハードウェアに関する考慮事項」を参照してください。
-
最新の GitHub Enterprise Server アプライアンスイメージを見つけます。
vm image list
コマンドの詳細については、Microsoft のドキュメントの「az vm image list
」を参照してください。az vm image list --all -f GitHub-Enterprise | grep '"urn": "GitHub:' | sort -V
-
見つけたアプライアンスイメージを使用して新しい VM を作成します。 詳細については、Microsoft ドキュメントの「az vm create」を参照してください。
VM の名前、リソースグループ、VM のサイズ、優先する Azure リージョンの名前、前の手順でリストしたアプライアンスイメージ VM の名前、およびプレミアムストレージ用のストレージ SKU についてのオプションを渡します。 リソース グループの詳細については、Microsoft のドキュメントの「リソース グループ」を参照してください。
az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS
-
必要なポートを開くように VM でセキュリティを設定します。 管理とユーザーのために公開する必要があるネットワーク サービスに基づいて、開くネットワーク ポートを選ぶことをお勧めします。 詳しくは、「ネットワーク ポート」と、Microsoft のドキュメントの「az vm open-port」をご覧ください。 どのポートを開く必要があるかを判断するための各ポートの説明については、以下の表を参照してください。
az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER
次の表に、各ポートの使用目的を示します
Port サービス 説明 22 SSH Git over SSHのアクセス。 パブリック/プライベートリポジトリのクローン、フェッチ、プッシュ操作がサポートされています。 25 SMTP 暗号化(STARTTLS)付きのSMTPサポート。 80 HTTP Webアプリケーションへのアクセス。 SSL が有効になっている場合、すべての要求は HTTPS ポートにリダイレクトされます。 122 SSH インスタンスのシェルへのアクセス。 既定の SSH ポート (22) は、アプリケーションの git+ssh ネットワーク トラフィック専用です。 161/UDP SNMP ネットワークモニタリングプロトコルの処理に必要。 443 HTTPS Webアプリケーション及びGit over HTTPSのアクセス。 1194/UDP VPN High Availability設定でのセキュアなレプリケーションネットワークトンネル。 WireGuard を使用して暗号化されます。 8080 HTTP プレーンテキストの Webベースの [Management Console]。 SSL を手動で無効にしない限り必要ありません。 8443 HTTPS セキュアな Webベースの [Management Console]。 基本的なインストールと設定に必要です。 9418 Git シンプルなGitプロトコルのポートです。 パブリックリポジトリのクローンとフェッチのみができます。 暗号化されていないネットワーク通信。 インスタンスでプライベートモードを有効化した場合、このポートをオープンする必要があるのは、匿名Git読み取りアクセスも有効化している場合のみです。 詳しくは、「Enterprise でリポジトリ管理ポリシーを適用する」を参照してください。 -
暗号化されていない新しいデータディスクを作成してVMにアタッチし、ユーザライセンス数に応じてサイズを設定してください。 詳しくは、Microsoft のドキュメントの「az vm disk attach」をご覧ください。
VM の名前 (
ghe-acme-corp
など)、リソースグループ、プレミアムストレージ SKU、ディスクのサイズ (200
など)、および結果の VHD についてのオプションを渡します。az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite
Note
非運用インスタンスが十分な I/O スループットを得るための推奨される最小ディスク サイズは 150 GiB であり、読み取り/書き込みキャッシュを有効にします (
--caching ReadWrite
)。
GitHub Enterprise Server 仮想マシンを設定する
インスタンスを構成するには、インスタンスの状態の確認、ライセンス ファイルのアップロード、ルート [Management Console] パスワードの設定、インスタンスの設定の構成、インスタンスの再起動を行う必要があります。
Warning
攻撃者が新しいインスタンスを侵害できないようにするには、自分だけが知っているルート [Management Console] パスワードを設定して、最初のユーザーをできるだけ早く作成してください。
-
VM を設定する前に、VMがReadyRole ステータスになるのを待つ必要があります。
vm list
コマンドを使用して VM の状態を確認します。 詳しくは、Microsoft のドキュメントの「az vm list」をご覧ください。$ az vm list -d -g RESOURCE_GROUP -o table > Name ResourceGroup PowerState PublicIps Fqdns Location Zones > ------ --------------- ------------ ------------ ------- ---------- ------- > VM_NAME RESOURCE_GROUP VM running 40.76.79.202 eastus
Note
Azure では、VM の FQDNS エントリは自動的には作成されません。 詳しくは、Azure portal での Linux VM の完全修飾ドメイン名の作成に関する Azure のガイドを参照してください。
- 仮想マシンのパブリックDNS名をコピーして、Webブラウザに貼り付けてください。
-
プロンプトでライセンスファイルをアップロードし、管理コンソールのパスワードを設定してください。 詳しくは、「GitHub Enterpriseのライセンス管理」を参照してください。
-
[Management Console] で、目的の設定を構成して保存します。 詳しくは、「GitHub Enterprise を設定する」をご覧ください。
- インスタンスは自動的に再起動します。
-
[Visit your instance](インスタンスにアクセスする) をクリックします。
Azure の拡張機能
GitHub Enterprise Server は、Azure の拡張機能のインストールをサポートしていません。 GitHub Enterprise Server イメージには、カスタマイズされた waagent
パッケージのみが付属します。これによって、基本的な VM 管理機能のみがサポートされ、高度な VM 管理機能はブロックされます。
GitHub Enterprise Server インスタンスのシステムが不安定にならないように、walinuxagent
サービスは、制限付きモードで GitHub Enterprise Server で意図的に実行され、エージェントによる他のエージェントのインストールは明示的に禁止されます。 Azure Insights の監視エージェント拡張機能や Azure Backup など、GitHub Enterprise Server イメージに付属する追加のエージェントと拡張機能に依存する VM 管理機能はサポートされていません。
GitHub Enterprise Server では、必要なアプリケーションとサービスのみでカスタマイズされた Linux オペレーティング システムが実行されるため、オペレーティング システム パッケージを手動でインストールまたは更新すると、これらのカスタマイズが上書きされ、予期しない動作が発生する可能性があります。 詳しくは、「システムの概要」を参照してください。