Requirements
============

Installation Requirements
-------------------------

* A valid `Anaconda Workgroup or Enterprise subscription <https://www.continuum.io/anaconda-subscriptions>`_ and license
* One or more 64-bit Linux machines
* Supported Linux Distributions: RHEL/CentOS 6 and Ubuntu 14
* Each machine should have the following commands installed and available:

  * ``ssh``
  * ``openssl``
  * ``curl``
  * ``md5sum``

Security and Account Requirements
---------------------------------

One of the following configurations can be used during installation:

* Access to the root user with the root password
* Access to the root user with an SSH keypair
* Passwordless SSH/sudo enabled for a user account
* Password-based SSH and passwordless sudo enabled for a user account

The root or user credentials used for installation should match on all of the
nodes.

Python Requirements
-------------------

Anaconda Adam operates independently from the system installation of Python.
The Anaconda platform components install their own versions of Python via
Anaconda or Miniconda. Therefore, existing framework installations of Python are
not affected by Anaconda Adam or Anaconda platform components.

Network Requirements
--------------------

Network and security settings should be properly configured to allow access to
and from each node (e.g., iptables and SELinux).

Below is a list of network ports used by Anaconda platform components. These
ports can be configured during the installation process.

=======================================  =====
Platform Component                       Port
=======================================  =====
Anaconda Adam (SSH)                      22
Anaconda Adam (Salt)                     14505
Anaconda Adam (Salt)                     14506
Anaconda Adam (Salt REST API)            18000
Anaconda Enterprise Notebooks (UI)       80
Anaconda Enterprise Notebooks (Gateway)  8089
Anaconda Mosaic (Blaze Server)           6363
Anaconda Mosaic (UI)                     8000
Anaconda Mosaic (Notebook Server)        8001
Anaconda Repository (UI)                 8080
Anaconda Scale (Dask/Distributed)        8786
Anaconda Scale (Dask/Distributed UI)     8787
Anaconda Scale (Jupyter Notebook UI)     8888
=======================================  =====

Network ports with a browser UI should be accessible by machines outside of the
network of Anaconda platform nodes. Network ports without a browser UI should be
accessible between the other Anaconda platform nodes.

Platform Component Requiments
-----------------------------

Refer to the documentation below for more information on CPU, memory, and disk
space requirements for each platform component:

=============================  ===================================================
Platform Component             Documentation
=============================  ===================================================
Anaconda Accelerate            https://docs.continuum.io/accelerate/
Anaconda Enterprise Notebooks  https://docs.continuum.io/ae-notebooks/
Anaconda Mosaic                https://docs.continuum.io/anaconda/mosaic/
Anaconda Repository            https://docs.continuum.io/anaconda-repository/
Anaconda Scale                 https://docs.continuum.io/anaconda-scale/
=============================  ===================================================
