C.H.O. Migration Plan
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
- Formulate plan on how to communicate with users during the migration process; begin gathering required contact info if necessary
- Give preliminary notice to users and ask for feedback
- Configure domain name etch.haskell.org (will later become read-only copy and left active for a while as a backup)
- Set up an IRC channel for admins to coordinate during the migration process
- Change TTL on all domains to be short
- Provision the new server
- Install and perform basic configuration of all services
- Test all installed services
- Write scripts to copy user accounts and home directories, and to verify
- Write scripts to copy project groups in /etc/group, and to verify
- Write scripts to copy darcs repos from /srv/projects, and to verify
- Write scripts to copy project data from /srv/code, and to verify
- Write scripts to copy trac projects, and to verify
- Write scripts to copy mailman lists, and to verify
- Write scripts to copy Planet Haskell, and to verify
- Write a script to make all user data and projects read-only, and to verify.
- Write a script to *undo* making things read-only, in case of emergency.
- Test all scripts thoroughly
- Fix a date for migration and give advance notice and instructions to users.
- Transfer RT database and verify (as a dry run, go through the entire migration process just for RT)
- Move the rt domain
- After TTL, verify that RT is working on the new server
Migration plan - D-Day
- Notify users.
- Make all user data and projects read-only. Verify.
- Run scripts to copy user accounts and home directories. Verify.
- Run scripts to copy darcs repos, project data, and Trac project. Verify.
- Move the domain CNAME for community, trac, projects, and code.
- After TTL, verify remotely that the domains moved and that services are working.
- Notify users of current status.
- Run the scripts to copy mailman lists. Verify.
- Tell Ian and Malcolm to check their mail.
- Move the domain MX records.
- Run the scripts to copy Planet Haskell. Verify.
- Move the planet domain.
- After TTL, verify remotely that all domains are moved and that all services are working.
- Notify users and community.
Post-migration tasks
- Monitor and tune settings of PostgreSQL for resource usage on the new server
- Monitor and tune settings of Apache for resource usage on the new server