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