= 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_ropp backup existing ropp files clean_local_changes Clean local changes on operational webserver deploy_ropp Deploy a new ropp release deploy_website Deploy new website version from tag prepare_ropp Tar ROPP distribution and database tables, requ... restore_ropp Restore from previous ropp backup files status Show subversion state on operational servers update_website Update operational website update_website_dry_run Dry-run of update on operational website update_website_rollback Rollback update of the operational website }}} 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`. == Website Updates, Minor Changes == Use the following procedure to upload small changes to the operational website: 1. examine current status of the website 1. make a dry-run to see how the changes will uploaded 1. if everything looks ok, make the actual upload The above procedure should be run first on the secondary webserver `graswww2` and second on the primary webserver `graswww`. To examine the current status run:: {{{ fab -H graswww2 -f /usr/local/bin/deploy_romsaf_web.py status }}} To make a dry-run use: {{{ fab -H graswww2 -f /usr/local/bin/deploy_romsaf_web.py update_website_dry_run }}} To install updates run: {{{ fab -H graswww2 -f /usr/local/bin/deploy_romsaf_web.py update_website }}} If necessary revert the changes using: {{{ fab -H graswww2 -f /usr/local/bin/deploy_romsaf_web.py update_website_rollback }}} == ROPP deployment == ROPP can be deployed using the following command: {{{ fab -H graswww2 -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 graswww2 -f /usr/local/bin/deploy_romsaf_web.py restore_ropp }}} 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 graswww2 -f /usr/local/bin/deploy_romsaf_web.py deploy_website }}}