Overview
This simple project uses the EC2 APIs and email to allow multiple users to start and stop instances on EC2, without having the primary credentials for the AWS account. You may find the code handy for classroom or conference environments, where users need a quick, easy way to start and stop instances, and still have ssh access and complete control over the boxes.
The project is written in Python using the Pylons application framework and the Boto libarary. Fabulatr is licensed under the BSD software license.
Installation
You'll need to have an Amazon Web Services account to use this code. While it's not required, ElasticFox would be handy for maintaining the list of keys generated by the program and shutting down launched instances.
You'll also need a public web server with Pylons installed on it, and a mail server through which you can send email. Obviously these can be hosted on EC2, if you so desire.
There's also a blurry video on installing Fabulatr over on Vimeo.
Install Pylons
The Pylons site has a whole section on installing Pylons. If you have a decently up-to-date server, with easy_install installed, you can run:
$ easy_install Pylons==0.9.6.2
If you don't have easy_install, you can download the setup file from http://peak.telecommunity.com/dist/ez_setup.py and then run:
$ python ez_setup.py Pylons==0.9.6.2
Install Fabulatr
You'll need to have easy install installed. You install Fabulatr using the CheeseShop by running:
easy_install fabulatr==0.0.1
Alternately, you can download the latest build of Fabulatr from here, or in the 'downloads' tab above.
Once downloaded, you'll need to install it:
$ easy_install -f fabulatr-0.0.=1.egg fabulatr==0.0.1
You may need to have the correct permissions to install the package on your server.
Configure
Pylons uses user level configuration files for a given package. You can create your configuration file by running:
paster make-config fabulatr production.ini
This gives you a production.ini file in the current directory. You'll want to edit this file to enter the settings for your email server, and EC2 account:
# settings for sending email only from_name = Maxwell Waldo from_address = maxwell@foobar.com smtp_server = smtp.gmail.com smtp_login = maxwell smtp_password = foobar server_name = www.foobar.com:5000 # settings for EC2 account aws_access_key = 00000000000000000000 aws_secret_access_key = UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ami_number = ami-179e7a7e
The AMI number can be left alone, or you can use a custom instance. You can find a list of current images over on Alestic.
Running
Running the instance is easy:
paster serve production.ini
Navigate to your fabulatr by entering something like http://foobar.com:5000.
Going from Here
If you'd like more features, have a suggestion or want to help out, you can drop me a note at kordless at gmail.com.