=========================
Installation requirements
=========================

Make sure your system meets the requirements below before
installing and using Anaconda Adam.

Hardware and operating system
=============================

To install Adam, you must have one or more 64-bit Linux machines
with one of the following Linux distributions:

* RHEL/CentOS 6 or 7
* Ubuntu 14.04 or 16.04

and the following commands installed:

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

License
=======

To install Adam, you must have a valid
`Anaconda Enterprise <https://www.anaconda.com/enterprise/>`_
license.


.. _adam-reqs-access-security:

Account access and security
===========================

To install Adam, you need one of the following access options
on the target machines:

* Access to the root user with the root password.
* Access to the root user with an SSH key pair.
* 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 must be the
same on all of the target nodes.


.. _adam-reqs-network:

Network
=======

You must configure network and security settings to allow access
to and from each node--for example, using IPTables or SELinux.

.. _adam-default-network-ports:

Anaconda platform components use the default network ports
listed below. You can configure these ports when you
define a cluster profile.

=======================================  =====
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 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 user interface (UI) must be
accessible by machines outside of the network of Anaconda
platform nodes.

Network ports without a browser UI must be accessible between the
other Anaconda platform nodes.


.. _adam-reqs-plat-comps:

Platform components
===================

See the documentation below for information on CPU, memory and
disk space requirements for Anaconda platform components.

* :doc:`Anaconda Enterprise Notebooks <../../ae-notebooks/index>`.
* :doc:`Anaconda Repository <../../anaconda-repository/index>`.
* :doc:`Anaconda Scale <../../anaconda-scale/index>`.


.. _adam-reqs-python:

Python considerations
=====================

Adam and Anaconda platform components do not affect existing
framework installations of Python. Adam operates independently
from the system installation of Python, while Anaconda platform
components install their own versions of Python via Anaconda or
Miniconda.
