Dewpoint: a command-line tool for cloud computing
In September of last year I was on sabbatical and doing some research into cloud hosting. During my experimentation, I began looking for a good command-line tool for interacting with cloud server instances. To my surprise, I wasn't able to find one for the provider I was working with, Rackspace Cloud. What I did find was an excellent abstraction library called libcloud.
What libcloud offers is a consistent Python API for performing common cloud server operations across a wide variety of providers. You can create new instances, destroy instances, list the instances you control, and so on. It's a powerful tool and you should check it out: http://incubator.apache.org/libcloud/
However, it still wasn't exactly what i was looking for. I wanted a tool that worked in a similar fashion to a command-line version control or package management program. So, I decided to write one. After all, about 99% of the work was already done for me by libcloud.
The result is a program called Dewpoint (hey, most of the other cloud or water vapor related names have already been snagged by startups). With Dewpoint, you create a simple configuration file in ~/.dewpoint/dewpoint.ini which defines your access information for your provider. That configuration file might look something like this:
Then, you can easily work with your cloud server nodes at the command line like this:
Dewpoint is open source, under the Apache License Version 2.0 (just like libcloud itself). It's written in Python, and hosted on github at https://github.com/secondstory/dewpoint. So far it's only been tested against Rackspace Cloud, because that's what I use it for, but I believe the interface should be capable of supporting other libcloud-supported providers without too much additional work.
If you like what you see, please use it and let me know what you think! Even better, fork it and add support for your favorite cloud provider.
