TurnKey Linux Virtual Appliance Library

Request: Possibility to combine appliances

Hey Guys,

i just had the idea that in some cases it would be very handy to be able to combine appliances to have one appliace supporting multiple features like a "domain controller and zimbra appliance".

Maybe this would be possible by using a modular structure with a core and additional modules from the available appliance. So you could choose the functions you want and create your " core + domain-controller + zimbra + maybe another additional module appliance ".

This would be especially useful for smaller companies with just a small number of servers.

So what do you think about it?
Would this be something you are interested in implementing?

I know this is not a simple task so let me know if this idea has a chance of being implemented or not.

Cheeeeeeeeeeeeeeeeeers

derschreckliche

 

 

Jeremy's picture

An alternative route?

Hi,

I have already made a similar suggestion, although not a clear and succinct as yours and initially aimed more at an update/upgrade utility. I think there is definately merit in this idea, even if not as an upgrade facility but as a clean install facility (similar to say how eBox can be configured - either single purpose or comprehensive eBox server).

Another way to acomplish your aim (which is more what I'm gunning for) is a TKL VE (Virtual Environment) or "Master Server" which could either be installed virtually or on hardware which then has the various required TKL appliances (server components) installed within 'containers' (using technology such as OpenVZ or similar). This has a dual-edged appeal as it reduces hardware load associated with multiple VMs and also allows for a modular configuration which gives increased stability and the potential for redundancy. It also allows for developement and trialling of new products & ideas before having to commit your business to them. The other great thing is that if you mess something up completely and corrupt your LAMP webserver (for example) it doesn't bring your whole business to a standstill, only the functions that that individual VM was serving.

I am currently using Proxmox VE which I find brilliant and basically fulfills the "master server" role on my hardware (as defined above). For interests sake the hardware I am using is basically a mid to upper level 3 year old Desktop featuring an Intel Core2Duo (@ 2.13GHz) and 8GB of DDR2 RAM (you could probably buy similar brand new hardware for around $500-$600 currently). Proxmox also includes KVM so can host Windows and other OSs. It's great as a headless server (web based admin - I 'borrowed' my desktop vid card for initial install) and has impressive performance (as it is a minimal Debian install basically designed as a Hypervisor type environment). It is only availabe as x64 and is really intended for install to hardware but I have successfully installed it to both VMWare Server and VirtualBox (under Windows - for testing purposes only). I now have it running on my server as the primary OS, with all my TKL appliances running on top of that - currently 6 TKL VMs (soon to be more! - running in OpenVZ containers - see the wiki page here if that is a path you'd like to try), 1 Win Server 2K3 (under KVM - I hope to get rid of this once I can replicate its full functionality with TKL) and one Ubuntu Desktop (I use this for remote Admin, Log into this then admin all the other VMs using SSH, SFTP, Webmin, etc - This is also running under KVM, will run under OpenVZ when I get around to it).

Hope you find this idea as interesting as I do!

Cheers

Liraz Siri's picture

Running combinations of virtual appliances

I fully agree with JedMeister here. The way forward is not to attempt to merge appliances together but rather figure out how to easily run them as separate, self-contained units inside a virtualization environment. Merging multiple appliances together destroys much of the advantage of running an application as a virtual appliance to begin with.

I really like JedMeister's ideas for developing a "master" server that can easily run pre-bundled TurnKey Linux appliances. I believe there are several ways this could be implemented leveraging existing open source virtualization software such as Proxmox VE, oVirt, Enomaly, Ganeti, Eucalyptus and DTC-Xen. And I probably missed a few.

I think currently the main hurdle is for someone with a bit of time on their hands to experiment with the state of the art and figure out what works best for small-medium sized implementations.

Yes, this is a possibility, but...

Hi JedMeister,

thanks for sharing your ideas. I thought about something like this, too, but my aim was not to find a easy to realize solution. It would be possible to do it like this and is at this time the only possibility you have for running multiple appliances on one server.

But even if it's fast there is much redundancy in this solution and for this i wanted to share the idea for maybe something as a possible long term aim for getting TKL even better.

With the modular structure you would still have the possibility to run 2(or more) TKL appliances separately if you want it for security reasons but you would also have the other option.

The dangers that i see is that it could end up in a kind of package system destroying the advantages of TKL. So maybe just providing some "well known to work together" bundled packages is a better idea?

But i find your idea of an upgrade feature very interesting as well, especially with some "Base" TKL appliances like LAMP upgradeable to most CMS and Wiki appliances...

Anyhow TKL is a very interesting and promising project that i think will gain even more importance and maybe grow to a standard solution for some problems in the future.

Cheeeeeeeeeeeeeers

derschreckliche
 

custom live CD

Yeah, I think the virtual appliance is kinda nice, but optimal would be customization of the modules, instead of having to choose pre-made ones.

