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.8GHz 8.00GT/s CPUs
- RAM: 32GB (or 16GB  of 1600 MHz DDR3 RAM) 
- Storage: 300GB. (1TB for an air-gapped deployments). Additional space recommended if the repository will be used to store packages built by the customer.
- 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, Ubuntu 12.04+
    - Ubuntu users may need to install cURL.
- Client environment may be Linux, Windows, or OS X
- MongoDB 2.6 (provided)
- Linux system accounts
    - mongod (RHEL) or mongodb (Ubuntu)
    - anaconda-server
- Cron entry to start the repo on reboot

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

- Ability to make (optional) iptables modifications
- SELinux policy edit privileges. (SELinux does not have to be disabled for Anaconda repository operation)

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

- Inbound TCP 8080, 8443 (Anaconda repository)
- Inbound TCP 22 (SSH)
- Outbound TCP 443
    - repo.continuum.io
    - anaconda.org
    - conda.anaconda.org
    - binstar-cio-packages-prod.s3-website-us-east-1.amazonaws.com
    - binstar-cio-packages-prod.s3.amazonaws.com
    - 820451f3d8380952ce65-4cc6343b423784e82fd202bb87cf87cf.ssl.cf1.rackcdn.com
- Outbound TCP 25 (SMTP, if not using AD/LDAP
- Outbound TCP 389/636 (LDAP(s))

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

- Your Anaconda Cloud (anaconda.org) account credentials.
- Installation tokens for binstar and anaconda-server channels (provided to you by Continuum at the time of purchase. N/A for air-gapped installs)
- License file (provided to you by Continuum at the time of purchase).

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

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

- Head and Compute nodes
    - RAM: 8+ GB
    - CPU: 8+ cores
    - Storage: 4GB

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: 20GB
- AEN Gateway
    - RAM: 2 GB
    - CPU: 2 cores
    - Storage: 3MB (minimal storage required)
- AEN Project Nodes (N-machines)
    - RAM: 2GB
    - CPU: 2 cores
    - Storage: 3GB/project

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

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

- RHEL/CentOS 6
- Bash installed on Project Nodes
- /opt/wakari: Ability to install here and at least 5GB 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 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)
    - wakari: Created during installation of Anaconda Enterprise Notebooks

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-04-06
