Virtual machine 在Vagrant中创建两个虚拟网络

Virtual machine 在Vagrant中创建两个虚拟网络,virtual-machine,vagrant,Virtual Machine,Vagrant,我需要两个虚拟流浪网络通过一个“网关”相互交谈。我正在建模将部署在许多服务器上的多层应用程序。我需要这样的smth: db-server-- --db-server | | --distributor **** distributor-- |

我需要两个虚拟流浪网络通过一个“网关”相互交谈。我正在建模将部署在许多服务器上的多层应用程序。我需要这样的smth:

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