C.H.O. Migration Plan

From HaskellWiki
Revision as of 21:52, 29 January 2011 by YitzGale (talk | contribs) (Copied an older version from the Trac wiki on c.h.o.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Migration From Etch

Services to migrate

  • RT
  • Trac
  • http
  • Exim
  • ClamAV
  • mrtg
  • darcs
  • ghc
  • mailman
  • nagios
  • planet

User data to be transfered

  • User accounts and home directories
  • Project groups in /etc/group
  • Darcs repos from /srv/projects
  • Project data from /srv/code
  • Trac projects
  • Mailman lists
  • Planet Haskell
  • Physical mailboxes (igloo and malcolm)

Domains to be transferred

  • community
  • code
  • rt
  • planet
  • trac
  • projects

Migration plan - preparatory stage

  1. Formulate plan on how to communicate with users during the migration process; begin gathering required contact info if necessary
  2. Give preliminary notice to users and ask for feedback
  3. Configure domain name etch.haskell.org (will later become read-only copy and left active for a while as a backup)
  4. Set up an IRC channel for admins to coordinate during the migration process
  5. Change TTL on all domains to be short
  6. Provision the new server
  7. Install and perform basic configuration of all services
  8. Test all installed services
  9. Write scripts to copy user accounts and home directories, and to verify
  10. Write scripts to copy project groups in /etc/group, and to verify
  11. Write scripts to copy darcs repos from /srv/projects, and to verify
  12. Write scripts to copy project data from /srv/code, and to verify
  13. Write scripts to copy trac projects, and to verify
  14. Write scripts to copy mailman lists, and to verify
  15. Write scripts to copy Planet Haskell, and to verify
  16. Write a script to make all user data and projects read-only, and to verify.
  17. Write a script to *undo* making things read-only, in case of emergency.
  18. Test all scripts thoroughly
  19. Fix a date for migration and give advance notice and instructions to users.
  20. Transfer RT database and verify (as a dry run, go through the entire migration process just for RT)
  21. Move the rt domain
  22. After TTL, verify that RT is working on the new server

Migration plan - D-Day

  1. Notify users.
  2. Make all user data and projects read-only. Verify.
  3. Run scripts to copy user accounts and home directories. Verify.
  4. Run scripts to copy darcs repos, project data, and Trac project. Verify.
  5. Move the domain CNAME for community, trac, projects, and code.
  6. After TTL, verify remotely that the domains moved and that services are working.
  7. Notify users of current status.
  8. Run the scripts to copy mailman lists. Verify.
  9. Tell Ian and Malcolm to check their mail.
  10. Move the domain MX records.
  11. Run the scripts to copy Planet Haskell. Verify.
  12. Move the planet domain.
  13. After TTL, verify remotely that all domains are moved and that all services are working.
  14. Notify users and community.

Post-migration tasks

  1. Monitor and tune settings of PostgreSQL for resource usage on the new server
  2. Monitor and tune settings of Apache for resource usage on the new server