Deployment
Short description of the deployment of :
- Small updates of the website operational branch
- Major upgrades of the operational website
- Deployment of the ROPP package
The deployment is handled by a python script executed in the fabric framework. Install the fabric framework using
sudo apt-get install fabric
To list all commands supported by the fabric deployment script use the following command:
root@graswww2:/tmp# fab -f /usr/local/bin/deploy_romsaf_web.py -l Available commands: backup_gbgp backup existing gbgp files backup_ropp backup existing ropp files clean_local_changes Clean local changes on operational webser... deploy_gbgp Deploy a new gbgp release deploy_ropp Deploy a new ropp release deploy_website Deploy new website version from tag prepare_gbgp Tar GBGP distribution and database tables... prepare_ropp Tar ROPP distribution and database tables... restore_gbgp Restore from previous gbgp backup files restore_ropp Restore from previous ropp backup files status Show subversion state on operational serv... update_preop_website Update pre-operational website update_preop_website_rollback Rollback update of the pre-operational we... update_website Update operational website update_website_dry_run Dry-run of update on operational website update_website_rollback Rollback update of the operational websit...
To specify the target host use the -H
option. Valid hosts are graswww
and graswww2
. E.g. to update website on graswww
use:
fab -H graswww -f /usr/local/bin/deploy_romsaf_web.py update_website
As a general rule changes should be deployed and checked on the secondary webserver graswww2
before deployment on the primary webserver graswww
.
The source code to the script is available here : browser:/sys_scripts/trunk/deploy_romsaf_web.py
Website Updates, Minor Changes
Use the following procedure to upload small changes to the operational website:
- examine current status of the website
- make a dry-run to see how the changes will uploaded
- if everything looks ok, make the actual upload
The above procedure should be run first on the secondary webserver web2
and second on the primary webserver web1
.
To examine the current status run::
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py status
To make a dry-run use:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py update_website_dry_run
To install updates run:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py update_website
If necessary revert the changes using:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py update_website_rollback
ROPP deployment
ROPP can be deployed using the following command:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py deploy_ropp
The command will call prepare_ropp
and backup_ropp
and install the new ROPP version.
In case of errors use:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py restore_ropp
To rollback the changes
GBGP deployment
GBGP can be deployed using the following command:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py deploy_gbgp
The command will call prepare_gbgp
and backup_gbgp
and install the new GBGP version.
In case of errors use:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py restore_gbgp
To rollback the changes
Website Deployment, Major Change
For major website releases e.g. version changes from 3.0 to 3.1. First the version needs to be tagged and the file https://svn.grassaf.org/garf/branches/operational/externals.txt
needs to be updated with the tagged name and checked in.
Then run:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py deploy_website
Update Preop Website from SVN changes
To apply updates to pre-operational page from SVN changes run (in web2):
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py update_preop_website
If necessary revert the changes using:
fab -H web2 -f /usr/local/bin/deploy_romsaf_web.py update_preop_website_rollback