# This is a set of different vagrant setups that are primarily useful for package # building and testing. The techniques here were borrowed from the Git Fusion # team. Vagrant.configure(2) do |config| config.vm.define 'test-centos6' do |vagrant| vagrant.vm.hostname = 'test-centos6' vagrant.vm.box = 'chef/centos-6.5' vagrant.vm.network :private_network, ip: '172.16.100.100' vagrant.vm.synced_folder '.', '/home/vagrant/hws' vagrant.vm.provider 'virtualbox' do |vb| vb.memory = 2048 end end config.vm.define 'test-ubuntu12' do |vagrant| vagrant.vm.hostname = 'test-ubuntu12' vagrant.vm.box = 'precise64' vagrant.vm.box_url = 'http://files.vagrantup.com/precise64.box' vagrant.vm.network :private_network, ip: '172.16.100.101' vagrant.vm.synced_folder '.', '/home/vagrant/hws' # We have real problems provisioning a machine with only 1GB RAM. vagrant.vm.provider 'virtualbox' do |vb| vb.memory = 2048 end # vagrant.vm.provision 'salt' do |salt| # salt.run_highstate = false # salt.minion_config = './salt/minion-test' # end end config.vm.define 'test-ubuntu14' do |vagrant| vagrant.vm.hostname = 'test-ubuntu14' vagrant.vm.box = 'ubuntu/trusty64' # vagrant.vm.network :private_network, ip: '172.16.100.102' vagrant.vm.synced_folder '.', '/home/vagrant/hws' # We have real problems provisioning a machine with only 1GB RAM. vagrant.vm.provider 'virtualbox' do |vb| vb.memory = 2048 end # vagrant.vm.provision 'salt' do |salt| # salt.run_highstate = false # salt.minion_config = './salt/minion-test' # end end end
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 16285 | tjuricek |
Deploy/install improvements - Include nginx in Omnibus distribution, do not conflict with system nginx install - Use old-school sysvinit scripts - Create 'hws_launch' wrapper to initiate nginx and unicorn, which also reads system config file for settings |
||
#1 | 15622 | tjuricek |
Move source code to 'source/' subdirectory of branch. build/ will remain where it is. |
||
//guest/perforce_software/helix-web-services/main/Vagrantfile | |||||
#15 | 15600 | tjuricek | Add /status method back to verify that the user's session actually works. | ||
#14 | 14932 | tjuricek |
CentOS 6 deployment support. I need a reliable way of detecting platform information. So I'm installing ohai, which comes from Chef, and seems to be a stable way of determing things like "I'm running on CentOS 6.5". |
||
#13 | 14900 | tjuricek | Add test-ubuntu14 setup for local package testing. | ||
#12 | 14794 | tjuricek |
Omnibus installation framework. Right now, this mostly just packages up most of the software for use within an embedded ruby distribution. Not everything is working because there are decisions to make I'm not entirely sure about. Things, like, "do we embed postgres", or "do I embed unicorn and generate a stupid init.d script". |
||
#11 | 13612 | tjuricek | Update deployment guide, switch built documentation to asciidoc, remove unused packaging script for p4_web_api | ||
#10 | 13552 | tjuricek | Added the 'eval' Vagrant box that uses our deployed packages. | ||
#9 | 13520 | tjuricek |
Created a 'cluster' build procedure that creates an installer on build, and executes the install on a test instance. The main change is to package all gem dependencies via 'vendor/cache' (using the 'bundle package' command). Right now, there appears to be an issue with test data initialization, which may need a revised approach. |
||
#8 | 13519 | tjuricek |
Added a 'buildmaster' environment. The 'buildmaster' sets up Ruby locally for doing some work via Rake. Additional steps are now being figured out in the README.md, which may end up being a bash script that executes on the master. |
||
#7 | 13518 | tjuricek | Revised the 'build' environment to not hard-code the vagrant user, and not assume we have the p4ws tree available for state.highstate. | ||
#6 | 13517 | tjuricek |
Revised Salt hierarchy to allow for CD clustering. Now, there are two main salt environments: 'build' and 'eval'. The 'eval' environment can be configured for testing or development by setting the Grain 'dev_pillar: True' or 'test_pillar: True'. The test modes may need a bit more effort to figure out exactly where I'll put the .deb files. The dev box passes p4_web_api tests. |
||
#5 | 13512 | tjuricek |
Add 'test-ubuntu12' environment that sets up projects based on "production" packages. Packages are installed from source files that should have been created by the last 'build-ubuntu12' environment. Since the package building process "dirties" up the environment it's better to use a clean system to test package installation. |
||
#4 | 13504 | tjuricek |
The 'build-ubuntu12' seems to generate the appropriate debian packages for the distribution. I had permissions issues (probably related to shared folder usage) with the dpkg tools. So I've removed them. If we happen to need them, we'll have to figure out a build process. This environment probably shouldn't be used to test the packages, since omnibus likes to dirty everything up, leave files in the /opt/perforce directory owned by vagrant, etc. |
||
#3 | 13500 | tjuricek |
Reorganizing Vagrant definitions. Each platform should allow developers to launch environments for development, builds, or 'production', so the entire CD process can be evaluated by anyone wiht access to the source tree. This may eventually bring up a transient vSphere machine up and down, which may be necessary for sandboxing Omnibus related builds. |
||
#2 | 13496 | tjuricek |
Complete and seed the setup of the p4webapi in a development mode. This works against the local development tree for dev environments. |
||
#1 | 13491 | tjuricek |
Minimal .deb installer package for the p4_web_api The goal of this package is to provide a way of distributing the web application source via deb instead of something like the workshop or git. There will definitely be some changes as a complete deployment workflow is defined. This includes some vagrant machines for building the installer packages ('ubuntu') and testing out the environment ('salt'). |