使用 Vagrant 配置私有网络
Configuration private network with Vagrant
我正在使用 Vagrant 在我的桌面上配置 3 个虚拟机。我想用这 3 个虚拟机构建集群。我想在私有网络中配置这 3 台机器的 IP,并只访问我桌面上的每个虚拟机。这种配置的原因是我将使用这三个 VM 仅用于开发。
所以你能回答我应该如何为此目的使用 Vagrant 配置 VM 的 IP 的问题吗?我无法理解如何配置专用网络的 IP 地址。
创建一个名为 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
的 isolated
专用网络 192.168.1.0/24。你可以改变它别的东西。在第二个 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
我正在使用 Vagrant 在我的桌面上配置 3 个虚拟机。我想用这 3 个虚拟机构建集群。我想在私有网络中配置这 3 台机器的 IP,并只访问我桌面上的每个虚拟机。这种配置的原因是我将使用这三个 VM 仅用于开发。
所以你能回答我应该如何为此目的使用 Vagrant 配置 VM 的 IP 的问题吗?我无法理解如何配置专用网络的 IP 地址。
创建一个名为 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
的 isolated
专用网络 192.168.1.0/24。你可以改变它别的东西。在第二个 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