Changes between Version 42 and Version 43 of PakistanDeploymentCycle
- Timestamp:
- 09/06/10 12:10:41 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PakistanDeploymentCycle
v42 v43 5 5 6 6 == Process == 7 We do daily upgrades of the systems from a single [http s://gist.github.com/2b6c811432c8c736ad3f Fabfile script]:7 We do daily upgrades of the systems from a single [http://docs.fabfile.org Fabric] script: 8 8 9 9 1. Upgrade Live with code release from UAT … … 11 11 3. Upgrade UAT to Trunk code 12 12 4. Send a notification to the [MailingList List] with a summary of the changes on both Test & Live 13 13 14 === Instructions === 14 15 Login to eden.sahanafoundation.org … … 30 31 Make a note of any upgrade issues with the migration on Test so that they can be streamlined in tomorrow's migration on Live 31 32 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 === 34 38 * Read VERSION from UAT to know which revision to pull to live 39 * pull 35 40 * 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 === 40 49 * Include 'uploads' folder 41 50 * Need to ensure that User Accounts in Test are not overwritten 42 51 * 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? 43 53 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 === 66 Notifications 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 === 46 72 * 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}}} 47 75 * Enhance Apache Maintenance site 48 76 * allowing access to site through a browser - but using a different name (which we don't publish) … … 51 79 /etc/apache2/sites-available/maintenance 52 80 }}} 53 * Extend scripts:54 * ConfigurationGuidelines#Usefulaliases55 {{{56 pull57 migrate58 (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 migrateoff62 DBsync (tbc)63 }}}64 * Use Fabric:65 * Current status: https://gist.github.com/2b6c811432c8c736ad3f66 * Add migration (CLI as web2py)67 * Check sql.log for success before continuing68 * 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.org73 * keep test.eden.sahanafoundation.org as an alias for now74 * add test.sahanafoundation.org as an alias too75 76 81 * Create a new dev.pakistan.sahanafoundation.org instance 77 82 * This shouldn't be fully-automated into the upgrades cycle, but does have a script to refresh data from live manually 78 83 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/DailyReminderScriptForTracScript82 * http://trac-hacks.org/wiki/TracReleasePlugin83 === Other Tasks ===84 Update script for debian packages: SSH into each &85 {{{86 apt-get update; apt-get upgrade87 }}}88 Use Fabric?89 84 ==== Live ==== 90 85 * Schedule the Ushahidi imports: … … 96 91 97 92 * Get [wiki:InstallationGuidelinesGISDataLinux#Cache MapProxy] working (basic install on 'geo' done) 93 98 94 ==== Demo ==== 99 95 * Update Demo (whilst keeping the logins there intact - all other data can be dropped) 96 100 97 ==== Trac ==== 101 98 * 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. … … 103 100 104 101 ---- 102 UserGuidelinesUpgrade 103 105 104 DeveloperGuidelinesDataMigration 106 105