Installation - Airgapped Environments
=====================================

Anaconda Adam can be used to install the Anaconda platform in airgapped
environments.

Currently, Anaconda Adam can install the remote conda management functionality
in an airgapped environment using artifacts from Anaconda Repository. In future
versions of Anaconda Adam, airgapped installations of all Anaconda platform
components will be fully supported.

.. contents::
   :local:
   :depth: 2

Anaconda Repository
-------------------

After installing Anaconda Repository, you'll need to configure it for the
Anaconda Adam installation on the nodes.

* Mirror the ``anaconda`` and ``anaconda-adam`` channels onto your local Anaconda Repository
* Copy the latest versions of the `Anaconda <http://repo.continuum.io/archive/>`_ and `Miniconda <http://repo.continuum.io/miniconda/>`_ installers to the ``/static/extras/`` folder on the Anaconda Repository web server

Cluster Profile
---------------

Create a cluster profile at ``~/.continuum/adam/profile.d/my-cluster.yaml``
with the following contents:

.. code-block:: yaml

    name: my-cluster
    provider: bare

    bare:
      username: centos
      # password: password  # Optional
      port: 22
      keypair: ~/.ssh/my-private-key
      nodes:
      - host: node1.company.com
      - host: node2.company.com
      - host: node3.company.com
      - host: node4.company.com

    plugins:
      conda:
        anaconda_hash: md5=a0d1fbe47014b71c6764d76fb403f217
        anaconda_url: http://local.anaconda.repository.address:8080/static/extras/Anaconda2-4.2.0-Linux-x86_64.sh
        channel_alias: http://local.anaconda.repository.address:8080/conda/
        channels:
        - http://local.anaconda.repository.address:8080/conda/anaconda
        - http://local.anaconda.repository.address:8080/conda/anaconda-adam
        enabled: true
        miniconda_hash: md5=42dac45eee5e58f05f37399adda45e85
        miniconda_url: http://local.anaconda.repository.address:8080/static/extras/Miniconda2-4.0.5-Linux-x86_64.sh
        rootdir: /opt/continuum

    security:
      flush_iptables: false
      selinux_context: false
      selinux_permissive: false

In the profile, edit the ``username``, SSH ``port``, and IP addresses or
hostnames of the ``nodes`` in the cluster. The first node in the list of
``nodes`` will be defined as the head node, and the remaining nodes will be
defined as compute nodes.

You will need to specify the location of your private SSH key (``keypair``) to
use. Verify that you have SSH access to all of the cluster nodes, and that the
specified ``username`` has sudo privileges.

Set the location of the ``local.anaconda.repository.address`` to the address
of your Anaconda Repository. Configure the ``anaconda_hash`` and
``miniconda_hash`` to match the hashes of your Anaconda and Miniconda
installers.
