Virtual machine 在Vagrant中创建两个虚拟网络
我需要两个虚拟流浪网络通过一个“网关”相互交谈。我正在建模将部署在许多服务器上的多层应用程序。我需要这样的smth:Virtual machine 在Vagrant中创建两个虚拟网络,virtual-machine,vagrant,Virtual Machine,Vagrant,我需要两个虚拟流浪网络通过一个“网关”相互交谈。我正在建模将部署在许多服务器上的多层应用程序。我需要这样的smth: db-server-- --db-server | | --distributor **** distributor-- |
db-server-- --db-server
| |
--distributor **** distributor--
| |
app-server- -app-server
db服务器
,app服务器
和分销商
组成专用网络。只能从第二个虚拟网络的分发服务器访问此网络。我有流浪汉档案
:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
# db-server
config.vm.define "db" do |db|
db.vm.hostname = "db"
db.vm.provider "virtualbox" do |v|
v.customize [ "modifyvm", :id, "--cpus", "1" ]
v.customize [ "modifyvm", :id, "--memory", "512" ]
end
db.vm.network "private_network", ip: "192.168.10.11"
end
# application server
config.vm.define "app" do |app|
app.vm.hostname = "app"
app.vm.provider "virtualbox" do |v|
v.customize [ "modifyvm", :id, "--cpus", "1" ]
v.customize [ "modifyvm", :id, "--memory", "512" ]
end
app.vm.network "private_network", ip: "192.168.10.12"
end
# distributor server
config.vm.define "distributor" do |distributor|
distributor.vm.hostname = "distributor"
distributor.vm.provider "virtualbox" do |v|
v.customize [ "modifyvm", :id, "--cpus", "1" ]
v.customize [ "modifyvm", :id, "--memory", "512" ]
end
distributor.vm.network "private_network", ip: "192.168.10.13"
end
end
我应该如何配置我的分发服务器
?我找到的唯一方法是添加smth,比如config.vm.network“public\u network”,ip:“192.168.10.14”
。
但是我应该为分发服务器2分配什么IP?我可以在同一文件中指定第二台网络计算机吗 在您的Vagrantfile应用程序中,Db和Distributor都位于专用网络上,因此三者都可以相互通话。您可以将应用程序放在专用网络上,将db放在公用网络上,将分销商放在公用网络和专用网络上。此配置允许分发服务器通过专用网络与应用程序对话,并通过公用网络与db对话,但由于应用程序位于专用网络上,db位于公用网络上,因此应用程序和db无法相互对话。现在,在分发服务器上安装一些king=d程序,它可以充当app和db之间的代理
您可以从中推断(附加详细信息):
工作Vagrant
文件
复制并粘贴:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider "libvirt"
config.vm.define "rhel7_minion" do |rhel7_minion|
rhel7_minion.vm.box = "uvsmtid/centos-7.1-1503-gnome"
rhel7_minion.vm.synced_folder '.', '/vagrant', disabled: true
rhel7_minion.vm.network 'private_network',
:libvirt__network_name => 'primary_vagrant_private_net',
ip: '192.168.1.2',
:libvirt__netmask => '255.255.255.0',
:libvirt__forward_mode => 'route',
:libvirt__dhcp_enabled => true
end
config.vm.define "rhel5_minion" do |rhel5_minion|
rhel5_minion.vm.box = "uvsmtid/centos-5.5-minimal"
rhel5_minion.vm.synced_folder '.', '/vagrant', disabled: true
rhel5_minion.vm.network 'private_network',
:libvirt__network_name => 'secondary_vagrant_private_net',
ip: '192.168.2.3',
:libvirt__netmask => '255.255.255.0',
:libvirt__forward_mode => 'route',
:libvirt__dhcp_enabled => true
end
end
分发服务器可以是您的物理主机
- 通过重命名
rhel7\u minion
=>db-server-1
和rhel5\u minion
=>db-server-2
可以获得图表的上半部分
- 通过复制和粘贴(以及使用IP修改名称)添加服务器
app-server-1
和app-server-2
,可以获得图表的下半部分
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider "libvirt"
config.vm.define "rhel7_minion" do |rhel7_minion|
rhel7_minion.vm.box = "uvsmtid/centos-7.1-1503-gnome"
rhel7_minion.vm.synced_folder '.', '/vagrant', disabled: true
rhel7_minion.vm.network 'private_network',
:libvirt__network_name => 'primary_vagrant_private_net',
ip: '192.168.1.2',
:libvirt__netmask => '255.255.255.0',
:libvirt__forward_mode => 'route',
:libvirt__dhcp_enabled => true
end
config.vm.define "rhel5_minion" do |rhel5_minion|
rhel5_minion.vm.box = "uvsmtid/centos-5.5-minimal"
rhel5_minion.vm.synced_folder '.', '/vagrant', disabled: true
rhel5_minion.vm.network 'private_network',
:libvirt__network_name => 'secondary_vagrant_private_net',
ip: '192.168.2.3',
:libvirt__netmask => '255.255.255.0',
:libvirt__forward_mode => 'route',
:libvirt__dhcp_enabled => true
end
end