Proxmox 下的 Virtualbox

Car*_*nos 3 virtualbox virtualization

在 Jenkins Master-Slave 配置上,需要在多个作业的 slaves Kitchen 上运行测试。对于那些不知道的人来说,Kitchen 使用 Vagrant 和 VirtualBox(在我的情况下)按需运行基础设施。Master 和 Slave 都在 Proxmox 下,所以我的问题是:有没有一种理智的方法可以在 OpenVZ 容器中运行 VirtualBox?有没有什么解决方法可以实现这一点?我只是不想创建一个物理节点来运行这种作业。

slm*_*slm 5

根据我对 U&L 问答题的回答:VirtualBox 能否在 Xen Dom0 下运行?答案是否定的,您不能在 XEN 或 Proxmox/OpenVZ 之上运行诸如此类的 VM 技术。您可能可以在 VirtualBox 内的 VM 中运行 OpenVZ。

但我假设您主要是围绕让 Jenkins 能够访问更多架构的愿望来问您的问题。

KVM

我们在我工作的地方所做的是设置 Linux 的多个 KVM 实例(与什么发行版无关),并在此之上运行许多 VM。你也可以这样做。这与使用 Vagrant + VirtualBox 相同,所以我不确定这是否有帮助。

替代?

如果你真的不想在物理硬件上运行它,那么两种可能允许你这样做的技术是Docker和LXC。这些类似于 Proxmox 和 OpenVZ,但允许更精细的控制。您仍然不会在这些中运行 VirtualBox,但也许您可以设想一个解决方案,您可以利用这两种技术来代替。

LXC 节选

LXC 是 Linux 内核包含功能的用户空间接口。通过强大的 API 和简单的工具,它可以让 Linux 用户轻松创建和管理系统或应用程序容器。

特征

当前的 LXC 使用以下内核功能来包含进程:

  • 内核命名空间(ipc、uts、mount、pid、network 和 user)
  • Apparmor 和 SELinux 配置文件
  • Seccomp 政策
  • Chroots(使用 pivot_root)
  • 内核能力
  • 控制组 (cgroups)

因此,LXC 通常被认为是介于 chroot 和成熟的虚拟机之间的东西。LXC 的目标是创建一个尽可能接近标准 Linux 安装的环境,但不需要单独的内核。

摘录 Docker

Docker 是一个开源引擎,可以将任何应用程序自动部署为一个轻量级、便携、自给自足的容器,几乎可以在任何地方运行。

Docker 容器可以封装任何有效负载,并且几乎可以在任何服务器上和之间一致地运行。开发人员在笔记本电脑上构建和测试的同一个容器将在生产环境*、虚拟机、裸机服务器、OpenStack 集群、公共实例或上述的组合上大规模运行。

Docker 的常见用例包括:

  • 自动化应用程序的打包和部署
  • 创建轻量级、私有的 PAAS 环境
  • 自动化测试和持续集成/部署
  • 部署和扩展 Web 应用程序、数据库和后端服务

流浪汉?

这对您来说可能是另一种出路,而不是使用 Kitchen,您可以在这里使用Vagabond。在查看网站时,它声称与 LXC 集成(与上面提到的技术相同)。

摘抄

Vagabond 是一个与 Chef 集成的工具,可以轻松快速地构建本地节点。它使用 Linux 容器而不是完整的 VM,这意味着速度更快。快很多。

Vagabond 是为 Chef 构建的。Vagabond 中的工具针对的是 Chef。在最初的开发放缓后,Chef 的细节将被拉入一个插件中。

此外,根据该网站,它声称支持 Kitchen 1.0。

Vagabond 提供测试厨房 1.0 支持。它将平台内定义的框映射到可用的平台模板(尽其所能)。无需启动 vagrant VM,或使用其他工具。将流浪者指向食谱,让它处理细节。