![如何从具有新 MAC 地址的现有盒子中派生出一个新的流浪者盒子?](https://linux22.com/image/1595189/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%85%B7%E6%9C%89%E6%96%B0%20MAC%20%E5%9C%B0%E5%9D%80%E7%9A%84%E7%8E%B0%E6%9C%89%E7%9B%92%E5%AD%90%E4%B8%AD%E6%B4%BE%E7%94%9F%E5%87%BA%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84%E6%B5%81%E6%B5%AA%E8%80%85%E7%9B%92%E5%AD%90%EF%BC%9F.png)
我想用 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?