Vagrant同时管理多台机器

1. Vagrantfile

下面为1个master和3个node的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 启动Node的数量
$workerNodeNumber = 3

# IP前缀
$workerNodeIpBase = "192.168.33."

# Node的IP地址数组(从192.168.33.20开始分配)
$workerNodeIps = $workerNodeNumber.times.collect {|n| $workerNodeIpBase + "#{n+20}"}

Vagrant.configure("2") do |config|

# 定义master
config.vm.define "master" do |master|
master.vm.box = "centos7" # centos7为本地的box(使用`vagrant box list`查看)
master.vm.network "private_network", ip: $workerNodeIpBase + "10" # 192.168.33.10
master.vm.hostname = "master"
master.vm.provider "virtualbox" do |vb|
vb.memory = "1024" # 定义master机器的内存:1024MB
vb.cpus = "1" # 定义master机器的CPU数量:1
vb.name = "master" # 虚拟机名称(在VirtualBox中显示)
end
end

# 定义node
$workerNodeNumber.times do |n|
vmName = "node#{n}"
config.vm.define vmName do |node|
node.vm.box = "centos7"
node.vm.network "private_network", ip: $workerNodeIps[n]
node.vm.hostname = "node#{n}"
node.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.name = "node#{n}"
end
end
end
end

2. 启动

1
vagrant up

3. 关闭

1
vagrant halt