blob: e1069dd0599b40154808b6d84afc790f2c5135d2 [file] [log] [blame] [view]
<!---
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
--->
Abstract
========
This document is the Software Manual for EC2Stack. The Software user
manual instructs how to install and use the EC2Stack from a user's perspective.
Glossary
========
Amazon EC2 - A web service that provides resizable compute capacity in
the cloud.
Apache Cloudstack - Open source cloud computing software for creating,
managing, and deploying infrastructure cloud services.
Puppet: - IT automation software that helps system administrators manage
infrastructure throughout its lifecycle, from provisioning and
configuration to orchestration and reporting.
Python package index - Official third-party software repository for the
Python Programming language.
Vagrant - Tool for building complete development environments.
1 Introduction
==============
1.1 Intended readership
------------------------
This document covers the use for the following users of EC2Stack:
- The User.
1.2 Applicability
-----------------
This software user manual applies to EC2Stack, version 0.7.
1.3 Purpose
-----------
The purpose of the software user manual is to assist:
- Users installing and configuring EC2Stack.
1.4 How to use this document
----------------------------
Section 2 includes an overview of EC2Stack from a user perspective. This
covers installation of EC2Stack, its configuration and starting it.
Section 3 includes information for a developer. This covers installation
for development purposes, git repository location, test execution and
the automated vagrant development environment.
2 User Information
==================
2.1 Overview
------------
EC2Stack implements an API layer that sits on top of the Apache
Cloudstack API. This API layer attempts to handle requests designed for
the Amazon Web Services (AWS) Elastic Compute (EC2) API. It achieves
this by retrieving EC2 requests, converting them to Apache Cloudstack
requests and parsing the Apache Cloudstack responses into EC2 responses.
2.2 Required dependencies
-------------------------
In order to run EC2Stack your machine will need Python 2.7 installed.
EC2Stack will run best on a Linux or BSD based operating system.
2.3 Installing the software
---------------------------
EC2Stack is available on the python package index (pip). If your machine
has pip installed you can install EC2Stack by executing:
```
$ pip install ec2stack
```
Alternatively, you may install EC2Stack via a tar.gz archive:
```
$ wget https://pypi.python.org/packages/source/e/ec2stack/ec2stack-0.1.tar.gz
```
```
$ tar xf ec2stack-0.1.tar.gz && cd ec2stack-0.1.tar.gz
```
```
$ python setup.py install
```
2.4 Configuration
-----------------
Before you can start EC2Stack it must be configured. To so do run:
```
$ ec2stack-configure
```
You can configure a profile of your choice with the optional -p or --profile flag
```
$ ec2stack-configure -p exampleprofile
```
If you don't specify a profile, ec2stack-configure will default to initial
You can configure an advanced profile with
```
$ ec2stack-configure -a True
```
Launching ec2stack-configure will prompt you for various configuration options.
```
EC2Stack bind address [0.0.0.0]:
```
Binds EC2Stack to the supplied IP address. If left unset EC2Stack will
bind to all IP addresses assigned to the machine.
```
EC2Stack bind port [5000]:
```
Binds EC2stack to the supplied port. If left unset EC2Stack will port to
port 5000.
```
Cloudstack host [localhost]:
```
This is the hostname of the Apache Cloudstack server you wish to run
EC2Stack on-top off. If left unset EC2Stack will use localhost.
```
Cloudstack port [8080]:
```
This is the port of the Apache Cloudstack server you wish to run
EC2Stack on-top off. If left unset EC2Stack will use 8080.
```
Cloudstack protocol [http]:
```
This is the protocol EC2Stack should use for connecting to the specified
Apache Cloudstack API. If left unset EC2Stack will use http.
```
Cloudstack path [/client/api]:
```
This is the path of the Apache Cloudstack API that EC2Stack should
query. If left unset EC2Stack will use /client/api
```
Cloudstack custom disk offering name [Custom]:
```
This is the name of a disk offering configured on your Apache Cloudstack
server that allows for custom disk sizes to set by the user. If left
unset EC2Stack will use Custom.
```
Cloudstack default zone name:
```
This is the zone you wish EC2Stack to use on your Apache Cloudstack
infrastructure should the end user not of set a zone within their
request. This field is required.
```
Do you wish to input instance type mappings? (Yes/No): y
Insert the AWS EC2 instance type you wish to map: m1.small
Insert the name of the instance type you wish to map this to: micro
```
This allows you to map EC2 instance types to Apache Cloudstack service
offerings.
```
Do you wish to input resource type mappings for tag support? (Yes/No): y
Insert the Cloudstack resource id you wish to map: examplevirtualmachineid
Insert the Cloudstack resource type you wish to map this to: UserVm
```
This allows you to use tag related actions.
2.5 Running
-----------
To run EC2stack execute the following command:
```
$ ec2stack
```
You can launch ec2stack using a configuration profile created earlier using the optional -p or --profile flag
```
$ ec2stack -p exampleprofile
```
EC2Stack will start up and bind to the supplied IP address and port.
2.6 Initial user registration
-----------------------------
Before EC2Stack can handle user requests the user must register their
API Key and Secret Key.
To register a secert key execute ec2stack-register:
```
$ ec2stack-register ec2stack_server_address api_key secret_key
```
To remove a secret key execute ec2stack-remove:
```
$ ec2stack-remove ec2stack_server_address api_key secret_key
```