- 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
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15688 | Doug Scheirer | Populate -o //guest/perforce_software/helix-web-services/... //guest/doug_scheirer/helix-...web-services/.... « |
10 years ago | |
//guest/perforce_software/helix-web-services/main/infrastructure/Vagrantfile | |||||
#4 | 15685 | tjuricek | Use GUIs for VMWare Fusion, and remove version string from installer file names. If we... show the UI for VMs launched by Vagrant, we can easily just drag and drop into vSphere. Which works quickly, actually. We also do not want version strings in archived file names, since that makes it trickier to write scripts that just fetch these files and deploy them automatically. « |
10 years ago | |
#3 | 15661 | tjuricek | Add some basic email notification. Note: the 'P4' Jenkins plugin doesn't seem to alter... the workflow environment. This means we don't really get access to the changelist we've synced. I'm investigating, this would be nice to have. « |
10 years ago | |
#2 | 15634 | tjuricek | Add rules for setting up and running Centos 6. There's a strange problem coming back ar...ound with package tests again, not everything's 100% « |
10 years ago | |
#1 | 15623 | tjuricek | Add infrastructure project. This project should allow any team to setup a CD environment... locally using VMWare products. A 'build' workflow will run tests, generate installers, etc, on a Jenkins instance configured with necessary plugins. A later 'release' workflow will initially push successful runs into the 'build/' directory of the branch in the workshop. (A 'production release' will use that data and push it into internal infrastructure for package signing and hosting.) Documentation will be written. This is a large set of files, so I wanted to submit them where my connection to the workshop server is faster. « |
10 years ago |