我们有一个包含三 (3) 个组件的产品,我正在尝试找出一种好方法来建立本地开发和测试环境。
我们的组件包括:
- A“网关”每个客户在 vSphere 中运行的 VMware VM 上运行 CentOS。
- 许多“特工”每个客户都在 Windows 上运行并将数据发送到网关。
- 许多网关都将其数据发送到一个单一的远程 SaaS。
对于这个问题,我最关心的是为在开发过程中使用 Mac 的程序员在本地环境中设置和运行#1 和#2。
我想到的是使用 Vagrant 创建一个 Windows VM 来安装 Agent,然后单独运行 Docker Desktop for Mac 在 Docker 容器中运行 CentOS 来安装 Gateway。
但是,这感觉很复杂。我想知道是否可以更简单地完成和/或使用单个工具完成。我读过这来自 Mitchell Hashimoto 关于 Vagrant 的评论,暗示它可以同时完成这两项工作,但如果是这样,我不清楚如何做到这一点。
基本上,我正在寻找此用例的可用选项列表,最好是详细的“如何”但至少对每一个都有一个高层次的操作方法。
答案1
https://www.parallels.com/(商业)是在 Mac 上运行 Windows 桌面的好方法。到目前为止,我看到的其他所有东西使用起来都有点痛苦。特别是获取不受某种限制的合法 Windows 映像似乎并不容易。
如果您正在运行 Parallels,那么在其中安装另一个 CentOS VM(而不是在 VMware/vSphere 中)是显而易见的下一步。
在 Linux VM 中运行 Docker(因为这是您在 Mac 上所需要的,并且这也是 Mac 上所有 Docker 版本在某种意义上所做的),然后在 Docker 中运行 CentOS 似乎不必要地复杂,特别是如果您一开始就没有使用 Docker 镜像的话。
Vagrant 更适合编写某种 VM 设置脚本。它无法解决您必须首先选择某种好方法在 Mac 上运行 Windows VM 的问题。因此,其他一切都取决于这个选择。
如果您的主要目标是编写脚本,特别是对设置虚拟映像的方式进行版本控制,因为您不想设置特定的映像然后在其上更新软件,但您想每次都从头开始构建它,或者至少在必要时重复该过程,那么是的,vagrant 看起来是一个很好的解决方案。
是的,一个 Vagrantfile 可以描述多台机器。
我还没有在 Windows 上使用过 Vagrant,但文档说它可以通过温控器,因此我假设任何在基础映像中设置了网络的 VM 系统都可以。
如果你还想编写启动多个虚拟机的脚本,那么 Parallels Enterprise 附带一个命令行界面,但我没有用过。
另外,virtualbox 应该很容易编写脚本,而且是免费的,但你需要一些解锁的 Windows 基础映像源。也许其他人知道如何获取这些(我也对这些感兴趣)。
我还没有研究过 VMware 上的脚本,可能它也可以在那儿运行。