System Requirements
===================

Please see :download:`this downloadable PDF <Anaconda-Enterprise-System-Requirements.pdf>` for a comprehensive list of requirements for all enterprise components.

Anaconda Repository Requirements
--------------------------------

Hardware requirements
^^^^^^^^^^^^^^^^^^^^^

* CPU: 2 x 64-bit 2.8 GHz 8.00 GT/s CPUs
* RAM: 32 GB (or 16 GB  of 1600 MHz DDR3 RAM)
* Storage: 300 GB. (600 GB for air-gapped deployments.) Additional space recommended if the repository will be used to store packages built by the customer. With an empty repository, a base install requires 2 GB.
* Internet access to download the files from Anaconda Cloud or a USB drive containing all of the files you need with alternate instructions for air gapped installations.

Software & system requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* RHEL/CentOS 6.5 to 7.4, Ubuntu 12.04+

  * Ubuntu users may need to install cURL.

* Client environment may be Windows, macOS or Linux
* MongoDB 2.6 (provided)
* Anaconda Repository license file
* Cron entry to start the repo on reboot
* Linux system accounts

  * mongod (RHEL) or mongodb (Ubuntu)
  * anaconda-server

Security requirements
^^^^^^^^^^^^^^^^^^^^^

* Privileged access OR sudo capabilities
* Open HTTP(S) port
* SELinux policy edit privileges (SELinux does not have to be disabled for Anaconda Repository operation)
* Optional: Ability to make iptables modifications
* Optional: SSL certificate

Network requirements (TCP ports)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Inbound HTTP: TCP 8080, 8443 (Anaconda repository)
* Optional Inbound SSH: TCP 22 (SSH)
* Optional Outbound HTTPS: TCP 443

  * repo.continuum.io
  * anaconda.org
  * conda.anaconda.org
  * binstar-cio-packages-prod.s3.amazonaws.com
  * 820451f3d8380952ce65-4cc6343b423784e82fd202bb87cf87cf.ssl.cf1.rackcdn.com

* Optional Outbound SMTP: TCP 25 (if not using AD/LDAP) email notifications
* Optional Outbound LDAP(s): TCP 389/636 for authentication integration

Other Requirements
^^^^^^^^^^^^^^^^^^

* License file provided to you by Anaconda at the time of purchase
* Installation tokens for binstar and anaconda-server channels provided by Anaconda at the time of purchase. Not applicable for air gapped installs.
* Optional: Your Anaconda Cloud (anaconda.org) account credentials. Not applicable for air gapped installs.

Anaconda Scale Requirements
---------------------------

Hardware Recommendations
^^^^^^^^^^^^^^^^^^^^^^^^

* Head and Compute nodes

  * RAM: 8+ GB
  * CPU: 8+ cores
  * Storage: 4 GB

Note: Analyses running on Compute Nodes will be primary driver of resource requirements.

Software Requirements
^^^^^^^^^^^^^^^^^^^^^

* Head and Compute nodes:

  * RHEL/CentOS 6, Ubuntu 14

Security 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

* SELinux in Permissive mode (or, SELinux contexts can be configured via Anaconda Adam)

Network Requirements
^^^^^^^^^^^^^^^^^^^^

* TCP Ports

  * TCP 22 (SSH) from head node to compute nodes
  * TCP 14505, 14506 (Salt) between head node and compute nodes
  * TCP 18000 (Salt REST API) from compute nodes to head node
  * Outbound TCP 443 from all machines to local Anaconda Repo

Anaconda Enterprise Notebooks Requirements
------------------------------------------

Hardware Recommendations
^^^^^^^^^^^^^^^^^^^^^^^^

The server and gateway can be on the same machine as Anaconda Repository.

* AEN Server

  * RAM: 2+ GB
  * CPU: 2+ cores
  * Storage: 20 GB

* AEN Gateway

  * RAM: 2 GB
  * CPU: 2 cores
  * Storage: 3 MB (minimal storage required)

* AEN Project Nodes (N-machines)

  * RAM: 2 GB
  * CPU: 2 cores
  * Storage: 3 GB/project

Note: Analyses running on Project Nodes will be primary driver of resource requirements.

OS Requirements
^^^^^^^^^^^^^^^

* RHEL/CentOS, any version from 6.5 through 7.4
* Bash installed on Project Nodes
* /opt/wakari: Ability to install here and at least 5 GB of storage
* /projects: (only needed on Project nodes)

  * Important: This directory needs the filesystem mounted with Posix ACL support (Posix.1e)
  * Check with `mount` and `tune2fs -l /path/to/filesystem | grep options`

* Linux home directories. Jupyter looks in $HOME for profiles and extensions.
* Linux system accounts:

  * mongod (RHEL) or mongodb (Ubuntu/Debian): Created by the RPM or deb package (AEN Server)
  * elasticsearch: Created by RPM or deb package (AEN Server)
  * nginx: Created by RPM or deb package (AEN Server)
  * aen_admin (may also be wakari or another name): AEN Service Account, created during installation of Anaconda Enterprise Notebooks.

The AEN Service Account name is the AEN Functional ID or NFI. The NFI defaults to "wakari" and is configurable. Anaconda suggests using "aen_admin".

Software Prerequisites
^^^^^^^^^^^^^^^^^^^^^^

* MongoDB 2.6 [AEN Server]
* Nginx version: >=1.4.0 [AEN Server]
* git [AEN Project]
* bash or zsh [AEN Project]
* bzip2 [AEN Project, AEN Server]
* ElasticSearch [AEN Server]

  * Oracle JRE 1.7 or 8 [AEN Server]

* X Windows (for R-based visualizations, not provided)

Security Requirements
^^^^^^^^^^^^^^^^^^^^^

* root or sudo access at installation and runtime
* SELinux in Permissive mode - check with `getenforce`

Network Requirements
^^^^^^^^^^^^^^^^^^^^

* TCP Ports

  * Server: 80, Outbound 389/636 (LDAP)
  * Gateway (inbound): 8089
  * Project (inbound): 5002
  * All: Outbound 443 (to local Anaconda Repo)
  * Outbound TCP 443: 820451f3d8380952ce65-4cc6343b423784e82fd202bb87cf87cf.ssl.cf1.rackcdn.com

* End users' browsers communicate with AEN using WebSockets.

Important note: these system requirements are suitable for the majority of implementations. Our implementation team can explain the scenarios and usage patterns that would require more resources.

Ver. 2017-12-05
