使用Vagrant配置专用网络

时间:2015-10-15 02:43:04

标签: vagrant private-network

我正在使用Vagrant在桌面上配置3个虚拟机。我想用这3个虚拟机构建集群。我想在私有网络中配置这3台计算机的IP并仅访问我桌面上的每台虚拟机。这种配置的原因是我将这三个VM仅用于开发。

那么你能回答一下我为什么要为Vagrant配置虚拟机IP的问题吗?我无法理解如何配置专用网络的IP地址。

1 个答案:

答案 0 :(得分:1)

创建名为Vagrantfile的Vagrant文​​件并添加:

# -*k mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
         config.vm.provider :libvirt do |libvirt|
         libvirt.driver = "kvm"
         libvirt.host = 'localhost'
         libvirt.uri = 'qemu:///system'
         end
#        
config.vm.define "test1" do |vm1|
         vm1.vm.box = "ubuntu/trusty64"
         vm1.vm.hostname="vm1.example.com"
          vm1.vm.provider :libvirt do |domain|
         domain.memory = 1024
         domain.cpus = 1
         end
        vm1.vm.network :private_network,
                        :ip => '192.168.1.10',
                        :libvirt__netmask => '255.255.255.0',
                        :libvirt__network_name => 'mynetwork',
                        :libvirt__forward_mode => 'none'

end

config.vm.define "test2" do |vm2|
         vm2.vm.box = "ubuntu/trusty64"
         vm2.vm.hostname="vm2.example.com"
         vm2.vm.provider :libvirt do |domain|
         domain.memory = 1024
         domain.cpus = 1
         end
         vm2.vm.network :private_network, :ip => '192.168.1.11', :libvirt__network_name => 'mynetwork'
end 
config.vm.define "test3" do |vm3|
         vm3.vm.box = "ubuntu/trusty64"
         vm3.vm.hostname="vm3.example.com"
          vm3.vm.provider :libvirt do |domain|
         domain.memory = 1024
         domain.cpus = 1
         end
         vm3.vm.network :private_network, :ip => '192.168.1.12', :libvirt__network_name => 'mynetwork'

end

end

根据您的提供商,您可以更改。这适用于libvirt提供商。 在第一个test1

vm1.vm.network :private_network,
                            :ip => '192.168.1.10',
                            :libvirt__netmask => '255.255.255.0',
                            :libvirt__network_name => 'mynetwork',
                            :libvirt__forward_mode => 'none' 

这将创建名为isolated的{​​{1}}专用网络192.168.1.0/24。你可以改变别的东西。在第二个mynetwork和第三个test2中使用网络test3。 如果你不提供任何网络名称,那么它将分配一些其他名称,以便更好地添加网络名称,以便更容易理解。 使用命令:

mynetwork

如果您使用的是虚拟机,那么vagrant up test1 vagrant up test2 vagrant up test3 将如下所示,但许多语法都是相同的。

Vagrantfile