-
Notifications
You must be signed in to change notification settings - Fork 4
/
Vagrantfile
98 lines (78 loc) · 2.94 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
# -*- mode: ruby -*-
# vi: set ft=ruby :
OPENSHIFT_DEPLOYMENT_TYPE = ENV['OPENSHIFT_DEPLOYMENT_TYPE'] || 'origin'
OPENSHIFT_RELEASE = ENV['OPENSHIFT_RELEASE'] || 'v3.11'
MACHINE_IP = ENV['OPENSHIFT_MACHINE_IP'] || '10.20.30.40'
Vagrant.configure("2") do |config|
config.vm.provider :libvirt do |domain|
domain.memory = 16384
domain.cpus = 2
end
config.vm.provider :libvirt do |libvirt|
libvirt.storage :file, :size => '40G'
end
config.vm.define :ocp_aio do |ocp_aio|
ocp_aio.vm.network :private_network, :ip => MACHINE_IP
end
config.vm.synced_folder ".", "/vagrant", type: "nfs",
nfs_version: 4,
nfs_udp: false
if Vagrant.has_plugin?("vagrant-cachier")
config.cache.scope = :box
config.cache.synced_folder_opts = {
type: "nfs",
nfs_version: 4,
nfs_udp: false
}
end
if OPENSHIFT_DEPLOYMENT_TYPE == 'openshift-enterprise'
config.vm.box = "rhel-7.5-ocp"
hostname = "master-ocp"
config.vm.hostname = hostname
else
config.vm.box = "centos/7"
hostname = "master-okd"
config.vm.hostname = hostname
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbooks/main.yml"
ansible.extra_vars = {
deployment_type: OPENSHIFT_DEPLOYMENT_TYPE,
release: OPENSHIFT_RELEASE,
machine_ip: MACHINE_IP,
master_route: hostname.gsub('-', '.')
}
unless OPENSHIFT_DEPLOYMENT_TYPE == "origin" then ansible.vault_password_file = '.vault' end
end
config.vm.provision "shell", path: "scripts/load-container-images.sh", args: [OPENSHIFT_DEPLOYMENT_TYPE, OPENSHIFT_RELEASE]
config.vm.provision "ansible_local" do |prerequisites|
prerequisites.provisioning_path = "/usr/share/ansible/openshift-ansible/playbooks/"
prerequisites.verbose = true
prerequisites.raw_arguments = ['--limit=""']
prerequisites.inventory_path = "/etc/ansible/hosts"
prerequisites.playbook_command = "sudo ANSIBLE_FORCE_COLOR=true ansible-playbook"
prerequisites.playbook = "prerequisites.yml"
end
config.vm.provision "ansible_local" do |deploy_cluster|
deploy_cluster.provisioning_path = "/usr/share/ansible/openshift-ansible/playbooks/"
deploy_cluster.verbose = true
deploy_cluster.raw_arguments = ['--limit=""']
deploy_cluster.inventory_path = "/etc/ansible/hosts"
deploy_cluster.playbook_command = "sudo ANSIBLE_FORCE_COLOR=true ansible-playbook"
deploy_cluster.playbook = "deploy_cluster.yml"
end
config.trigger.after :up do |trigger|
trigger.info = "OpenShift is ready!"
trigger.run_remote = {
inline: 'echo "Openshift is available at: https://$1.$2.nip.io:8443" with developer:developer',
args: [hostname.gsub('-', '.'), MACHINE_IP]
}
end
config.trigger.before :destroy do |trigger|
trigger.warn = "Saving container images..."
trigger.run_remote = {
path: "scripts/save-container-images.sh",
args: [OPENSHIFT_DEPLOYMENT_TYPE, OPENSHIFT_RELEASE]
}
end
end