My checklist for Linux setup

Every few years or so I need to migrate this site (and others) to a new hosted server. Here is my checklist for what packages to install, and other stuff to do. At the moment, I’m using CentOS 5. So far, I haven’t decided to go the virtualization route; even though virtual hosted servers are cheaper, they don’t have the horsepower to run some of the bigger sites I host. (hint: not this blog.)

Packages (via yum):

emacs
postfix
mysql-devel
freetype-devel (for RRDtool)
libpng-devel
libart_lgpl-devel

Directories to tar/rsync over:

web document roots
/home dirs
/usr/local

Critical configs:


/etc/httpd/conf and conf.d
/etc/sysconfig/iptables
/etc/passwd
/etc/shadow
/etc/group
/etc/sudoers
/etc/ssh/sshd_config

Misc tasks:

  • disable hosting company account
  • disable webmin or other security holes
  • configure postfix for outbound
  • recompile RRDtool
  • dude, DON’T FORGET THE CRONTABS!!!!! including for users and /etc/crontab and .daily etc
  • Time zone: cp /usr/share/zoneinfo/US/Eastern /etc/localtime

Cutover procedure

1. put up global “we are moving” web page on all sites

2. dump/restore mysql data to new server

3. bring up httpd with /etc/hosts file on my machine pointing to new server

4. test

5. change DNS to point to new server

2 Responses to “My checklist for Linux setup”

  1. ben Says:

    /etc/passwd and shadowbut not group or sudoers? I think there might be a few bits that are missing from your plan. :(

  2. billo Says:

    Good point. It’s not so much a plan as an active set of notes of stuff I am doing.

    Right now I’m stuck on rrdtool; the perl bindings won’t work. Ugh.

Leave a Reply