Euca2ools 3 Installation
========================

This file describes the steps needed to install euca2ools from source.
Your operating system vendor may already offer euca2ools in packaged
form that you can install using yum, apt-get, or a similar tool.


Requirements
------------

Euca2ools currently work with python versions 2.6 and 2.7.  Work is
ongoing to port the suite to version 3.

You must also have the following python libraries installed.  All of
them are available on PyPi:
 - lxml (http://lxml.de/)
 - requestbuilder (https://github.com/boto/requestbuilder)
 - requests (http://www.python-requests.org/)
 - setuptools (https://pypi.python.org/pypi/setuptools)
 - six (http://pythonhosted.org/six/)

euca-get-password requires an openssl executable.

All bundle commands require several executables as well:
 - gzip or pigz
 - openssl >= 1

The euca-bundle-vol command only works on Linux.  It requires the
utilities for creating and managing the filesystem to be bundled
(e.g. mkfs and tune2fs) as well as these additional executables:
 - blkid
 - dd
 - gzip or pigz
 - kpartx
 - losetup
 - mkfs
 - mount
 - openssl >= 1
 - parted
 - rsync
 - sgdisk
 - sync
 - umount

For specific package names for these dependencies, check the
distribution-specific sections below.

Installation
------------

To install from a source tarball:

    $ tar xzf euca2ools-3.1.0.tar.gz
    $ cd euca2ools-3.1.0
    $ python setup.py install

To install directly from git:

    $ git clone git://github.com/eucalyptus/euca2ools
    $ cd euca2ools
    $ python setup.py install

The euca2ools suite also ships with configuration files and certificates
that you may find useful.  To use them we recommend copying them onto
your system like so:

    # mkdir -p /etc/euca2ools
    # cp -R conf/* /etc/euca2ools
    # mkdir -p /usr/share/euca2ools/certs
    # cp -R certs/* /usr/share/euca2ools/certs

For distribution-specific instructions, check the distribution-specific
sections below.


Distribution-specific Instructions
==================================

This section contains distribution-specific instructions and package
lists to assist with installation of euca2ools and its dependencies.


Ubuntu 12.04
------------

Dependency packages:
 - openssl
 - python-dev
 - python-lxml
 - python-requests
 - python-setuptools
 - python-six
 - python-support

python-requestbuilder is not available in Ubuntu 12.04, and must be built
from source or backported from a later version.


Notes for Distributors
======================

euca-bundle-vol
---------------

By default, euca-bundle-vol excludes temporary system files (e.g. /dev
and *.nfs*), files with potentially sensitive data (e.g. *.gpg),
and files with persistent data that should not appear in bundles
(e.g. udev's *-persistent-net.rules).  Since these locations may vary
by operating system, as a distributor you may wish to edit this list by
patching conf/bundle-vol/excludes.  Not including this file at all will
result in no files being excluded by default.  That may not be what your
users expect.

The --generate-fstab option generates a new fstab file based on a
template, which may need to vary, depending on one's choice of cloud or
operating system.  This template appears in conf/bundle-vol/fstab.

On non-Linux platforms we recommend removing euca-bundle-vol altogether.

Paths
-----

The paths euca2ools search by default are as follows:
 - systemwide configuration:  /etc/euca2ools
 - user configuration:  ~/.euca
 - other data:  /usr/share/euca2ools

To change these locations, patch euca2ools/commands/__init__.py and
whatever stock configuration files you include.
