From the project
Announcing public API for TurnKey Hub
More power, control, flexibility and automation of cloud servers.
Alan Kay once said: "Simple things should be simple, complex things should be possible". We live by those words, and I think we've done a pretty good job up until now.
The Hub makes launching and managing instances on Amazon EC2 really simple, but the one thing that has been missing is a solution to make complex things possible - i.e., programmatic control.
Which brings me to todays announcement of the TurnKey Hub API, and HubTools - Python API bindings and CLI tools.
Some examples to wet your appetite:
Launch a new TurnKey Core appliance in the cloud:
$ hub-launch core
And of course, preseeding is supported, for example:
$ hub-launch lamp --db-pass=foobar
But wait, there's more. Lets say you are developing a new Wordpress website in a local VM which is backed up using TKLBAM, with a backup ID of 2. Restoring the backup to a new cloud server is as simple as:
$ hub-launch 2
So how do you know what backups you have available? Which appliances are available and their preseeding options? The status and related information of your cloud servers?
It's easy:
hub-list-backups hub-list-appliances hub-list-servers
If the included CLI tools aren't enough and you need more power, use the Python bindings to develop your own code. It's really simple.
For example, lets say I wanted to launch 10 TKL Core servers:
for i in range(1, 11):
hub.servers.launch("core", label="TurnKey Core %s" % i)
There is so much you can do with HubTools, it's only limited to your imagination.
The full documentation is available here. If you don't have a free Hub account yet, get one here.
Also note that we're using the Hub internally to help develop and test TurnKey, so we're probably using it more than the typical user and run into its limits sooner. We're scratching our own itch, and the community benefits from that.