如何从具有新 MAC 地址的现有盒子中派生出一个新的流浪者盒子?

如何从具有新 MAC 地址的现有盒子中派生出一个新的流浪者盒子?

我想用 Virtualbox 构建一个虚拟机(使用一些 Linux 发行版),然后使用构建的虚拟机以某种方式从中“派生”(缺乏更好的术语)其他虚拟机,而不必再次进行完整的安装(选择语言、键盘映射、安装软件包等)。

假设我有一台名为“base”的基本虚拟机,其中我已配置了所需的所有必需内容(ssh、vim 等)。然后我想使用这台基本虚拟机创建一台名为“derived”的新虚拟机,只需更改其主机名和 IP 地址,而无需从头开始构建完整的虚拟机。

我认为 packer 和 vagrant 是实现此目的的合适工具。但不幸的是,我使用 vagrant 时遇到了困难。到目前为止,我为实现目标而尝试的所有方法都失败了,因为新(派生)盒子的 MAC 地址始终与“基本”盒子相同。

我尝试了以下所有操作,但均未成功:
1. 在我的 Vagrantfile 中设置vm.base_mac = nil:这将删除 NAT 接口 eth0 并添加未配置的第二个 NIC eth12
. 执行配置modifyvm --macaddress1 auto:结果相同,这将删除 NAT 接口 eth0 并添加未配置的第二个 NIC eth13
. 执行vagrant box add --name derived-box filepath-to-base-box:新框“派生框”具有与“基本”框相同的 MAC 地址
4. 执行vagrant box repackage ...:结果相同,MAC 地址与基本框相同

问题:
1. 我可以用 vagrant 做我想做的事情吗?
2. 如果可以,我需要采取哪些步骤才能从具有不同 MAC 地址和网络的现有 vagrant box 中获取新的(派生的)vagrant box?

相关内容