forked from Nafiux/ceph-workshop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
142 lines (119 loc) · 7.31 KB
/
Vagrantfile
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Vagrant.require_version ">= 2.2.0"
VAGRANTFILE_API_VERSION = "2"
BOX='centos/7'
ceph_node1 = 'ceph-node1'
ceph_node1_disk2 = './ceph-node1/ceph-node1_disk2.vdi'
ceph_node1_disk3 = './ceph-node1/ceph-node1_disk3.vdi'
ceph_node1_disk4 = './ceph-node1/ceph-node1_disk4.vdi'
ceph_node2 = 'ceph-node2'
ceph_node2_disk2 = './ceph-node2/ceph-node2_disk2.vdi'
ceph_node2_disk3 = './ceph-node2/ceph-node2_disk3.vdi'
ceph_node2_disk4 = './ceph-node2/ceph-node2_disk4.vdi'
ceph_node3 = 'ceph-node3'
ceph_node3_disk2 = './ceph-node3/ceph-node3_disk2.vdi'
ceph_node3_disk3 = './ceph-node3/ceph-node3_disk3.vdi'
ceph_node3_disk4 = './ceph-node3/ceph-node3_disk4.vdi'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Set proxy settings for all virtual machines, https://github.com/tmatilai/vagrant-proxyconf
config.proxy.http = "http://192.168.100.1:3128/"
config.proxy.https = "http://192.168.100.1:3128/"
config.proxy.no_proxy = "localhost,127.0.0.1"
##### Configuration for ceph-node1 #####
config.vm.define :"ceph-node1" do |node1|
node1.vm.box = BOX
node1.vm.network "private_network", ip: "192.168.100.101"
node1.vm.hostname = ceph_node1
node1.vm.synced_folder ".", "/vagrant", type: "nfs"
node1.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
node1.vm.provision "shell", path: "post-deploy.sh", run: "once"
node1.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", "1280"]
v.name = ceph_node1
v.gui = false
unless File.exist?(ceph_node1_disk2)
# Add SATA controller once
v.customize ["storagectl", :id, "--name", "SATA", "--add", "sata"]
v.customize ['createhd', '--filename', ceph_node1_disk2, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', ceph_node1_disk2]
end
unless File.exist?(ceph_node1_disk3)
v.customize ['createhd', '--filename', ceph_node1_disk3, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', ceph_node1_disk3]
end
unless File.exist?(ceph_node1_disk4)
v.customize ['createhd', '--filename', ceph_node1_disk4, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 3, '--device', 0, '--type', 'hdd', '--medium', ceph_node1_disk4]
end
end
end
##### Configuration for ceph-node2 #####
config.vm.define :"ceph-node2" do |node2|
node2.vm.box = BOX
node2.vm.network "private_network", ip: "192.168.100.102"
node2.vm.hostname = ceph_node2
node2.vm.synced_folder ".", "/vagrant", type: "nfs"
node2.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
node2.vm.provision "shell", path: "post-deploy.sh", run: "once"
node2.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", "1280"]
v.name = ceph_node2
v.gui = false
unless File.exist?(ceph_node2_disk2)
# Add SATA controller once
v.customize ["storagectl", :id, "--name", "SATA", "--add", "sata"]
v.customize ['createhd', '--filename', ceph_node2_disk2, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', ceph_node2_disk2]
end
unless File.exist?(ceph_node2_disk3)
v.customize ['createhd', '--filename', ceph_node2_disk3, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', ceph_node2_disk3]
end
unless File.exist?(ceph_node2_disk4)
v.customize ['createhd', '--filename', ceph_node2_disk4, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 3, '--device', 0, '--type', 'hdd', '--medium', ceph_node2_disk4]
end
end
end
##### Configuration for ceph-node3 #####
config.vm.define :"ceph-node3" do |node3|
node3.vm.box = BOX
node3.vm.network "private_network", ip: "192.168.100.103"
node3.vm.hostname = ceph_node3
node3.vm.synced_folder ".", "/vagrant", type: "nfs"
node3.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
node3.vm.provision "shell", path: "post-deploy.sh", run: "once"
node3.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", "1280"]
v.name = ceph_node3
v.gui = false
unless File.exist?(ceph_node3_disk2)
# Add SATA controller once
v.customize ["storagectl", :id, "--name", "SATA", "--add", "sata"]
v.customize ['createhd', '--filename', ceph_node3_disk2, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', ceph_node3_disk2]
end
unless File.exist?(ceph_node3_disk3)
v.customize ['createhd', '--filename', ceph_node3_disk3, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', ceph_node3_disk3]
end
unless File.exist?(ceph_node3_disk4)
v.customize ['createhd', '--filename', ceph_node3_disk4, '--size', 1 * 20480]
v.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 3, '--device', 0, '--type', 'hdd', '--medium', ceph_node3_disk4]
end
end
end
##### Configuration for client node #####
config.vm.define :"client1" do |client1|
client1.vm.box = BOX
client1.vm.network "private_network", ip: "192.168.100.110"
client1.vm.hostname = "client1"
client1.vm.synced_folder ".", "/vagrant", type: "nfs"
client1.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
client1.vm.provision "shell", path: "post-deploy.sh", run: "once"
client1.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", "512"]
v.name = "client1"
v.gui = false
end
end
end