Skip to content
Snippets Groups Projects
README.md 4.29 KiB
Newer Older
Quentin Machu's avatar
Quentin Machu committed
# puppet-iaas

#### Table of Contents

1. [Overview](#overview)
2. [Module Description - What the module does and why it is useful](#module-description)
3. [Setup - The basics of getting started with iaas](#setup)
    * [Setup requirements](#setup-requirements)
Alessandro Costantini's avatar
Alessandro Costantini committed
    * [Beginning with iaas module](#beginning-with-iaas-module)
Quentin Machu's avatar
Quentin Machu committed
4. [Usage - Configuration options and additional functionality](#usage)
Alessandro Costantini's avatar
Alessandro Costantini committed
    * [Hiera configuration](#hiera-configuration)
    * [Site configuration](#site-configuration)
    * [Node balancing](#node-balancing)
5. [References](#references)
6. [Limitations](#limitations)
Quentin Machu's avatar
Quentin Machu committed

## Overview

Alessandro Costantini's avatar
Alessandro Costantini committed
This Puppet module allows deploying a highly-available installation of OpenStack Juno on commodity servers supporting multiple networks architecture.

The present modlue is part of the outcomes of the Open City Paltform ([OCP](http://www.opencityplatform.eu/)) National Project.

The iaas module derive fron the puppet-iaas module authored by Qunentin Machu.
Quentin Machu's avatar
Quentin Machu committed

## Module Description

Alessandro Costantini's avatar
Alessandro Costantini committed
Different types of nodes are created by the deployment :
Quentin Machu's avatar
Quentin Machu committed

Alessandro Costantini's avatar
Alessandro Costantini committed
* Service nodes hosting databases, message queues and load balancers [installation guide](https://support.ba.infn.it/redmine/projects/automaticocp/wiki/Keepalived_HAProxy_MySQLPercona_e_RabbitMQ_in_HA_su_testbed_Puppet)
* Storage nodes hosting volumes, image storage using CEPH [installation guide](https://support.ba.infn.it/redmine/projects/automaticocp/wiki/CEPHPuppetIAAS)
* Controller nodes hosting API services and OpenStack core services [installation guide](https://support.ba.infn.it/redmine/projects/automaticocp/wiki/OnlyControllerPuppetIAAS)
* Network nodes hosting L2/L3 (Open vSwitch) routing and DHCP services [installation guide](https://support.ba.infn.it/redmine/projects/automaticocp/wiki/NetworkPuppetIAAS)
* Compute nodes to run guest operating systems [installation guide](https://support.ba.infn.it/redmine/projects/automaticocp/wiki/ComputePuppetIAAS)
Quentin Machu's avatar
Quentin Machu committed

## Setup

### Setup Requirements
Alessandro Costantini's avatar
Alessandro Costantini committed
This module assumes nodes running Ubuntu 14.04 (Trusty) with either Puppet Enterprise or Puppet. 

More information related to the setup requirement are available in the present guide [Setup requirements](https://support.ba.infn.it/redmine/projects/automaticocp/wiki/TestbedPuppet)
Quentin Machu's avatar
Quentin Machu committed

This module depends on Hiera.
Alessandro Costantini's avatar
Alessandro Costantini committed
### Beginning with iaas module
To ensure high availability, three Service nodes, three Storage nodes, two Controller nodes and two Network nodes must be deployed, be sure to have ten available servers. In addition, a number of Compute nodes are also to be available for the deployment.
Quentin Machu's avatar
Quentin Machu committed

## Usage

Alessandro Costantini's avatar
Alessandro Costantini committed
The nodes should be deployed in the following order : Service nodes, Storage nodes, Controller nodes, Network nodes and then Compute nodes.
Quentin Machu's avatar
Quentin Machu committed

Alessandro Costantini's avatar
Alessandro Costantini committed
### Hiera Configuration
The first step to using the iaas module is to configure hiera with specific settings pointing to your installation. 
In this module, the `examples` directory contains sample 'common.yaml' file with all of the settings required by this module.
These configuration options include Service settings, Storage settings, Network settings, OpenStack core settings and related passwords.
If any of these settings are undefined or not properly set, your deployment may fail. 
Quentin Machu's avatar
Quentin Machu committed

### Site configuration
Alessandro Costantini's avatar
Alessandro Costantini committed
The second step to using the iaas module is to configure manifest file with specific settings pointing to your installation. 
In this module, the `examples` directory contains sample 'site.pp' file according to your deployment.
These configuration options include Service variables and node-specific configuration settings.
If any of these settings are undefined or not properly set, your deployment may fail.
Quentin Machu's avatar
Quentin Machu committed

Alessandro Costantini's avatar
Alessandro Costantini committed
### Node balancing
Quentin Machu's avatar
Quentin Machu committed

Alessandro Costantini's avatar
Alessandro Costantini committed
In order to balance requests across the different nodes, HAproxy and Keepalived have to be configured properly. Make sure also that node hostname con be asily resolved.
Quentin Machu's avatar
Quentin Machu committed

Alessandro Costantini's avatar
Alessandro Costantini committed
## References
Quentin Machu's avatar
Quentin Machu committed

Alessandro Costantini's avatar
Alessandro Costantini committed
In order to devop and test the module and its components, the following official guides and sites have been considered:
* [OpenStack installation guide (Ubuntu 14.04)](http://docs.openstack.org/juno/install-guide/install/apt/content/)
* [OpenStack High Availability Guide](http://docs.openstack.org/ha-guide/)
* [Puppetlabs](https://docs.puppetlabs.com/)
* [Stackforge](https://forge.puppetlabs.com/stackforge)
* [Percona](https://www.percona.com/)
* [RabbitMQ](https://www.rabbitmq.com/)
Quentin Machu's avatar
Quentin Machu committed

## Limitations

Alessandro Costantini's avatar
Alessandro Costantini committed
This module is still under development.