/Kiel

Rake helper to build machine images using EC2 and Capistrano

Primary LanguageRuby

Kiel

Kiel automates the process of creating rake tasks to produce Amazon Machine Images (AMI). The basic idea behind Kiel is that an AMI can be best produced by installing software step by step on a defined base and by having all that steps under source code control. On the way from a base image to the final AMI, Kiel produces a new AMI with every step.

Every task is associated with a single ruby script that will be executed with Capistrano to setup a server started with the AMI produced by the previous task.
Every AMI created by a task is tagged with all git versions of the scripts involved in creating that AMI.

Gem Version Build Status

Installation

To install Kiel:

gem install kiel

To install the lattest version of Kiel from source, download the source, cd into the source directory and use

rake gem
gem install kiel

to install the gem. Use gem doc to build the html documentation, use gem tests to run the tests.

Example

Kiel::image [
        { name: :application, description: 'build the application image' },
        { name: :base_image, description: 'build the base image' },
        :sioux, :boost, :ruby,
        { name: :basics, scm_name: [ 'basics.rb', 'rakefile' ], setup_name: 'basics.rb' }
    ],
    { 
        base_image: 'ami-6d555119', 
        cloud: aws
    }

creates 6 rake tasks, named application, base_image, sioux, boost, ruby and basics. Every task depends on all other task following that task in the list of tasks. When starting the task boost for example, Kiel will determine the git versions of boost.rb, ruby.rb and basics.rb. Then Kiel will connect Amazon to look up the tags added to the AMIs for the 3 steps. If any of the AMIs tags do not fit with the git versions of the script, a new image will be created and tagged.

Dependencies

  • git command line client
  • Capistrano
  • AWS SDK
  • rake (of cause)

Licence

Kiel is licenced under MIT licence.