Skip to content
This repository was archived by the owner on Nov 12, 2021. It is now read-only.
Alexander Birkner edited this page Sep 13, 2016 · 11 revisions

Ruby OpenStack Compute, Object-Store, Block Storage and Network bindings for the OpenStack API. It supports Keystone Authentication (v1.0 and v2.0), Nova and Swift.

Getting Started

To use this gem, the first Step is to install it with gem install openstack or add it to your Gemfile:

gem 'openstack'

Next you need to open a new connection and authenticate on your OpenStack infrastructure. For this, you can use Keystone Identity version 1.0 or version 2.0 with password- or token-authentication. Version 3.0 is not implemented yet.

compute = OpenStack::Connection.create({
    :username => "[email protected]",
    :api_key=>"secureP433word",
    :auth_method=>"password",
    :auth_url => "https://example.com:13327/v2.0/",
    :authtenant_name =>"[email protected]",
    :service_type=>"compute"})

After that, you can use the Compute API (see the :service_type specification in the example above). Keep in mind that you have to open a new connection for different OpenStack projects and different tasks (network, object storage, ...).

compute.servers
=> []

OpenStack core services

OpenStack is composed from various core services (independent projects). What is available for you is dependent on your infrastructure. This gem supports (except Glance) all core services from OpenStack and in addition the widely used extensions.

Nova (Compute)

Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decommissioning of machines on demand. more ...

Extensions

There are various extensions. You can get more information which extensions are installed by using the .api_extensions method on the OpenStack connection object. The following extensions are implemented:

Neutron/Quantum (Network)

Enables network connectivity as a service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachments into them. Has a pluggable architecture that supports many popular networking vendors and technologies. more ...

Swift (Object Storage)

Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale out architecture. Its implementation is not like a file server with mountable directories. more ...

Cinder (Block Storage)

Provides persistent block storage to running instances. Its pluggable driver architecture facilitates the creation and management of block storage devices. more ...

Authors

Initial code checkin on May 23rd 2012 - code refactored from and based on the Rackspace Cloud Servers gem and Rackspace Cloud Files gem. Since Nov 2015 maintained by Marbis GmbH. If you want to contribute code, make sure you read the developer guidelines before.

License

See COPYING for license information.

Clone this wiki locally