As a framework that is compatible with Amazon's EC2 and S3 interfaces, Eucalyptus can be used with many of the tools that have been developed for EC2 and S3. In addition to the tools created and officially supported by the Eucalyptus Team, Euca2ools, on the left you will find for your convenience a listing of EC2 and S3 client tools and libraries compatible with Eucalyptus.
Interested in seeing your client tool or library added to this list? Contact us
The following tools are compatible with Amazon EC2. These tools are designed for control and management of VM instances, EBS volumes, elastic IPs, and security groups and can be used with both EC2 and Eucalyptus.
The following Amazon EC2 command line tools are entirely compatible with Eucalyptus (more recent versions may or may not be compatible with Eucalyptus) :
SUSE Studio and Kiwi, the appliance creation tools from Novell, can be used to create customized OpenSUSE and SLES images that run on top of Eucalyptus:
http://en.opensuse.org/SDB:KIWI_Cookbook_Own_Cloud
The first section describes how to create Eucalyptus front-end and node appliance images, and the second part, 1.4, describes how to host OpenSUSE images on your Eucalyptus cloud.
| Author | Mitch Garnaat, et al |
| Homepage | Google Code Page |
| Documentation | API Documentation, Wiki |
| Discussion | via Google Groups |
| Download | via Google Code |
| Source | via Google Code |
| Version | 1.8d |
| License | MIT |
Install boto, setup the environment, and so on.
As root, python setup.py install
Eucalyptus EC2 interface
region = RegionInfo(name="eucalyptus", endpoint="hostname")
connection = boto.connect_ec2(aws_access_key_id="access key",
aws_secret_access_key="secret",
is_secure=False,
region=region,
port=8773,
path="/services/Eucalyptus")
#Run commands
zones = connection.get_all_zones()
where, "hostname" is the name of the Eucalyptus front end.
For instance, if EC2_URL is set to http://192.168.9.1:8773/services/Eucalyptus,
hostname should be "192.168.9.1"
Eucalyptus S3 interface
calling_format=boto.s3.connection.OrdinaryCallingFormat()
connection = boto.s3.Connection(aws_access_key_id="access key",
aws_secret_access_key="secret",
is_secure=False,
host="hostname",
port=8773,
calling_format=calling_format,
path="/services/Walrus")
#Run commands
bucket_instance = connection.get_bucket(bucket)
keys = bucket.get_all_keys()
for k in keys:
#do something
Interacting with Amazon EC2
Replace "hostname" in the above examples with "ec2.amazonaws.com" or "s3.amazonaws.com" and path with "/"
RightScale Inc. announced on November 4th, 2008 support for Eucalyptus-based cloud installations. As a public demonstration of this capability, the Eucalyptus Community Cloud (ECC) can be accessed via the Eucalyptus Edition of the RightScale Platform.
Just as the ECC itself, this demonstration is for evaluation purposes only and thus, the functionality in the Eucalyptus Edition is limited. Specifically, the use of this service is subject to the following restrictions and limitations:
(See sections 1 and 2 of the Eucalyptus User's Guide for an illustration.)
If all goes well, you should be logged into RightScale's Platform after completing the above steps. ECC instances can now be managed and accessed both using the RightScale Platform and other EC2-compatible tools.
There are two steps you may want to complete before attempting to start an instance:
To add a key, go to Design > Eucalyptus > SSH Keys and click the yellow Add Key button in the top right corner. You can name it as you wish. Once the key is generated, if you want to use it from outside the Platform (say, to log into your instance using ssh in a terminal), you can, at any time, cut-and-paste the Private Key contents into a file.
To start an instance, go to Design > Eucalyptus > Images and click on the green play button next to any available image. The New Instance form will be pre-filled with adequate values, so the only thing you may want to change before pressing Launch is the Nickname of the instance. If the Platform responds with There are not enough nodes to fulfill this request in the zone., then, please, try again in a little bit.
To terminate an instance, click the red stop button next to the instance either in Home > Dashboard or in Manage > Servers > Active Servers.
Thanks for trying Eucalyptus and RightScale!
| Author | RightScale |
| Homepage | RightScale Gems Home, RubyForge Project Page |
| Documentation | API Documentation |
| Download | via RubyForge or sudo gem install right_aws |
| Source | via RubyForge |
| Version | 0.8.x-1.10.0 |
| License | MIT |
Here we use irb to interactively use the right_aws gem to interact with Eucalyptus.
Install right_aws, setup the environment, and start irb
~> sudo gem install right_aws ~> source ~/.euca2/eucarc ~> irb
Setup the ruby environment and use the right_aws library to interact with Eucalyptus.
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'right_aws'
=> true
irb(main):003:0> @euca = = RightAws::Ec2.new(ENV['EC2_ACCESS_KEY'],ENV['EC2_SECRET_KEY'])
irb(main):004:0> @euca.describe_images
I, [2009-07-13T11:54:55.883207 #9406] INFO -- : Opening new HTTP connection to 192.168.7.7:8773
=> [{:aws_id=>"eki-3313191F", :aws_image_type=>"kernel", :aws_owner=>"admin", :aws_location=>"my-kernel/vmlinuz.manifest.xml", :aws_state=>"available", :aws_is_public=>true, :aws_architecture=>"x86_64"}, {:aws_id=>"eri-A3501A6C", :aws_image_type=>"ramdisk", :aws_owner=>"admin", :aws_location=>"my-ramdisk/initrd.img.manifest.xml", :aws_state=>"available", :aws_is_public=>true, :aws_architecture=>"x86_64"}, {:aws_id=>"emi-C6E71A64", :aws_image_type=>"machine", :aws_owner=>"admin", :aws_location=>"euca-my-image/disk.img.manifest.xml", :aws_kernel_id=>"eki-3313191F", :aws_state=>"available", :aws_ramdisk_id=>"eri-A3501A6C", :aws_is_public=>true, :aws_architecture=>"x86_64"}]
irb(main):009:0>
| Author | David Kavanagh, et al |
| Homepage | Google Code Project Page |
| Documentation | API Documentation |
| Discussion | via Google Groups |
| Download | via Google Code |
| Source | via Google Code (svn) |
| Version | 1.5.x |
| License | Apache License 2.0 |
Jec2 ec2 = new Jec2(props.getProperty("aws.accessId"),
props.getProperty("aws.secretKey"), false, "your-host", 8773);
ec2.setResourcePrefix("/services/Eucalyptus");
ec2.setSignatureVersion(1);
| Author | Frank Bitzer |
| Homepage | http://cloud42.net/ |
| Documentation | FAQs, Installation, and JavaDocs |
| Discussion | Contact Form |
| Download | via Cloud42.net |
| Source | via Cloud42.net |
| Version | 1.0.0 |
| License | The GNU Lesser General Public License v3 |
| Author | Neill Turner |
| Homepage | http://www.ec2dream.com/ |
| Documentation | FAQs, Installation, and JavaDocs |
| Discussion | Contact Form |
| Download | via EC2Dream.com |
| Source | via EC2Dream.com |
| Version | 0.92 |
| License | Apache 2.0 |
| Author | Manoj@AWS |
| Homepage | AWS Developer Tools Project Page |
| Documentation | Notes |
| Discussion | via AWS Developer |
| Download | via AWS Developer |
| Source | [svn co https://elasticfox.svn.sourceforge.net/svnroot/elasticfox elasticfox via SourceForge (svn)] |
| Version | 1.7.x |
| License | Apache License 2.0 |
Click on Regions. Set Region Name to whatever you wish. Set Endpoint URL to http://<cloud front end ip>:8773/services/Eucalyptus.
Click on Credentials. Add a Eucalyptus user account. AWS Access Key = Query Id, AWS Secret Key = Secret Key.
Sometimes, you might have to restart Elasticfox for changes to take effect.
| Author | CSS Corp. |
| Homepage | Hybridfox at Google code |
| Documentation | Wiki at Google code |
| Discussion | Google groups |
| Download | list |
| Source | instructions |
| Version | 1.7.000068 |
| License | Apache License 2.0 |
Click on Regions. Set Region Name to whatever you wish. Set Type to "Eucalyptus" and set Endpoint URL to http://<cloud front end ip>:8773/services/Eucalyptus.
Click on Credentials. Add a Eucalyptus user account. AWS Access Key = Query Id, AWS Secret Key = Secret Key. Preferred Region can be set to your Eucalyptus endpoint, which makes it easier if you regularly use different clouds since this Hybridfox will select this endpoint automatically when the account is selected.
Sometimes, you might have to restart Firefox for changes to take effect.
NOTES: if you previously had Elasticfox installed, you may have to clean up your old preferences. One way to do it is to find your prefs.js and, while firefox is disabled, to remove all the references to ec2 inside it. On Linux systems you may find the preferences under $USER/.mozilla/*
| Author | Tomofumi Tanaka and Takahiro Shida |
| Homepage | via Sourceforge Japan |
| Documentation | Wiki |
| Discussion | via SourceForge Japan |
| Download | via SourceForge Japan |
| Source | via SourceForge Japan (svn) |
| Version | 0.2.1 |
| License | Eclipse Public License |
NOTE: The contents of this document were derived from http://sourceforge.jp/projects/eclipse-aws/wiki/FrontPage#h2-Download, retreived on Jul 17, 2009.
Download executable binary here
This tool wraps ec2-api-client. The ec2-api-client is not open source license. So, you should download and install the ec2-api-client.
When extract the Tanacasino. The directory structure is following.
Copy the ec2-api-client libraries to tAWS/plugins/jp.co.intellilink.aws.api.eucalyptus/lib
File->Preference->AWS shows EC2 client setting.
If you use Eucalyptus, please select ec2-api-tools and fill the service URL/private key/X509 cert
The following tools are compatible with Amazon S3. These tools are designed for interacting with S3 bucket storage and are entirely compatible with Eucalyptus Walrus.
Author CloudBerry Lab
Homepage www.cloudberrylab.com
Documentation documentation
Discussion forum
Download download
CloudBerry Explorer makes managing files in Walrus and Amazon S3 storage easy. By providing a user interface to Walrus and Amazon S3 accounts, files, and buckets, CloudBerry lets you manage your files on cloud just as you would on your own local computer.
| Author | Michal Ludvig |
| Homepage | s3cmd |
| Documentation | http://s3tools.org/s3cmd |
| Discussion | forum |
| Download | downloads |
| Source | subversion |
| Version | 0.9.8.3 |
| License | GPL version 2 |
Pre-requisites: python and python-openssl.
To use s3cmd with Walrus, download version 0.9.8.3 from the s3cmd sourceforge site and untar it.
Please copy and paste the patch from using the following link (into a file called s3cmd-0.9.8.3.patch).
Change dir to s3cmd-0.9.8.3. Apply the patch (patch -p1 < s3cmd-0.9.8.3.patch).
Create a config file for Walrus (called s3cfg.walrus in the examples below). Please use the following sample config as a guideline.
If you also wish to interact with Amazon's S3, you will need another config file. Please use the following example.
s3cmd -c s3cfg.walrus mb s3://testbucket
s3cmd -c s3cfg.walrus rb s3://testbucket
s3cmd -c s3cfg.walrus ls
s3cmd -c s3cfg.walrus ls s3://testbucket
s3cmd -c s3cfg.walrus put <filename> s3://testbucket
s3cmd -c s3cfg.walrus get s3://testbucket/<key> <filename>
s3cmd -c s3cfg.walrus del s3://testbucket/<key>
Please use s3cmd -h for more options.
S3 Curl is a tool that allows users to interact with Walrus by adding security parameters as curl headers.
You may create, delete, list buckets, put, get, delete objects, set access control policies, etc. Please refer to the Amazon S3 documentation for the S3 interface specification.
You will need the perl-Digest-HMAC package for S3 Curl, if it is not already installed on your system.
You will need to modify the file s3curl.pl in your favorite editor to change the hostname endpoint.
For example, change
my @endpoints = ( 's3.amazonaws.com' );
to
my @endpoints = ( 'your-host' );
where, your-host is the IP or the hostname on which Walrus runs. For authentication to succeed, it is crucial that your-host is the same as the host portion of the $S3_URL environment variable set by eucarc.
Be sure to source your 'eucarc' file before running the commands below.
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY <curl options>
It is preferable to add your credentials to the ".s3curl" config file. Please read the README file bundled with s3curl for details.
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --put /dev/null -- -s -v $S3_URL/bucketName
where bucketName is the name of the bucket that you want to create.
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --put <filename> -- -s -v $S3_URL/bucketName/objectName
where objectName is the name of the object that you want to create.
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --head -- -s -v $S3_URL/bucketName/objectName > object.head cat object.head
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName/objectName > object
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --del -- -s -v $S3_URL/bucketName/objectName
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --del -- -s -v $S3_URL/bucketName
Note that, according to the S3 specification, a bucket needs to be empty before it can be deleted.
You may pipe the output through "xmlindent" (you might need to install it, if it is not already installed on your system).
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName?acl | xmlindent > bucket.acl
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName | xmlindent > bucket.list
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL | xmlindent > bucketlisting
| Author | rrizun |
| Homepage | s3fs |
| Documentation | wiki |
| Discussion | group |
| Download | download |
| Source | svn info |
| Version | r177 |
| License | GNU General Public License v2 |
patch -p1 < s3fs-r177-patch
Pre-requisites: libfuse-dev libcurl4-openssl-dev libxml2-dev
Run make (you might get a bunch of warnings).
mkdir test ./s3fs <bucket name> -o accessKeyId=<query id> -o secretAccessKey=<secret key> -o servicepath=/services/Walrus -o host=http://localhost:8773 test
where <bucket name> is an existing bucket name.
cd test; touch foo; ls ; rm foo, etc.
Kill the s3fs daemon to unmount the bucket.
Add "-d" to the end of the s3fs command-line. This will produce debugging output on the command line and will not daemonize s3fs.
Look for errors in cloud-error.log and/or cloud-debug.log.