是否可以从来宾内部启动同级的Vagrant机器?

时间:2018-10-24 12:46:08

标签: vagrant

在设置自动化环境时,我们最终会设想以下内容:

我们的Jenkins服务器与Jenkins工作人员进行通信。该工人在Vagrant机器中运行。 然后,Jenkins工作者将启动其他其他Vagrant机器作为构建器,并在完成构建后将它们还原到给定的快照。

这样做的复杂之处在于,Jenkins工人(已经是物理主机上的Vagrant来宾计算机)应该直接在主机上而不是在其内部启动另一台Vagrant来宾计算机(这很复杂,并且会对其进行优化) VirtualBox提供程序。)

有可能吗? 如果可以,怎么办?

注意:为澄清起见,使用此博客文章中的方法,可以使用Docker从容器中启动同级容器: http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/(请参见解决方案部分)

编辑(一些基本原理):

我们知道可以使用Docker实现同级容器的启动(请参阅提供的链接),但是我们不能使用Docker,因为作为构建器运行的VM必须同时为OS X和Windows。

一些建议可能是让Jenkins工人作为宿主环境,从那里可以轻而易举地产生Vagrant建设者。但是,出于某些原因,我们强烈希望避免这种情况:

  • 集装箱式Jenkins工人具有通常的维护优势:易于迁移,扩展,重置
  • 安全性和隔离性:如果工作人员受到损害,我们真的不希望它成为支持许多其他关键过程的物理计算机。

1 个答案:

答案 0 :(得分:0)

Vagrant不是为此目的而设计的,不可能做到这一点。

正如您还指出的那样,Docker可以更好地完成这项工作,但DiD可能会显得过大,而是使用您自己的主机在Docker容器内启动Jenkins服务器。将主机的Docker套接字传递到此容器,每当需要Jenkins工人时,在Jenkins服务器内部启动一个新容器。

所有容器将直接在主机上运行,​​并且更易于管理。

请参见以下https://getintodevops.com/blog/the-simple-way-to-run-docker-in-docker-for-ci