我有一个运行 CentOS 的 VMWARE 映像。我想用打包器从它创建一个流浪盒。我是 Vagrant 的新手,任何人都可以建议这些步骤吗?
2 回答
Packer 通过vmware-vmx builder支持使用 Packer 对现有 VM 应用额外的配置步骤
此 VMware Packer 构建器能够从现有的 VMware 虚拟机(VMX 文件)创建 VMware 虚拟机。它目前支持在运行适用于 OS X 的 VMware Fusion Professional、适用于 Linux 和 Windows 的 VMware Workstation 以及适用于 Linux 的 VMware Player 的主机上构建虚拟机。
在您拥有现有 CentOS VMX 并希望将其变成 Vagrant 盒子的情况下,您将创建 packer.json 配置文件,如下所示:
{
"builders": [{
"type": "vmware-vmx",
"source_path": "/path/to/a/vm.vmx",
"ssh_username": "root",
"ssh_password": "root",
"ssh_wait_timeout": "30s",
"shutdown_command": "echo 'packer' | sudo -S shutdown -P now"
}],
"provisioners": [{
"type": "shell",
"inline": ["echo 'my additional provisioning steps'"]
}],
"post-processors": [{
"type": "vagrant",
"keep_input_artifact": true,
"output": "mycentos.box"
}]
}
Packer 将克隆源 VMX,启动盒子,应用您拥有的任何配置步骤,关闭盒子,然后输出一个新的 Vagrant “.box” 文件。
听起来你将无法做到。Packer 假设一个基本盒子(对于 vagrant)并在一个新盒子处结束。你不能通过 Packer 从一个正在运行的虚拟机转到一个盒子。
如果您使用 vagrant 启动 CentOS VM,则可以这样做 vagrant export
如果您有手动创建的正在运行的 VM,则最好的选择是使用 Vagrant 盒重新开始。如果您想继续这条路线:http ://docs.vagrantup.com/v2/vmware/boxes.html