Migrating from other host
I've just signed up for a VPSLink Xen VPS because I'm migrating from another VPS host. Is there any way for me to transfer my entire installation of Ubuntu on that host to my new VPS, perhaps using rsync?
If by transfer your entire installation you mean everything (OS and all) then no, but it's certainly to possible to install ubuntu, install the apps, and copy over configuration files from your previous host along with any content. It's not as easy as what you'd like, but it would most likely get the job done without too much effort.
If I were migrating VPS', my process would be this:
1) Dump a list of packages installed
2) Apt-get the entire list on new VPS
3) Copy over configuration files service by service, at least what has been modified.
4) Transfer DNS for each service one by one
5) Drink a beer
Maybe #5 should come first... Depending on the services you are hosting, it shouldn't be too bad to bring each of them over.
http://www.helomx.com - Blacklist and availability monitoring built from the ground up for outsourced IT providers.
I just did this, and kept track (mostly) of what I did. My experience might give you a feel for what you will need to do.
Background: I transferred a machine running Debian Etch. The machine had been upgraded from Sarge, which provoked a few problems with virtual packages.
I transferred stuff in three steps. First, using dump, I made a level 0 dump two weeks before the scheduled transfer. Got the new VPS running correctly using info from that dump (don't do a restore!). Next, got info from a level 5 dump made the day before migration, and tested the server. Last, I got the latest files from a level 9 dump made just after turning off all services on the old server.
My "what I did" list is below. Apologies for the length.
One thing not on the list was moving DNS. I run a stealth primary. I needed to change the primary to shorten the refresh intervals to 1 hour and let that propagate. I also needed to remove the old server from all glue records at the 3 registrars that I use. While the old machine is still running, install the zone files on the new VPS, made the new machine the stealth primary, do not change the A and MX records, update all the secondaries to point at the new VPS, and wait. After a day or so, all the secondaries will be up-to-date with the short refresh times and using the new VPS as their primary. Then, during final migration, change the IP addresses in the zone files on the new VPS and let the secondaries suck the changes up. Max propagation time -- 2 hours. Sometime soon I need to raise the refresh timeouts back to reasonable numbers.
best of luck!
What I did:
stop: dovecot sendmail apache2 imapproxy clamav-milter clamav-daemon
spamass-milter greylist-milter mailman spamassassin spf-milter mysql
dpkg -l > x (on old machine)
(munge the output 'x' to be a shell script installing each package)
(transfer the script using sftp)
run the script. Correct the references to virtual packages. repeat until done.
Get from dump file (level 0):
mysql databases (/var/lib/mysql) DONE
home directories DONE
root home directory DONE
correct owner & group
mkdir /var/lock/spf-milter.pl DONE
cpan install Mail::SPF DONE
cpam install Net::CIDR DONE
cpan install Mail::SRS DONE
get bayes DB
correct Fuzzyocr.conf to account for missing pamthreshold
/etc/init.d/spf-milter (rc.update and rcconf) DONE
milter greylist stuff (if not got some other way)
make clean DONE
make install DONE
correct UID.GID (clamav.clamav) DONE
/var/log/clamav & .../*
run find / -user Debian-exim -print and deal with the results (DONE)
Fix stuff in /etc: ALL DONE
./apache2, ./mail, ./dovecot, ./ssl, ./default (do the diffs!), hosts (but change ip addresses)
hostname, init.d/babblemud, hosts.deny, cron*, ./logwatch, ./logrotate.conf
./logrotate.d, passwd*, group*, shadow*, ./init.d/*greylist*, ./init.d/ssh
imapproxy.conf, ./mysql, ./pam.*, ./php, ./spamassassin, ./squirrelmail
./ssh (fix the IP address of the port 110 listen)
./syslog-ng, ./subversion, sudoers, ./usermin, ./webalizer, ./webmin, xinetd.*
run make in /etc/mail, just to be sure that dates are OK. DONE
NEXT STEP: DONE
restore the level 5 dump (hand-made TOC)
NEXT STEP: DONE
restore the final level 9 dump (hand-made TOC)
root's crontab (/var/spool/cron/crontabs/root)
/etc/bind (change the IP addresses)