Let's say you have your favorite settings with zsh, vim, screen, etc., behaving the way you want on some boxes.
What is the best way to apply these settings / environments to a new server? Assuming all the necessary software is installed on the same distro.
Keep your home directory (well, the useful bits anyway) in a version control system - e.g. svn, git. Then you can just check it out onto the new machine/update/etc.
I use a setup based on Joey Hess's svnhome setup and his
mr
tool. I use git now rather than svn, but the basic ideas are the same.There are also a few other scripts/tools designed specifically for use with git. Google for "home directory git" (or your choice of VCS) and you should find lots of useful info.
You could use some of the proposed production deployment tools on this other question, puppet, capistrano, chef, cfengine, etc.
But, if this is too complex for your problem, you may get your files on a version control server (git, svn, hg, etc.) and have them pulled from the repository for every new server.