sahara/doc/source/userdoc/installation.guide.rst
Trevor McKay 8d3ecbe7ff Add a brief description of the default template mechanism
Change-Id: I6455442404c8d9074c8b4cd30b4624d0dde05514
2015-04-14 11:44:24 -04:00

7.2 KiB

Sahara Installation Guide

We recommend installing sahara in a way that will keep your system in a consistent state. We suggest the following options:

  • Install via Fuel
  • Install via RDO
  • Install into a virtual environment

To install with Fuel

  1. Start by following the MOS Quickstart to install and setup OpenStack.
  2. Enable the sahara service during installation.

To install with RDO

  1. Start by following the RDO Quickstart to install and setup OpenStack.
  2. Install sahara:
# yum install openstack-sahara
  1. Configure sahara as needed. The configuration file is located in /etc/sahara/sahara.conf. For details see Sahara Configuration Guide <configuration.guide>
  2. Create the database schema:
# sahara-db-manage --config-file /etc/sahara/sahara.conf upgrade head
  1. Go through common_installation_steps and make any necessary changes.
  2. Start the sahara-all service:
# systemctl start openstack-sahara-all
  1. (Optional) Enable sahara to start on boot
# systemctl enable openstack-sahara-all

To install into a virtual environment

  1. First you need to install a number of packages with your OS package manager. The list of packages depends on the OS you use. For Ubuntu run:
$ sudo apt-get install python-setuptools python-virtualenv python-dev

For Fedora:

$ sudo yum install gcc python-setuptools python-virtualenv python-devel

For CentOS:

$ sudo yum install gcc python-setuptools python-devel
$ sudo easy_install pip
$ sudo pip install virtualenv
  1. Setup a virtual environment for sahara:
$ virtualenv sahara-venv

This will install a python virtual environment into sahara-venv directory in your current working directory. This command does not require super user privileges and can be executed in any directory where the current user has write permissions.

  1. You can install the latest sahara release from pypi:
$ sahara-venv/bin/pip install sahara

Or you can get a sahara archive from http://tarballs.openstack.org/sahara/ and install it using pip:

$ sahara-venv/bin/pip install 'http://tarballs.openstack.org/sahara/sahara-master.tar.gz'

Note that sahara-master.tar.gz contains the latest changes and might not be stable at the moment. We recommend browsing http://tarballs.openstack.org/sahara/ and selecting the latest stable release.

  1. After installation you should create a configuration file from the sample file located in sahara-venv/share/sahara/sahara.conf.sample-basic:
$ mkdir sahara-venv/etc
$ cp sahara-venv/share/sahara/sahara.conf.sample-basic sahara-venv/etc/sahara.conf

Make any necessary changes to sahara-venv/etc/sahara.conf. For details see Sahara Configuration Guide <configuration.guide>

Common installation steps

The steps below are common to both the RDO and virtual environment installations of sahara.

  1. If you use sahara with a MySQL database, then for storing big job binaries in the sahara internal database you must configure the size of the maximum allowed packet. Edit the my.cnf file and change the max_allowed_packet parameter as follows:
...
[mysqld]
...
max_allowed_packet          = 256M

Then restart the mysql server to ensure these changes are active.

  1. Create the database schema:
$ sahara-venv/bin/sahara-db-manage --config-file sahara-venv/etc/sahara.conf upgrade head
  1. To start sahara call:
$ sahara-venv/bin/sahara-all --config-file sahara-venv/etc/sahara.conf
  1. For sahara to be accessible in the OpenStack Dashboard and for python-saharaclient to work properly you must register sahara in the Identity service catalog. For example:
keystone service-create --name sahara --type data-processing \
    --description "Sahara Data Processing"

keystone endpoint-create --service sahara --region RegionOne \
    --publicurl "http://10.0.0.2:8386/v1.1/%(tenant_id)s" \
    --adminurl "http://10.0.0.2:8386/v1.1/%(tenant_id)s" \
    --internalurl "http://10.0.0.2:8386/v1.1/%(tenant_id)s"
  1. For more information on configuring sahara with the OpenStack Dashboard please see dashboard.guide.

Optional installation of default templates

Sahara bundles default templates that define simple clusters for the supported plugins. These templates may optionally be added to the Sahara database using a simple CLI included with Sahara.

The default template CLI is described in detail in a README file included with the Sahara sources at <sahara_home>/db/templates/README.rst but it is summarized here.

Flavor id values must be specified for the default templates included with Sahara. The recommended configuration values below correspond to the m1.medium and m1.large flavors in a default OpenStack installation (if these flavors have been edited, their corresponding values will be different). Values for flavor_id should be added to /etc/sahara/sahara.conf or another configuration file in the sections shown here:

[DEFAULT]
# Use m1.medium for {flavor_id} unless specified in another section
flavor_id = 2

[cdh-5-default-namenode]
# Use m1.large for {flavor_id} in the cdh-5-default-namenode template
flavor_id = 4

[cdh-530-default-namenode]
# Use m1.large for {flavor_id} in the cdh-530-default-namenode template
flavor_id = 4

The above configuration values are included in a sample configuration file at <sahara_home>/plugins/default_templates/template.conf

The command to install all of the default templates is as follows, where $TENANT_ID should be a valid tenant id and the above configuration values have been set in myconfig:

$ sahara-templates --config-file /etc/sahara/sahara.conf --config-file myconfig update -t $TENANT_ID

Help is available from the sahara-templates command:

$ sahara-templates --help
$ sahara-templates update --help

Notes:

Ensure that your operating system is not blocking the sahara port (default: 8386). You may need to configure iptables in CentOS and other Linux distributions to allow this access.

To get the list of all possible options run:

$ sahara-venv/bin/python sahara-venv/bin/sahara-all --help

Further, consider reading overview for general sahara concepts and plugins for specific plugin features/requirements.