Linux容器转换为Vagrant并返回

情况如下:我们有一个lxc(linux-container),它包含一个Debian Squeeze发行版,它由一个预先定义的文件构build而成。 我们想添加一些额外的软件包(OMFtesting平台的软件包),这些软件包不是主要的,贡献的或非免费的debian软件包列表的一部分。 目标是(/是)分发预先定义的文件,以便其他用户可以在其linux容器中轻松使用debian发行版(使用新的包)。 但是LXC似乎没有提供在额外的软件包可以下载和安装的地方添加额外的软件库(或者我们错过了某些东西)的可能性。

我们研究的解决scheme是将Vagrant与Chef结合使用,在这里我们首先创buildlinux容器,然后将这个linux容器转换为一个stream浪的盒子,让stream浪汉与厨师一起添加我们自己的包(从omf仓库),然后转换它回到一个linux容器。 这样我们就可以分发linux容器预置文件,VagrantFile和一些shell脚本来完成转换。

但是,这是如何完成的? 是否有可能将Linux容器(/ var / lib / lxc / nameContainer / rootfs)转换为.box? 或者是否有可能将一个.ext2 / .ext4 / .img(我们可以先将linux容器转换为.box)转换为.box? 我们可以转换回来(从生成的Vagrant虚拟机到Linux容器)? 我们无法find关于这个话题的任何信息(显然这不是一个好兆头)

提前致谢,

格伦

没有自动化的方式,没有。 或者至less我找不到。

但是,存储方面的LXC本质上是一个chroot。

你可以:

  • 采取“chroot”( rootfs
  • 如果需要,添加一个内核和grub
  • 把它变成一个虚拟磁盘上的文件系统
  • 添加一个引导程序
  • 添加经典的启动时configuration( /etc/fstab和co)
  • 在这个虚拟磁盘周围创build一个VirtualBox虚拟机
  • 将其转换为Vagrant框
  • 从Vagrant框中创build一个虚拟机,根据需要进行转换
  • 从VM磁盘再次提取系统
  • 把它放回到你的chroot中,如果你想删除内核和grub的东西,清理后