Merlin is a Ruby on Rails application for interacting with and controlling EC2 API compatible clouds, such as Amazon EC2 and Eucalyptus. It provides a web interface for the creation of instances, volumes, and snapshots, and enables fast provisioning of new instances by providing a custom userdata script which the machine prior to running a configuration management system (currently, only Puppet is supported).
Primarily, Merlin is a web interface to Eucalyptus clouds, but it can also be used with AWS (in fact, I do today). Merlin is intended to build on top of a standard cloud interface, giving the user the ability to store and hold advanced metadata on cloud objects. Merlin will keep track of hostnames, instance descriptions, and what have you. Merlin also provides a dirt-simple API that userdata or CLI scripts can use to take certain actions, such as introducing an instance, registering it in DNS, etc.
Currently, Merlin supports the following:
This is still a very immature project (as of March 2011). The UI is atrocious, the code reflects its origins as my first serious Ruby/Rails project, and there are no unit tests or model validations to speak of.
Merlin will not prevent you from shooting yourself in the foot, and if you give it admin access to your Eucalyptus cloud, it may, in fact, encourage such things.
That being said, Merlin is under rapid development, and should be expected to improve rapidly. Work is currently ongoing to make sure the following workflow is fully implemented, to start:
Once this work is done, the first “real” version will be released, and then the project will start using actual migrations, as opposed to simply modifying the existing one over and over. Cough.
Join the Merlin community, by joining our mailing list, checking out our code and filing merge requests and bugs.
Merlin is written by Justin Baugh, and is free
licensed under the GNU Affero General Public License, version 3 or later.
The Merlin logo is Creative Commons Attribution-ShareAlike 3.0 licensed, by Matt Lee, with contributions from the public domain Open Clip Art library.