接:使用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老师 的笔记,如有问题请联系,谢谢!!!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