2015-06-17 37 views
1

我正在尝试创建一个同时具有VirtualBox和Qemu构建器的Packer模板。 VirtualBox的工作正常,但与Qemu,我有一些困难,搞清楚如何正确设置网络。Qemu中的VirtualBox设置等同于什么?

更具体地说,在VirtualBox的部分,我有

"vboxmanage": [ 
    ... 
    ["modifyvm", "{{.Name}}", "--nic2", "nat"], 
    ["modifyvm", "{{.Name}}", "--cableconnected2", "on"], 
    ["modifyvm", "{{.Name}}", "--nic3", "null"], 
    ["modifyvm", "{{.Name}}", "--cableconnected3", "off"] 
    ], 
    "vboxmanage_post": [ 
    ["modifyvm", "{{.Name}}", "--nic1", "hostonly"], 
    ["modifyvm", "{{.Name}}", "--hostonlyadapter1", "VirtualBox Host-Only Ethernet Adapter"], 
    ["modifyvm", "{{.Name}}", "--cableconnected1", "on"] 
    ], 

我想最初只是配置至少有

"qemuargs": [ 
    [ "-netdev", "user,id=mynet0,net=192.168.56.101/24,host=192.168.56.2,dns=192.168.56.2,dhcpstart=192.168.56.2"], 
    ["-m", "128M"] 
    ] 

第二NIC但帕克说,有调用的Qemu使用时出现错误该命令。我究竟做错了什么?另外,如何在稍后运行创建的映像时创建仅适用于主机的适配器?

回答

1

好的,我有点解决了我原来的问题。

问题是-netdev和-device都是必需的,并且(真的让我失望了)它们的顺序很重要:“-netdev”第一,“-device”第二。此外,Packer似乎覆盖了自己的第一个接口,这反过来又要求对其进行明确的重新定义。明确的重新定义需要两个hostfwd-ed端口。我猜派克使用其中一个作为其源端口。所以:

"ssh_host_port_min": 3213, 
    "ssh_host_port_max": 3214, 
    "qemuargs": [ 
    ["-netdev", "user,id=user.0,hostfwd=tcp::3213-:22,hostfwd=tcp::3214-:22,net=10.0.2.0/24"], 
    ["-device", "virtio-net,netdev=user.0"], 
    ["-netdev", "user,id=user.1"], 
    ["-device", "virtio-net,netdev=user.1"], 
    ["-netdev", "user,id=user.2"], 
    ["-device", "virtio-net,netdev=user.2"], 
    ["-m", "128M"] 
    ], 

这不等同于上面的VirtualBox设置,但至少它足以使Packer成功创建映像。事后正确运行图像是一个单独的问题。

相关问题