Changes between Version 42 and Version 43 of PakistanDeploymentCycle


Ignore:
Timestamp:
09/06/10 12:10:41 (14 years ago)
Author:
Fran Boon
Comment:

Rework

Legend:

Unmodified
Added
Removed
Modified
  • PakistanDeploymentCycle

    v42 v43  
    55
    66== Process ==
    7 We do daily upgrades of the systems from a single [https://gist.github.com/2b6c811432c8c736ad3f Fabfile script]:
     7We do daily upgrades of the systems from a single [http://docs.fabfile.org Fabric] script:
    88
    99 1. Upgrade Live with code release from UAT
     
    1111 3. Upgrade UAT to Trunk code
    1212 4. Send a notification to the [MailingList List] with a summary of the changes on both Test & Live
     13
    1314=== Instructions ===
    1415Login to eden.sahanafoundation.org
     
    3031Make a note of any upgrade issues with the migration on Test so that they can be streamlined in tomorrow's migration on Live
    3132
    32 == Process ==
    33  1. Upgrade Live with code release from UAT
     33== Sysadmin !ToDo ==
     34 * Current Fabfile: https://gist.github.com/2b6c811432c8c736ad3f
     35 * Current Aliases: ConfigurationGuidelines#Usefulaliases
     36
     37=== 1. Upgrade Live with code release from UAT ===
    3438 * Read VERSION from UAT to know which revision to pull to live
     39 * pull
    3540  * the 'update' script falls back to 'bzr pull' but supports an 'update XXX' arg to 'bzr pull -r XXX'
    36  * Send a notification to the list (for testers) with a summary of the day's changes: Full list of fixed bugs to be verified, New features to be Tested
    37  2. Upgrade UAT to Trunk code
    38  * Send a notification to the list (for users) with a summary of yesterday's code changes: Focussed on new features & notable bug fixes
    39  3. Refresh the UAT database with data from Live
     41 * check for conflicts & copy all .THIS over (either parse the bzr output or search filesystem - whichever is easier/quicker)
     42 * migrate (CLI web2py load as 'su web2py')
     43 * check for migration failures in databases/sql.log
     44 * resolve any migration failures
     45  * we should be able to have a script developed during the UAT upgrade to do this automatically
     46 * migrateoff
     47
     48=== 2. Refresh the UAT database with data from Live ===
    4049 * Include 'uploads' folder
    4150 * Need to ensure that User Accounts in Test are not overwritten
    4251 * Need to ensure that Role memberships in Live & Test can be different
     52  * Maybe add generic role accounts in a script after the DB replaced?
    4353
    44  * UserGuidelinesUpgrade
    45 == Sysadmin !ToDo ==
     54=== 3. Upgrade UAT to Trunk code ===
     55 * pull
     56 * check for conflicts & copy all .THIS over (either parse the bzr output or search filesystem - whichever is easier/quicker)
     57 * migrate (CLI web2py load as 'su web2py')
     58 * check for migration failures in databases/sql.log
     59 * resolve any migration failures
     60  * let user know which table failed (in sql.log)
     61  * launch a mysql prompt with 'show innodb status;' (parsed?)
     62  * potentially even have mysql fix it automatically (possible for sure, but lower priority than the core)
     63 * migrateoff
     64
     65=== 4. Send a notification to the [MailingList List] with a summary of the changes on both Test & Live  ===
     66Notifications can be built with info from the [http://eden.sahanafoundation.org/timeline Trac Timeline]
     67 * Investigate a custom Trac script to build the report automatically, e.g. building on these:
     68  * http://trac-hacks.org/wiki/DailyReminderScriptForTracScript
     69  * http://trac-hacks.org/wiki/TracReleasePlugin
     70
     71=== General ===
    4672 * Set deployment_settings on UAT to the same as Prod
     73 * Add rollback() by reading VERSION before {{{bzr pull}}}, so then can {{{bzr revert -r $version}}}
     74 * Add update() for debian packages: SSH into each & {{{ apt-get update; apt-get upgrade}}}
    4775 * Enhance Apache Maintenance site
    4876  * allowing access to site through a browser - but using a different name (which we don't publish)
     
    5179/etc/apache2/sites-available/maintenance
    5280}}}
    53  * Extend scripts:
    54   * ConfigurationGuidelines#Usefulaliases
    55 {{{
    56 pull
    57 migrate
    58 (check for conflicts & copy all .THIS over - eiher parse the bzr output or search filesystem - whichever is easier/quicker)
    59 w2p {CLI web2py load as 'su web2py')
    60 (Check for migration failures in databases/sql.log)
    61 migrateoff
    62 DBsync (tbc)
    63 }}}
    64   * Use Fabric:
    65    * Current status: https://gist.github.com/2b6c811432c8c736ad3f
    66     * Add migration (CLI as web2py)
    67      * Check sql.log for success before continuing
    68      * If it fails, it would be lovely to be told which table failed (in sql.log) & also launch a mysql prompt with 'show innodb status;' (parsed?) & potentially even having mysql fix it automatically (all possible for sure, but lower priority than the core)
    69     * Add rollback() by reading VERSION before {{{bzr pull}}}, so then can {{{bzr revert -r $version}}}
    70    * Background: http://lethain.com/entry/2008/nov/04/deploying-django-with-fabric/
    71 
    72  * Rename instance as test.pakistan.sahanafoundation.org
    73   * keep test.eden.sahanafoundation.org as an alias for now
    74   * add test.sahanafoundation.org as an alias too
    75 
    7681 * Create a new dev.pakistan.sahanafoundation.org instance
    7782  * This shouldn't be fully-automated into the upgrades cycle, but does have a script to refresh data from live manually
    7883
    79 Notifications can be built with info from the [http://eden.sahanafoundation.org/timeline Trac Timeline]
    80   * Investigate a custom Trac script to build the report automatically, e.g. building on these:
    81     * http://trac-hacks.org/wiki/DailyReminderScriptForTracScript
    82     * http://trac-hacks.org/wiki/TracReleasePlugin
    83 === Other Tasks ===
    84 Update script for debian packages: SSH into each &
    85 {{{
    86 apt-get update; apt-get upgrade
    87 }}}
    88 Use Fabric?
    8984==== Live ====
    9085 * Schedule the Ushahidi imports:
     
    9691 
    9792 * Get [wiki:InstallationGuidelinesGISDataLinux#Cache MapProxy] working (basic install on 'geo' done)
     93
    9894==== Demo ====
    9995 * Update Demo (whilst keeping the logins there intact - all other data can be dropped)
     96
    10097==== Trac ====
    10198 * Investigate a fix or alternative to http://trac-hacks.org/wiki/MathCaptchaPlugin for allowing Trac users to register bugs anonymously whilst not locking out our testing team.
     
    103100
    104101----
     102UserGuidelinesUpgrade
     103
    105104DeveloperGuidelinesDataMigration
    106105