Migrating Existing Deployments Into TKL

TonyRLA's picture

Hi all, I began this discussion here and JedMeister suggested I open a new topic here on the forum.

As I said: I have 2 production instances running at Linode, both on Ubuntu 10.04.  One is a WordpressMU install, the other is a custom app built on django.

JedMeister 's suggestions:  "I would suggest that you install TKL (to wherever) and rsync from your existing server to the relevant TKL instance (WordPress and Django I would imagine). Hopefully you'll be lucky and it all works smoothly. Once you have it all transferred accross and working sweetly you can then use TKLBAM to back it up.

I would use TKL Django and WordPress appliances respectively (rather than Core). That way you will be able to take full advantage if TKLBAM for backups (TKLBAM will only backup what is needed - if you use Core you will have larger backups unneccesarily).

As TKL v11.x is based on Ubuntu 10.04, assuming that your current appliances are using default locations for content and settings, you should only have to rsync content and settings files and dump/import the MySQL database(s). If your current deployments are set up 'properly' then most, if not all of your tweaks should also transfer across no worries."

In the user docs at Linode I found these:

Using Rdiff-backup with SSHFS

Copy a Disk Image Over SSH

Synchronize files with Unison

Here's what I'm thinking:  I use MacFuse to mount my remote file systems locally.  I could set-up TKLDjango and Wordpress Apps and then try to synchronize them.  I could use several clients to do the sync.  What do you guys think?

If you agree, the question then becomes what precisely do I sync? I don't want to drag over any of Linodes' container controls obviously, so it's basically every diff that's on Ubuntu, And I'd probably probably not sync Webmin.  So it's probably /root, /home, and /var (minus webmin).  I've posted some screen grabs of the file structure so you can see for yourselves.

Please share you comments, thoughts...

Jeremy Davis's picture

I would gather a bit of info before you do too much. It may seem easier to just copy everything across, but personally I'd be inclined to try to set up as much from scratch so you know that there isn't anything unrequired. I think that to ensure that TKLBAM works as expected you will want to make sure everything is in the right places (as I hinted at in a previous post TKLBAM only backs up what it needs to so if things are in the wrong places they can cause issues - see here).

First check on the various versions of what is installed and compare with the TKL appliance manifest (found on the appliance page): Django & WordPress. That may give you some ideas of what problems you may be likely to encounter. Most components will have documented ways (courtesy of google) to migrate from older to newer versions - hopefully you won't need to do too much of that as (I may have already said) TKL v11.x is based on Ubuntu 10.04. If possible it's best to stick with the default versions included in TKL. Also check that your current Django instalation uses MySQL (by default I think it uses SQLite? - TKL uses MySQL). If you are currently using SQLite then you'll need to read up on how you go about migrating to MySQL - I have no idea.

For both your original servers I would check your apache settings for the contents of /etc/apache2/sites-enabled. That will give you a clue to where your web content is (you'll need to look through the corresponding files in /etc/apache2/sites-available). You should be right to copy across the Apache2 settings (/etc/apache2) and the relevant content folders and files (but if they are in a 'bad' place move them to 'good' place and adjust the relevant /etc/apache2/sites-available files).

By default TKL uses a single root (user) account with the web server running as www-data. If you currently have users other than root you can create their accounts and copy in their relevant /home directories.

Do a dump of your database (and alter anything you have to if it's not MySQL) and import into MySQL.

Most of the tweaks for Django I imagine would be in the Apache2 settings (/etc/appache2), SQL settings (etc/mysql - for MySQL) and Python (not sure where python stores settings?). I haven't used Django but wherever it stores its config will want to be copied.

Looking at TKLBAM info in Webmin on your new appliance (as mentioned by Liraz here) would probably be quite a useful to help you make sure you put things in the right spot. Also I imagine that the Django docs will also be a useful resource (v1.1 is current TKL/Ubuntu version).

Post new comment