我需要使用公共网络设置2个流浪汉机器,因此请点击此链接https://www.vagrantup.com/docs/networking/public_network.html编辑Vagrantfile。
但只有一台机器只有公共静态IP。另一个不获取公共静态IP。
这是我的流浪汉机器配置:
Machine 1 Vagrant File:
Vagrant.configure("2") do |config|
config.vm.box = "man2"
config.ssh.username = "vagrant"
config.vm.hostname = "www.myhost.net"
config.ssh.forward_agent = "true"
config.vm.network "public_network", ip: "192.168.1.10"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
end
Machine 2 Vagrant File:
Vagrant.configure("2") do |config|
config.vm.box = "man1"
config.ssh.username = "vagrant"
config.vm.hostname = "www.myhost.net"
config.ssh.forward_agent = "true"
config.vm.network "public_network", ip: "192.168.1.20"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=777"]
end
Vagrant up
系统询问网络应该连接哪个接口?
我选择两个机器人为1" eno1 "
1) eno1
2) docker0
3) veth54294ac
4) virbr0
5) vethc81d7f7
6) br-08179b343476
7) br-1d45dec94893
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
default: Which interface should the network bridge to? 1
然后, Vagrant ssh 两台机器
只有一台机器有公共静态IP,另一台机器没有显示公共IP。
如果我在任何一个系统中选择不同网桥,有人会认为:(机器2)到
1) eno1
2) docker0
3) veth54294ac
4) virbr0
5) vethc81d7f7
6) br-08179b343476
7) br-1d45dec94893
选项:4( virbro )其他人现在也是同样的问题。
更新1:
在我尝试使用Same Setup之前,只有不同版本的 Vagrant 和 VirtualBox
在尝试之前:
Fedrora 23
Vagrant 1.8.1
virtualbox 5.0
现在尝试了:
Fedrora 23
Vagrant 1.8.6
Virtualbox 5.1.6
此版本中的任何限制。
为什么?
系统无法共享同一个Bridge网络?
建议我如何解决这个问题。
答案 0 :(得分:2)
您Vagrantfile
对我来说似乎不错。可能是您的Machine2
IP 192.168.1.20
已分配给其他系统。如果分配给其他系统,则DHCP不会将此IP分配给您的计算机。
如果您确定这些IP未分配给其他系统,请将其设为static
,否则您可以提供:
config.vm.network "public_network"
在这种情况下,DHCP将释放可用的IP。
无需为每个VM分别编写Vagrantfile
。您可以为多个VM创建单个Vagrantfile
,如:
Vagrant.configure("2") do |config|
config.vm.define :server1 do |server1|
server1.vm.box = "man1"
server1.vm.host_name = "vm1.example.com"
server1.vm.network "public_network", ip: "192.168.1.10"
server1.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
server1.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
end
config.vm.define :server2 do |server2|
server2.vm.box = "man1"
server2.vm.host_name = "vm2.example.com"
server2.vm.network "public_network", ip: "192.168.1.20"
server2.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
server2.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
end
end
如果您想要server1
,请执行
vagrant up server1
启动所有虚拟机,然后执行
vagrant up
对于ssh使用如:
vagrant ssh server1
是的,它可以共享桥接网络。您可以使用单桥创建多个VM。系统无法共享同一个Bridge网络?
有关详细信息,请参阅Documentation