It's really something that is specific to what we do and I had/have no intention of making it generic or let alone designing the type of thing that helps people who don't have experience doing sys admin - because I want to stay focused. For those that are interested these are the main techniques I use:
First I go to slicehost and create a machine, they send me a email when it's done (about 5 mins or so).
I have one install script and a syncing script, The install scripts one calls the sync script. After the machine is live I just use the sync one to update it. $hostname is the name or IP address of the new machine.
First I copy SSH authorization over, so I can login without a password (assumes you have created SSH keys already - which is one time event):
My script took me a few hours to write and I did so that I can scale up (and down) in a hurry by adding a machine rather than taking the existing machines (there are 2) down whilst slicehost resize it - which is not something I wanted do while there is a lot of traffic coming in. We don't really need multiple machines, but buying one big slice is expensive to have running the whole time.