如何使用一个Vagrantfile创建多个虚拟机
接:使用Vagrant+VirtualBox安装Cnetos7如果需要同时安装多个虚拟机,改如何来实现呢?每个虚拟机都由一个Vagrantfile来创建吗?如果是创建多个无关联的虚拟机的话,那还没有什么关系。再说了一般也不会在同一台电脑上面安装多个无关联的虚拟机。如果创建的是多个关联的虚拟机的话,这种方式显然是不可取的,那有没有什么更好的方案呢?肯定有的。下面的例子就是通过一个Vagrantfil
·
接:使用Vagrant+VirtualBox安装Cnetos7
如果需要同时安装多个虚拟机,改如何来实现呢?
每个虚拟机都由一个Vagrantfile来创建吗?
如果是创建多个无关联的虚拟机的话,那还没有什么关系。再说了一般也不会在同一台电脑上面安装多个无关联的虚拟机。
如果创建的是多个关联的虚拟机的话,这种方式显然是不可取的,那有没有什么更好的方案呢?
肯定有的。
下面的例子就是通过一个Vagrantfile来创建三个虚拟机,k8s-m、k8s-w1、k8s-w2。Dockerfile的各个配置项的说明可以参考使用Vagrant+VirtualBox安装Cnetos7。
文件内容如下:
boxes = [
{
:name => "k8s-m",
:eth1 => "192.168.100.21",
:mem => "2048",
:cpu => "2",
:sshport => 22230
},
{
:name => "k8s-w1",
:eth1 => "192.168.100.22",
:mem => "2048",
:cpu => "2",
:sshport => 22231
},
{
:name => "k8s-w2",
:eth1 => "192.168.100.23",
:mem => "2048",
:cpu => "2",
:sshport => 22232
}
]
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
Encoding.default_external = 'UTF-8'
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.network "private_network", ip: opts[:eth1]
config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"
config.vm.network "forwarded_port", guest: 22, host: opts[:sshport]
#config.ssh.username = "root"
#config.ssh.password = "root"
#config.ssh.port=opts[:sshport]
#config.ssh.insert_key = false
#config.vm.synced_folder ".", "/vagrant", type: "rsync"
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.memory = opts[:mem];
v.cpus = opts[:cpu];
v.name = opts[:name];
end
end
end
end
以上内容参考了 @咕泡学院-Jack老师 的笔记,如有问题请联系,谢谢!!!
更多推荐
已为社区贡献1条内容
所有评论(0)