使用 Packer 进行 VirtualBox 端口转发
VirtualBox port forwarding with Packer
我正在使用 Packer 创建一个 VirtualBox 图像。
之后我启动了 VM,我想使用 ssh 连接到它。
我知道如何启用端口转发 using the GUI 但我更喜欢自动化,所以我正在寻找一种方法让 Packer 为我做这件事。
我使用 NAT 作为将我的 VM 连接到网络的方式。
如何告诉 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
连接到 VM。
要使用 Packer 在 VirtualBox 中创建端口转发,请使用:
[
"modifyvm", "{{.Name}}", "--natpf1", "name,tcp,ipHost,portHost,IpGuest,PortGuest"
]
我正在使用 Packer 创建一个 VirtualBox 图像。
之后我启动了 VM,我想使用 ssh 连接到它。 我知道如何启用端口转发 using the GUI 但我更喜欢自动化,所以我正在寻找一种方法让 Packer 为我做这件事。
我使用 NAT 作为将我的 VM 连接到网络的方式。
如何告诉 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
连接到 VM。
要使用 Packer 在 VirtualBox 中创建端口转发,请使用:
[
"modifyvm", "{{.Name}}", "--natpf1", "name,tcp,ipHost,portHost,IpGuest,PortGuest"
]