Vagrant 可以在另一个 Vagrant VM 中使用 Ansible 安装来提供 VM 吗?

Can Vagrant provision a VM using an Ansible installation in another Vagrant VM?

我刚开始使用 Ansible 和 Vagrant bootstrap 本地开发环境(我们称之为 dev-server-1),主机是 Windows 机器 (win-host).

我必须使用 Ansible 配置 dev-server-1 机器,但是 win-host 是 运行 Windows 所以我想知道我是否可以使用另一个 Vagrant VM(ansible-host,运行 一个安装了 Ansible 的最小盒子)只是为了 Ansible,但留下 dev-server-1 运行 在 win-host 上。这可行吗?

您将无法在 Vagrant 中使用内置的 Ansible provisioner,因为它依赖于安装了 Ansible 的主机以及支持 ControlPersist 的 OS(Windows 没有)。

然而,您可以使用 Vagrant 来启动裸机,然后使用安装了 Ansible 的单独 VM(可能由 Vagrant 创建)来配置这些其他 VM。

您唯一需要的是虚拟机之间的网络连接。

不幸的是,您将无法使用 Vagrant 在 运行 设置 Ansible 供应器时创建的自动生成的清单,因为它需要一个 Ansible 供应器 运行。据我所知,如果不 运行 启用 Ansible 供应器,就无法获得此清单。

我已经提出了这个问题的解决方案:

我认为它也可以为您工作,它基本上是使用 shell 来配置流浪盒以在您的来宾上安装 ansible 并针对您的本地主机(在您的流浪盒上)安装 ansible 运行 ).