【问题标题】:Configuration private network with Vagrant用 Vagrant 配置私有网络
【发布时间】:2016-01-13 08:16:01
【问题描述】:

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

那么您能否回答我将如何为此目的使用 Vagrant 配置 VM 的 IP 的问题?我无法理解如何配置专用网络的 IP 地址。

【问题讨论】:

    标签: vagrant private-network


    【解决方案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' 
    

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

    vagrant up test1 
    vagrant up test2
    vagrant up test3
    

    如果您使用的是 virtualbox,那么Vagrantfile 将如下所示,但许多语法将相同。

    VAGRANTFILE_API_VERSION = "2"
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.network "private_network", ip: "192.168.33.10"
    config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多