我正在使用Packer创建一个 VirtualBox 图像。
之后我启动虚拟机,我想使用 ssh 连接到它。我知道如何使用 GUI启用端口转发,但我更喜欢自动化,所以我正在寻找一种方法让 Packer 为我做这件事。
我使用 NAT 作为将我的虚拟机连接到网络的方式。
我如何告诉 Packer 将一些端口转发到 VM?
在查看了如何使用 VirtualBox 的命令行工具VBoxManage启用端口转发之后,我在我的packerConfig.json
:
"type": "virtualbox-iso",
"vboxmanage": [
[ "modifyvm", "{{.Name}}", "--memory", "1024" ],
[ "modifyvm", "{{.Name}}", "--cpus", "1" ],
[ "modifyvm", "{{.Name}}", "--natpf1", "guest_ssh,tcp,,3022,,22" ]
]
...
最后一部分使 VirtualBox 将流量从主机的 3022 转发到来宾的 22。
这意味着我可以ssh -p 3022 me@127.0.0.1
连接到虚拟机。
要使用 Packer 在 VirtualBox 中创建端口转发,请使用以下命令:
[
"modifyvm", "{{.Name}}", "--natpf1", "name,tcp,ipHost,portHost,IpGuest,PortGuest"
]