The CloudMux project provides a RESTful service layer for the management of multiple public/private cloud backends. The JSON-over-REST services abstract many of the details of calling specific cloud APIs. The JSON models returned are decorated with additional properties when supported by the cloud, or returned with minimal properties for a base IaaS cloud. CloudMux maintains an internal datastore with cloud definitions and cloud credentials, and makes native calls against the cloud on behalf of a user.
CloudMux currently supports the following clouds:
- Amazon (AWS)
- OpenStack (Essex & Grizzly)
- Google Compute Engine (GCE)
-
Make sure you have ruby 1.9.2 or 1.9.3 and mongodb installed.
-
Create a ruby environment file and source with the following contents (edit your mongo user and password):
-
STACK_PLACE_SERVICE_ENDPOINT=http://localhost:9292
-
MONGO_URI=mongodb://MONGOUSER:MONGOPASSWORD@localhost:27017
-
RACK_ENV=development
-
RAILS_ENV=development
-
export STACK_PLACE_SERVICE_ENDPOINT MONG_URI RACK_ENV RAILS_ENV
source cloudmux.env
-
Install nokogiri dependencies on the system (below is for Ubuntu/Debian systems. Reference Installing Nokogiri for others):
sudo apt-get install libxslt-dev libxml2-dev
-
Install Gem dependencies, cd to the CloudMux directory and run (if bundler is not install run
gem install bundler
):bundle install
-
Seed mongodb, from the CloudMux directory run:
rake db:seed
-
You are now ready to host CloudMux. This can simple be started from the CloudMux directory by running:
sh script/start_cloudmux.sh
or you can setup through an HTTP server (e.g. Apache w/ Passenger)