Vagrant.configure(2) do |config|
# Creates a salt master that we can use to test out different test and build
# scenarios locally before we set up the "CD" system.
config.vm.define 'master' do |vagrant|
vagrant.vm.hostname = 'master'
vagrant.vm.network :private_network, ip: '172.16.100.5'
# Do not use a shared folder. We will fetch sources in other ways.
# This allows us (eventually) to export the VM and move it around.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
# The salt master actually needs some RAM in order to transfer large files.
vagrant.vm.box = 'ubuntu-14-04-x64-vmware'
vagrant.vm.box_url = 'boxes/ubuntu-14-04-x64-vmware.box'
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '2048'
v.vmx['numvcpus'] = '2'
end
vagrant.vm.provision :shell, path: "shell/install_jenkins.sh"
vagrant.vm.provision :shell, path: "shell/install_rvm_jenkins.sh"
vagrant.vm.provision :shell, path: "shell/install_build_dependencies.sh"
vagrant.vm.provision :shell, path: "shell/install_nginx.sh"
vagrant.vm.provision :shell, path: "shell/install_perforce-server.sh"
end
# The build environment expects to be managed by the 'master' VM already
# configured.
config.vm.define 'build-ubuntu12' do |vagrant|
vagrant.vm.hostname = 'build-ubuntu12'
vagrant.vm.box = 'ubuntu-12-04-x64-vmware'
vagrant.vm.box_url = 'boxes/ubuntu-12-04-x64-vmware.box'
vagrant.vm.network :private_network, ip: '172.16.100.10'
# Do not use a shared folder. We will fetch sources in other ways.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '4096'
v.vmx['numvcpus'] = '4'
end
vagrant.vm.provision :shell, path: "shell/install_build_dependencies.sh"
vagrant.vm.provision :shell, path: "shell/install_rvm.sh", args: "stable", privileged: false
vagrant.vm.provision :shell, path: "shell/install_jdk.sh"
vagrant.vm.provision :shell, path: "shell/create_ssh_key.sh", privileged: false
vagrant.vm.provision :shell, path: "shell/set_omnibus_perms.sh"
end
config.vm.define 'build-ubuntu14' do |vagrant|
vagrant.vm.hostname = 'build-ubuntu14'
vagrant.vm.box = 'ubuntu-14-04-x64-vmware'
vagrant.vm.box_url = 'boxes/ubuntu-14-04-x64-vmware.box'
vagrant.vm.network :private_network, ip: '172.16.100.11'
# Do not use a shared folder. We will fetch sources in other ways.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '4096'
v.vmx['numvcpus'] = '4'
end
vagrant.vm.provision :shell, path: "shell/install_build_dependencies.sh"
vagrant.vm.provision :shell, path: "shell/install_rvm.sh", args: "stable", privileged: false
vagrant.vm.provision :shell, path: "shell/install_jdk.sh"
vagrant.vm.provision :shell, path: "shell/create_ssh_key.sh", privileged: false
vagrant.vm.provision :shell, path: "shell/set_omnibus_perms.sh"
end
config.vm.define 'build-centos6' do |vagrant|
vagrant.vm.hostname = 'build-centos6'
vagrant.vm.box = 'centos-6-7-x64-vmware'
vagrant.vm.box_url = 'boxes/centos-6-7-x64-vmware.box'
vagrant.vm.network :private_network, ip: '172.16.100.12'
# Do not use a shared folder. We will fetch sources in other ways.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '4096'
v.vmx['numvcpus'] = '4'
end
vagrant.vm.provision :shell, path: "shell/install_build_dependencies-centos.sh"
vagrant.vm.provision :shell, path: "shell/install_rvm.sh", args: "stable", privileged: false
vagrant.vm.provision :shell, path: "shell/install_jdk-centos.sh"
vagrant.vm.provision :shell, path: "shell/create_ssh_key.sh", privileged: false
vagrant.vm.provision :shell, path: "shell/set_omnibus_perms.sh"
end
config.vm.define 'test-ubuntu12' do |vagrant|
vagrant.vm.hostname = 'test-ubuntu12'
vagrant.vm.box = 'ubuntu-12-04-x64-vmware'
vagrant.vm.box_url = 'boxes/ubuntu-12-04-x64-vmware.box'
vagrant.vm.network :private_network, ip: '172.16.100.20'
# Do not use a shared folder. We will fetch sources in other ways.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '2096'
v.vmx['numvcpus'] = '2'
end
vagrant.vm.provision :shell, path: "shell/update.sh"
vagrant.vm.provision :shell, path: "shell/install_jdk.sh"
vagrant.vm.provision :shell, path: "shell/create_ssh_key.sh", privileged: false
end
config.vm.define 'test-ubuntu14' do |vagrant|
vagrant.vm.hostname = 'test-ubuntu14'
vagrant.vm.box = 'ubuntu-14-04-x64-vmware'
vagrant.vm.box_url = 'boxes/ubuntu-14-04-x64-vmware.box'
vagrant.vm.network :private_network, ip: '172.16.100.21'
# Do not use a shared folder. We will fetch sources in other ways.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '2096'
v.vmx['numvcpus'] = '2'
end
vagrant.vm.provision :shell, path: "shell/update.sh"
vagrant.vm.provision :shell, path: "shell/install_jdk.sh"
vagrant.vm.provision :shell, path: "shell/create_ssh_key.sh", privileged: false
end
config.vm.define 'test-centos6' do |vagrant|
vagrant.vm.hostname = 'test-centos6'
vagrant.vm.box = 'centos-6-7-x64-vmware'
vagrant.vm.box_url = 'boxes/centos-6-7-x64-vmware.box'
vagrant.vm.network :private_network, ip: '172.16.100.22'
# Do not use a shared folder. We will fetch sources in other ways.
vagrant.vm.synced_folder ".", "/vagrant", disabled: true
vagrant.vm.provider 'vmware_fusion' do |v|
v.gui = true
v.vmx['memsize'] = '2096'
v.vmx['numvcpus'] = '2'
end
vagrant.vm.provision :shell, inline: 'iptables -F'
vagrant.vm.provision :shell, inline: 'yum update -y'
vagrant.vm.provision :shell, path: "shell/install_jdk-centos.sh"
vagrant.vm.provision :shell, path: "shell/create_ssh_key.sh", privileged: false
end
end