Vagrant.configure("2") do |config| #给一个config做预设值
config.vm.box = "centos/7" #在config里的vm.box使用centos/7的版本
config.vm.define :master do |master| #重新定义一个叫master的vm,然后针对master的vm来做设定
master.vm.provider :virtualbox do |v| #provider指的是里面机器具体的设定是怎样的。在开一台cluster环境之后,毕竟本机资源有限,不可能每个机器都开,因此必须使用vm.provide来限制一下容量
v.name = 'host'
v.memory = 1024
v.cpus = 2
end
master.vm.network :private_network, ip: "10.211.55.100" #因为要在cluster里面要让不同的机器之间彼此互相沟通,因此必须要给private_network一个ip(可以自己设定,只要不和自己机器上其他ip冲突就行)
end
(1..2).each do |i| #用一个Ruby的1-2的回圈表示要建立2个node
config.vm.define "node-#{i}" do |node| #每个node里面把它取名叫做node,#{i}会转成1和2
node.vm.provider :virtualbox do |v|
v.memory = 512
v.cpus = 1
end
node.vm.network :private_network, ip: "10.211.55.10#{i}"
end
end
end
config.vm.provision :shell, path: "bootstrap.sh" #后面的课程加的,表示每次开启vm,都要执行bootstrap
end
把Vagrantfile修改为如上之后(建议把注释部分删掉,担心中文会有影响)开机(vagrant up)
要开的3台机器(master,node-1,node-2)就都显示在这边了:
看vagrant的3台机器的状态:
想进入某一台机器的命令:vagrant ssh master, 如:
进到master里看它的ip是不是像设定的一样:ifconfig
需要安装一下ifconfig:sudo yum install net-tools
看其他2台node有没有正常限定,直接ping就可以:
最后,如果离开不用了记得给系统关机,不然会很占用系统资源:vagrant halt