如何管理 20 个虚拟机的配置和自动部署

Luc*_*jer 5 configuration-management

我有一个 TeamCity 构建服务器,有大约 20 个“构建代理”,Windows 和 MacOS 机器。

通常,我需要安装较新版本的 XCode 或 VisualStudio 或其他一些工具。必须在所有机器上手动执行此操作既无聊又容易出错。我试图找出实现以下目标的最佳方法:

  • 使更改系统配置变得容易,而无需在所有机器上手动进行。
  • 使向组中添加新机器变得容易。
  • 确保机器尽可能相同

这些机器正在执行的作业相对繁重,完全消耗 8 个内核,并且 IO 非常繁重。如果解决方案包括花钱,那很好。

Chr*_*rpe 1

您可以按照以下几个方向进行操作。这取决于您拥有的基础设施以及您愿意支付和/或部署的软件。

拥有这么多独立的构建机器的目的是什么?是为了保持代码项目彼此隔离,还是通过额外资源最大限度地提高构建速度?或者构建机器实际上是网络上的客户端工作站,除了构建之外还用于其他目的?

如果要保持构建环境的隔离,那么虚拟化是一个不错的选择。您将能够将 20 台构建机器提升为单独的虚拟机,而无需为每台机器购买/配置硬件的额外麻烦。

另一方面,如果是为了性能扩展,将构建机器捆绑到虚拟机上就没有多大意义,因为主机上的虚拟机会争夺该主机的 CPU、RAM 和磁盘可用性。您最好通过添加额外的硬件单元来根据需要添加最大数量的 CPU 核心、Gbs RAM 和磁盘轴。

至于在所有计算机上更新软件包的要求: - 为了在多台 Windows 计算机上进行统一软件管理而不需要重新部署操作系统,请查看 Microsoft 的 System Center Config Manager 和 System Center Essentials。它们听起来很适合您的要求:http://www.microsoft.com/systemcenter/en/us/products.aspx - 对于整个系统部署,您可以更改系统“映像”,然后重新-将该映像部署到您的构建计算机上,您可以使用您正在使用的任何虚拟化产品中内置的功能(ESX 或 Hyper-V 上的“模板”)通过虚拟机来完成此操作。或者,您可以查看 PXE 启动构建解决方案,例如 Windows 部署服务。

无论您采取哪种方式,您最大的痛点可能是在构建机器上混合使用 Windows 和 MacOS。跨所有这些的标准操作系统几乎是能够以统一方式更新所有这些的先决条件。