Deletions are marked like this. | Additions are marked like this. |
Line 91: | Line 91: |
=== Example Command Lines === 1. Install MAPS on zg-3.softxs.ch server: {{{ cap -s app=maps -s site=proto -s instance=zg-3.softxs.ch \ deploy:setup deploy deploy:migrate deploy:start }}} 1. Install V2 on zg-3.softxs.ch server: {{{ cap -s app=v2p0 -s site=proto -s instance=zg-3.softxs.ch \ deploy:setup deploy deploy:migrate deploy:seed_fu_without_access_control deploy:start }}} |
|
Line 101: | Line 117: |
=== Example Command Lines === 1. Setup a new VM and install V2 on it * The virtual host for the MV is vh01.softxs.ch * The new VM will have an internal IP address of 192.168.4.9 * The virtual hostname for accessing the application will be vm0401vh01.softxs.ch, which must be defined in advance in DNS {{{ cap -v -s app=vagrant -s site=v2 -s instance=generic -s vh=1 -s vm=192.168.4.9 vagrant:setup vagrant:start cap -v -s app=v2p0 -s site=proto -s instance=generic -s vh=1 -s vm=192.168.4.9 deploy:provision cap -v -s app=v2p0 -s site=proto -s instance=generic -s vh=1 -s vm=192.168.4.9 \ deploy:setup deploy bundle:install deploy:migrate deploy:populate deploy:start }}} |
Capistrano Deployment
Introduction
This page describes how Capistrano is used for:
- The V2 deployment git tree used to store and manage V2 and MAPS deployment configurations
- Capistrano customization
- VM setup and provisioning
- Application deployment
- Example deployments
V2 Deployment Git Tree
Capistrano Customization
Capistrano Custom Command Line Parameters
Parameter Name
Example Value
Description
app
maps
MAPS application
v2p0
V2 application
vagrant
Virtual machine setup/provisioning
site
proto
Prototype instance of V2 and MAPS
v2
V2 virtual machine for vagrant provision
instance
zg-3.softxs.ch
Example MAPS instance: v2.softxs.ch/maps
zg-3.softxs.ch
Example v2p0 instance: v2.softxs.ch/v2p0
zg-3.softxs.ch-tn
Example v2p0 instance: v2.softxs.ch/v2p0-tn
vor.softxs.ch-4010
Example v2p0 instance: localhost:4010 on AH laptop
generic
Generic instance, must set vh and vm
vh
1
Virtual host specified
vm
192.168.4.9
Internal IP address of virtual host
Capistrano Custom Tasks
Task Name
Description
Top-Level Tasks
setup_env
Setup the application, site and instance settings for the installation
show_env
Display installation settings
setup_app_symlink
Setup application symlink, automatically called after deploy:setup
upload_database_yml
Install database.yml file
Deployment Tasks
deploy:populate
Pupulate application database (rake db:populate)
deploy:provision
Provision VM for application.
deploy:restart
Restart application (by touching tmp/restart.txt)
deploy:seed_fu
Seed the application database (rake db:seed_fu)
deploy:seed_fu_without_access_control
Seed V2 application database (rake db:seed_fu_without_access_control...
VM Provisioning Tasks
vagrant:setup
Setup Vagrant VM (create VM home dir and install Vagrant file)
vagrant:start
Start Vagrant VM (vagrant up)
vagrant:status
Display status of Vagrant VM
vagrant:stop
Stop Vagrant VM (vagrant halt)
VM Setup and Provisioning
to be completed
Application Deployment
Specific Instance Deployment
Generic Instance Deployment
Example Deployments
Example: Specific Development Instance
- Install git tree by hand
- Using webbrick as web server
- Capistrano to install site/instance specific files
- Can optionally run bundle and rake tasks
Example: Specific Production Instance
- Install git tree by hand
- Using pre-configured APache virtual host as web server
- Capistrano to install everything
- Setup of target environment: Mix of hand and automated steps
- Local git checkout and installation on server
- RRun bindle and rake tasks
Example Command Lines
- Install MAPS on zg-3.softxs.ch server:
cap -s app=maps -s site=proto -s instance=zg-3.softxs.ch \ deploy:setup deploy deploy:migrate deploy:start
- Install V2 on zg-3.softxs.ch server:
cap -s app=v2p0 -s site=proto -s instance=zg-3.softxs.ch \ deploy:setup deploy deploy:migrate deploy:seed_fu_without_access_control deploy:start
Example: Generic Production Instance
- Creating VM on virtual host
- Provisioning VM on virtual host
- Including creation of Apache virtual host
- Application installation
Note that DMS (re-)configuration is not included, this must be prepared separately, typically using Puppet. See:
Example Command Lines
- Setup a new VM and install V2 on it
- The virtual host for the MV is vh01.softxs.ch
- The new VM will have an internal IP address of 192.168.4.9
- The virtual hostname for accessing the application will be vm0401vh01.softxs.ch, which must be defined in advance in DNS
cap -v -s app=vagrant -s site=v2 -s instance=generic -s vh=1 -s vm=192.168.4.9 vagrant:setup vagrant:start cap -v -s app=v2p0 -s site=proto -s instance=generic -s vh=1 -s vm=192.168.4.9 deploy:provision cap -v -s app=v2p0 -s site=proto -s instance=generic -s vh=1 -s vm=192.168.4.9 \ deploy:setup deploy bundle:install deploy:migrate deploy:populate deploy:start