I, for instance, would like to join File Server, Domain Controler, possibily LAMP and add backintime, a nice handling backup program.

So, I like much more the custom live CD approach. It's just too bad it's so hard to build one, even using remastersys. But that way we just get the Ubuntu we like best, or even the Turnkey, tweak a little bit, and voiah-la! Just need to keep it updated and/or upgraded.

Anyone would have insights in this approach?

Jeremy's picture

Start with whichever TKL appliance best suits your needs

And go from there! Perhaps TKL PDC? Then add the other functions.

Adding file sharing shouldn't be too involved (as the PDC sort of does that already - or perhaps thats my ignorance and someone can correct me?!) I would think its only a matter of reading up a bit on Samba (the underlaying tech for both PDC and File Server).

Then you would need to install Apache, MySQL and PHP (ie the AMP in LAMP).

From my quick glance at BackInTime is that its basically only a GUI for other functions:

Keep in mind that Back In Time is just a GUI. The real magic is done by rsync (take snapshots and restore), diff (check if something changed) and cp (make hardlinks).

So you are probably looking for something different (for starters TKL doesn't have a GUI to speak of - other than web-based). The Ubuntu Forums would be a good place to search and ask to find something that will suit your needs. There may be some backup software to achieve what you want already or perhaps someone has written a script to do the same as BackInTime in a server environment (which you could then run from cron).

Or perhaps you could read up on bash scripting and write one yourself and share it with us!?

using server provising scripts ?

    Another idea in the bucket, Can TKL go the route of RightScale which provides and hosts the Server provisioning Scripts for EC2 and other Cloud Servers, or using similar techniques with the runurl kind of project.

    This way, When I have to run different apps, I am not forced to run multiple TKL's (Although I have a choice to run as many), But I will be able to install the components the right way, with the Provisioning scripts doing all the necessary ground work and getting them in a standard way...

    Just my 2 cents.

Liraz Siri's picture

I wouldn't rule that out, but it needs more thought

The current appliances configurations aren't designed to merge well so you would run into a few issues with that. Also keep in mind you can't pre-test a non-fixed configuration. Part of what's great about TurnKey Linux is users come to expect a bit of consistency with regards to the result they're getting. The appliances aren't perfect (yet) and you occasionally run into issues, but most users would run into far more trouble on their own. Best of all with help from the community we can gradually work out any problems with the appliances until they're as good as you can get with off the shelf open source components.

The dangerous thing about trying to design a way to combine appliances is that if you go far enough down this road you end up re-inventing packages (or meta packages). Ubuntu and Debian are always improving integration at the package level so it wouldn't make sense for us to invent our own packaging system. Or do it poorly like runurl which is essentially an insecure remote execution mechanism.

Perhaps what we will do in the future is figure out how to better expose what you can already do through the package management system and a simple TKLpatch script. Maybe a nice web based GUI ala SUSE studio that allows you to customize appliances by adding and removing packages/groups of packages and then either download the result or deploy it into the cloud. The funny thing is you don't need a fancy GUI to do all of that. You can do it right now using TKLpatch.

TurnKey VM

Maybe the way to do this is a standard TurnKey appliance just to support more VM's.

Just Because You Can, Doesn't Mean You Should

IMNSHO having these Meta Appliances goes against the whole philosophy of having appliances in the first place. And, afterall, these Meta Appliances have been around for many years... They are called distros. The whole purpose of these appliances are that they are *role based* and easily set up in a federation with other *role based* appliances. You run a VM/appliance that serves up web pages/apps and you have a seperate appliance that handles mail. In a production environment you don't want the email server to become unavailable when you need to reboot the web server, and visa versa. You don't want to risk shutting down your PDC while you try out some configuration tweak on your wiki.

I think, when it comes to things like TurnKey appliances (and others of a similar ilk) that the old saying applies. "Just because you can, doesn't mean you should."

Turnkey VM layer

Given this philosophy, it would make sense to have a base TurnKey distribution which provides the base VM manager.  You load this distribution on the HW and then put different VM's on top for the functionality you want.  

Is there an existing TurnKey distribution that fills this roll? 

Thanks,

Phil

Jeremy's picture

In addition to chaim's plans

for a desktop type hypervisor, there has also been quite comprehensive discussions on a more server based approach. Have a look at this thread.

In the meantime there are a range of options to fulfill your desire, they're just not TKL. Personally I use ProxmoxVE and am more than happy with it. If your hardware can support it then I highly recommend it. Otherwise another option that I think is worthy of consideration is Eucalyptus/UEC (Ubuntu Enterprise Cloud) - have a read here. I know that TKL devs have a soft spot for this "private cloud" approach as it is compatable with Amazon's EC2 which allows for easier migration of VMs to and from the cloud.

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <strike> <caption>

More information about formatting options

Leave this field empty. It's part of a security mechanism.
(Dear spammers: moderators are notified of all new posts. Spam is deleted immediately)