Installation
============

General Requirements
--------------------

Batou wants to have as little requirements as possible. However, for the sake
of simplicity we prefer to make some basic choices.

Platforms
~~~~~~~~~

batou is being tested to run on Linux and Mac OS X.

We do *not* support deploying to non-UNIX targets. We *may* support running
:program:`batou remote` on non-UNIX platforms in the future.

batou is written in Python and requires to be run with **Python 2.7**.

.. note:: Even though batou itself uses Python 2.7 -- it makes no assumptions
    about the components you deploy. If you deploy Python applications you can
    use whatever other Python is available or build your own.

Initialization
~~~~~~~~~~~~~~

To run ``batou-init`` you will need:

* Python 2.7
* virtualenv
* Mercurial

Detailed instructions for: :ref:`Debian, Ubuntu, Mint <inst-deb>` |
:ref:`Fedora, openSuse, RHEL, CentOS <inst-rpm>`

Local deployments
~~~~~~~~~~~~~~~~~

To run ``batou local`` you will need:

* Python 2.7
* virtualenv

Detailed instructions for: :ref:`Debian, Ubuntu, Mint <inst-deb>` |
:ref:`Fedora, openSuse, RHEL, CentOS <inst-rpm>`

Remote deployments
~~~~~~~~~~~~~~~~~~

To run ``batou remote`` you will need:

On your local machine:

* Python 2.7
* virtualenv
* Mercurial
* SSH client

On the remote machine:

* Python 2.7
* Mercurial
* SSH server
* virtualenv

Detailed instructions for: :ref:`Debian, Ubuntu, Mint <inst-deb>` |
:ref:`Fedora, openSuse, RHEL, CentOS <inst-rpm>`

Optional requirements
~~~~~~~~~~~~~~~~~~~~~

If you want to make use of batou's feature to maintain your application
:doc:`secrets`, you will need `GnuPG <http://www.gnupg.org/index.de.html>`_ on
both, your local and your remote machine.

Also, depending on the actual components you are going to install, you may need
on your local or remote machine, resp.:

* `git <http://git-scm.com/>`_ if using the :ref:`batou.lib.git.Clone
  <download-git>` component
* `make <http://www.gnu.org/software/make/>`_ if using the
  :ref:`batou.lib.cmmi.Build <cmmi-build>` component
* `nrpe
  <http://exchange.nagios.org/directory/Addons/Monitoring-Agents/NRPE--2D-Nagios-Remote-Plugin-Executor/details>`_
  if using the ``batou.lib.nagios.NRPEHost`` component
* `rsync <http://rsync.samba.org/>`_ if using the :ref:`batou.lib.file.Directory
  <file-directory>` component
* `subversion <http://subversion.apache.org/>`_ if using the
  :ref:`batou.lib.svn.Checkout <download-subversion>` component
* `unzip <http://www.info-zip.org/UnZip.html>`_ and `tar
  <http://www.gnu.org/software/tar/tar.html>`_ if using the
  :ref:`batou.lib.archive.Extract <file-extract>` component

Detailed instructions for: :ref:`Debian, Ubuntu, Mint <inst-deb>` |
:ref:`Fedora, openSuse, RHEL, CentOS <inst-rpm>`

.. _inst-deb:
.. include:: installation-deb.txt
.. _inst-rpm:
.. include:: installation-rpm.txt
