先决条件
- 您必须拥有 GitHub Enterprise 许可文件。 有关详细信息,请参阅 设置 GitHub Enterprise Server 试用版 和 GitHub Enterprise Server 的许可证文件。
- 必须拥有支持 Hyper-V 的 Windows Server 2008 到 Windows Server 2022。
- 也可以使用 Hyper-V Manager 执行创建虚拟机(VM)所需的大多数作。 但是,我们建议使用 Windows PowerShell 命令行 shell 进行初始设置。 下文介绍了使用 PowerShell 的示例。 有关详细信息,请参阅 Microsoft 指南 Getting Started with Windows PowerShell。
硬件注意事项
最低推荐要求
建议根据 你的 GitHub Enterprise Server 实例 的用户许可数选择不同的硬件配置。 如果预配的资源超过最低推荐要求,则实例将表现更好并且可扩展性更好。
| 用户许可证 | x86-64 vCPU | 内存 | 根存储 | 附加(数据)存储 | IOPS |
|---|---|---|---|---|---|
| 试用版、演示版或 10 个轻度用户 | 4 | 32 GB | 400 GB | 500 GB | 600 |
| 最多 1,000 个 | 8 | 48 GB | 400 GB | 500 GB | 3000 |
| 1,000 到 3,000 | 16 | 64 GB | 400 GB | 1000 GB | 6000 |
| 3,000 到 5,000 | 32 | 128 GB | 400 GB | 1500 GB | 9000 |
| 5,000 到 8,000 | 48 | 256 GB | 400 GB | 3000 GB | 12000 |
| 8000-10000+ | 64 | 512 GB | 400 GB | 5000 GB | 15000 |
如果计划为实例的用户启用 GitHub Actions 或 GitHub Code Security,则需要更多资源。
- GitHub Actions - 至少增加 25% 的 CPU 和内存。
- GitHub Code Security - 至少增加 25% 的 CPU 和内存
这些调整应适用于每个用户层的基本要求。 建议监视对所有资源的更改,因为可能需要进一步增加。
有关这些要求的详细信息,请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
如果计划为实例的用户启用 Container registry,则需要更多资源。 有关这些要求的详细信息,请参阅“企业 GitHub Packages 使用入门”。
有关为现有实例调整资源的详细信息,请参阅“增加存储容量”和“增加 CPU 或内存资源”。
存储
我们建议为 GitHub Enterprise Server 配置具有高每秒输入/输出操作数 (IOPS) 和低延迟的高性能 SSD。 工作负载是 I/O 密集型的。 如果使用裸机管理程序,建议直接连接磁盘或使用存储区域网络 (SAN) 中的磁盘。
您的实例需要一个独立于根磁盘的持久数据磁盘。 有关详细信息,请参阅“系统概览”。
警告
根存储是指实例的根磁盘总大小。 当实例启动时,将看到根文件系统上有 200GB 可用空间。 根文件系统上剩余的 200GB 保留用于升级。 有关详细信息,请参阅“系统概览”。
若要配置 GitHub Actions,必须提供外部 Blob 存储。 有关详细信息,请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
根文件系统上的可用空间将占磁盘总大小的 50%。 您可以通过构建一个新实例或使用现有实例来调整实例的根磁盘大小。 有关详细信息,请参阅 系统概览 和 增加存储容量。
CPU 和内存
GitHub Enterprise Server 需要的 CPU 和内存资源取决于用户的活动水平、自动化和集成。
为 你的 GitHub Enterprise Server 实例 预配的任何 VM 都必须使用 x86-64 CPU 体系结构。 其他体系结构(例如 AArch64 或 arm64)均不受支持。
如果计划为 GitHub Actions 实例的用户启用 GitHub Enterprise Server,则可能需要为实例预配额外的 CPU 和内存资源。 有关详细信息,请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
增加 CPU 资源时,GitHub建议为实例预配的每个 vCPU(最多 16 个 vCPU)增加至少 6.5 GB 的内存。 如果您使用的 vCPU 超过 16 个,则无需为每个 vCPU 添加 6.5 GB 内存,但应监控您的实例以确保其有足够的内存。
警告
建议用户配置 Web 挂钩事件来通知外部系统有关 GitHub Enterprise Server 上的活动。 自动检���更改或轮询将对实例的性能和可扩展性产生不利影响。 有关详细信息,请参阅“关于 网络钩子”。
有关监视 GitHub Enterprise Server 的容量和性能的详细信息,请参阅“监视您的实例”。
您可以增加实例的 CPU 或内存资源。 有关详细信息,请参阅“增加 CPU 或内存资源”。
我应该使用 VMotion 吗?
VMotion 对于一般的资源管理非常有帮助,但它对来宾实例的影响可能会很大。 对于较大的 GitHub Enterprise Server 实例(8 CPU/64 GB RAM 及以上),VMotion 事件可能会导致 GitHub Enterprise Server 对最终用户完全中断,因为 CPU、RAM 和存储 IOPS 会显著降低。 考虑到这一点,GitHub Enterprise Server 应被视为“高度延迟敏感”的应用程序。
对于已启用分布式资源调度程序 (DRS) 的 VMWare 上的大型部署,我们建议为你的 GitHub Enterprise Server 配置 VM 到主机亲和性规则,以尝试将虚拟设备保持在单个主机上。 如果需要使用 VMotion 进行迁移,建议你将此视为“计划内中断”,并将 GitHub Enterprise Server 置于维护模式,直到迁移完成。
我们还建议将 ESXi 电源管理设置配置为“高性能”。 我们已经见过一些情况,如果将此设置保留为“均衡”,可能会对整体系统性能产生负面影响。
下载 GitHub Enterprise Server 镜像
-
下载许可。 有关详细信息,请参阅“下载 GitHub Enterprise 许可证”。1. 导航到要用于新实例的映像。
- 导航到发行说明。
- 在右侧边栏中,单击要下载的版本。
- 单击“下载 GitHub Enterprise Server X.X.X”。
-
在“GitHub 本地”下,选择“选择虚拟机监控程序”下拉菜单,然后单击Hyper-V(VHD)。
-
单击 为 Hyper-V(VHD)下载。
创建 GitHub Enterprise Server 实例
要创建实例,需要将 GitHub Enterprise Server 映像导入虚拟机,并为实例数据附加额外的存储卷。 有关详细信息,请参阅“硬件注意事项”。
-
在 PowerShell 中,创建新的第 1 代虚拟机,根据用户许可数配置大小,并附上您下载的 GitHub Enterprise Server 图像。 有关详细信息,请参阅 Microsoft 文档中的新建 VM。
PS C:\> New-VM -Generation 1 -Name VM_NAME -MemoryStartupBytes MEMORY_SIZE -BootDevice VHD -VHDPath PATH_TO_VHD -
创建新虚拟磁盘以用作实例数据的附加存储卷,并根据您的用户许可数配置大小。 如果重用现有磁盘,请确保磁盘为空且没有分区。 将
PATH_TO_DATA_DISK替换为磁盘创建位置的路径。 有关详细信息,请参阅 Microsoft 文档中的“New-VHD”。PS C:\> New-VHD -Path PATH_TO_DATA_DISK -SizeBytes DISK_SIZE -
将���据磁盘连接到实例。 有关详细信息,请参阅 Microsoft 文档中的添加 VMHardDiskDrive。
PS C:\> Add-VMHardDiskDrive -VMName VM_NAME -Path PATH_TO_DATA_DISK -
启动 VM。 有关详细信息,请参阅 Microsoft 文档中的开始使用 VM。
PS C:\> Start-VM -Name VM_NAME -
获取 VM 的 IP 地址。 有关详细信息,请参阅 Microsoft 文档中的获取 VMNetworkAdapter。
PS C:\> (Get-VMNetworkAdapter -VMName VM_NAME).IpAddresses -
复制 VM 的 IP 地址并将其粘贴到 Web 浏览器中。
配置 GitHub Enterprise Server 实例
若要配置实例,必须上传许可证文件,设置根 管理控制台 密码,配置实例的设置,然后重启实例。
警告
若要防止攻击者破坏新实例,请确保你亲自设置根 管理控制台 密码,并尽快创建第一个用户。
- 复制虚拟机的公共 DNS 名称,然后将其粘贴到 web 浏览器中。
- 在提示时上传许可文件并设置管理控制台密码。 有关详细信息,请参阅“下载 GitHub Enterprise 许可证”。
- 在 管理控制台 中,配置并保存所需的设置。 有关详细信息,请参阅“配置 GitHub Enterprise”。
- 实例将自动重启。
- 单击“访问实例”。