【发布时间】:2015-07-07 07:55:11
【问题描述】:
我有一个运行 CentOS 的 VMWARE 映像。我想用 packer 从它创建一个 vagrant box。我是 Vagrant 的新手,任何人都可以建议这些步骤吗?
【问题讨论】:
标签: vagrant vagrantfile packer
我有一个运行 CentOS 的 VMWARE 映像。我想用 packer 从它创建一个 vagrant box。我是 Vagrant 的新手,任何人都可以建议这些步骤吗?
【问题讨论】:
标签: vagrant vagrantfile packer
Packer 通过vmware-vmx builder 支持使用 Packer 对现有 VM 应用额外的配置步骤
此 VMware Packer 构建器能够创建 VMware 虚拟机 从现有的 VMware 虚拟机(VMX 文件)。它目前 支持在运行 VMware Fusion 的主机上构建虚拟机 适用于 OS X 的专业版、适用于 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
如果你有一个手动创建的正在运行的虚拟机,最好的办法是使用 Vagrant box 重新开始。如果你想继续这条路线:http://docs.vagrantup.com/v2/vmware/boxes.html
【讨论】: