Turnkey Linux Hub 1.0 is a Web-based service that sits atop Amazon’s Web Services to provide cloud hosting and backup capabilities for the line of Web application software appliances offered by the Turnkey Linux open-source project.
The software-appliance-plus-cloud-services combination is similar to the Bitnami Cloud Hosting product that I recently reviewed, except that where Bitnami’s software stacks are packaged for use on multiple operating systems, Turnkey Linux is focused squarely on Ubuntu Linux as a foundation.
Turnkey Linux appliances, which cover a broad range of popular open-source, Web-based applications, are built atop the current Long Term Support version of Ubuntu and abide by Ubuntu’s system administration conventions. In addition, the appliances ship with phpMyAdmin, Webmin and Shell in a Box to provide database, system and command line tools through a Web interface.
The Ubuntu customization that stands out the most in Turnkey Linux is the platform’s backup and restore utility, which creates encrypted backups of files, databases and lists of installed packages, either to Amazon S3 or to another local or networked location.
Turnkey Linux appliances are available in a handful of different deployment formats, including ISO images for bare-metal installation and OVF (Open Virtualization Format) packages for deployment on virtualization hosts (such as VMware vSphere or Citrix XenCenter) that support this format. Turnkey Linux appliances are also available for deployment to Amazon’s EC2 service, directly from the Turnkey Linux Hub Web interface.
In my tests, the platform’s backup and restore utility did a great job easing the migration of a particular appliance instance from one to another of these deployment formats.
Turnkey Linux is an excellent option for individuals or organizations looking to test drive and deploy open-source Web applications covered by the project. It would serve well as a platform for building Web applications atop popular open-source stacks: There are appliances available for generic LAMP (Linux, Apache, MySQL and PHP/Python/Perl), Ruby on Rails and Django stacks, among others.
The project’s mix of administration tools provide comfortable options for newcomers and old hands at Linux administration alike, and the platform’s wide deployment and backup options make it easy to focus on the application at the top of the stack.
All Turnkey Linux appliances are freely downloadable, and pricing for S3 storage and EC2 hosting is based strictly on use, at the same rates that Amazon Web Services charges directly. The Turnkey developers have considered charging a 10 percent premium atop the EC2 rates to help fund the project, but as yet have not put any such premium into place.
Turnkey Linux Uses Ubuntu as a Foundation
title=Testing Turnkey Linux}
Turnkey Linux appliances don’t use EBS volumes for their own system files, instead relying on EC2’s temporary storage for that purpose. The backup function takes away some of the need for persistent storage, but the “no EBS by default” arrangement makes Turnkey Linux appliances incompatible with Amazon’s lowest-cost, “micro” instances, which are great for trying out most Web applications.
I tested Turnkey Linux with Mediawiki and WordPress appliances, which I deployed on Oracle’s VirtualBox 4.0 running on my notebook, on the VMware vSphere infrastructure in our lab and on Amazon’s EC2 cloud hosting service.
In each of these environments, the Turnkey Linux appliance automatically downloaded and installed the latest Ubuntu security updates at boot time. It also offered a simple command-line administration console through which I could configure networking and find the addresses where I could access the appliance’s Web-based administration tools.
I fired up my Mediawiki appliance on one of our vSphere hosts, made some customizations, added a few pages and then headed off to back up my changes. I logged in to my server via SSH (Secure Shell) and used the command line to initialize the TKLBAM (Turnkey Linux Backup and Migration service) by providing the API key I was assigned when creating my account at hub.turnkeylinux.org. (I also could have configured backups through a Webmin module.)
All backups created by the application are encrypted before being uploaded to S3, with an option for further securing the data with a passphrase, which I did. From there, creating a new backup is as easy as running the command, TKLBAM-backup. In our lab, the port for NTP (Network Time Protocol) is blocked by default, and the Turnkey backup app looks to verify the time with a time server, so I added a hosts file entry that pointed pool.ntp.org at our internal time source before the backup would run.
I didn’t want this modification to carry over to potential restore hosts running outside our network, so this time-server workaround gave me a chance to test out the TKLBAM option for excluding data from the backup. This was straightforward enough, and required adding a line to the config file “/etc/tklbam/overrides.”
TKLBAM stores backups on Amazon S3, but not in user-controlled S3 buckets. It’s not possible, for instance, to view and browse through your TKLBAM backups using the AWS Web console or other S3 management tools. Rather, the data is stored in a bucket associated with the Turnkey Linux Hub services.
The backup application taps the open-source backup application Duplicity to handle the backups-and any storage target supported by that project could be used to store the backups- but using a backend other than the default Amazon S3 brings additional configuration complexity.
I’d like to see the Turnkey Linux project provide an appliance that performs the Hub functionality, opening the door to using these services completely within an organization’s firewall, if desired.
I tested out the service’s restore functionality by launching a new Mediawiki instance on Amazon EC2 through the Web interface of the Turnkey Hub service. The operation was simple enough: I selected the Mediawiki appliance from a drop-down menu of supported Web applications and chose a small instance size. I had to provide passwords for the Mediawiki instance’s MySQL and admin accounts, even though I intended to replace them through the restore operation.
Once my Mediawiki server was up, I connected to it via SSH and ran the TKLBAM-restore command to restore the backup I’d created of my vSphere-hosted instance. Following a reboot of the virtual server, my Mediawiki instance ran on EC2 with all the same files, data and user accounts I’d configured locally.
The console for launching and managing EC2 instances itself is fairly straightforward. There are controls for restarting or terminating running instances, viewing instance details and console output, and checking whether backups are enabled.
I was interested to find a utility in the Turnkey Linux Hub interface for configuring the security policies that control network access for EC2 instances. I could also add an elastic IP address (one that persists across reboots) and add an EBS (Elastic Block Store) volume (similarly persisting) from this console.