Install ECE Without Internet Access

Elastic Cloud Enterprise supports installation on hosts without internet access, commonly referred to as an offline or air-gapped installation.

To install offline, you must first download the installation images and installation script from Elastic and push them to your private Docker registry. After pushing the images, point the installation script to your private Docker registry with the --docker-registry parameter to install ECE on your hosts.

Alternatively, you can also install ECE offline without your own Docker registry.

Before you Begin

To use these instructions, you must have your own private Docker registry set up already. To learn more, see Deploy a registry server.

To run the installation script, a user must be part of the docker group. You should not install Elastic Cloud Enterprise as the root user.

Additional requirements:

  • The Elasticsearch and Kibana images that you use during the installation process must be prepared to work with Elastic Cloud Enterprise. All images listed in this section are suitable. You must not try to substitute other images, unless guided by someone from Elastic.
  • The Elasticsearch and Kibana images you use must be compatible with each other:

    • For versions before 5.0, refer to the Support Matrix to see which versions of can be used together and download the correct Docker images for ECE listed in this section.
    • For version 5.0 and later, the versioning of Elasticsearch and Kibana is synchronized and versions where the major, minor, and patch levels match can be used together. Differences in build versions indicated by a dash and number suffix do not affect compatibility (5.5.1-1, for example).

If you plan to use one, you should also have set up your wildcard DNS record already.

Available Docker Images

The following ECE and Elastic Stack images are available for offline installation. When installing a specific version of Elastic Cloud Enterprise without internet access, you must download the ECE image and all the Elastic Stack images that originally shipped with the version of ECE that you are installing.

Download the images you need with the docker pull IMAGE command, where IMAGE is a Docker image. For example:

docker pull docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3
docker pull docker.elastic.co/cloud-assets/elasticsearch:6.1.3-0
docker pull docker.elastic.co/cloud-assets/kibana:6.1.3-0
Elastic Cloud Enterprise 1.1.3

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3

docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1

docker.elastic.co/cloud-assets/kibana:4.6.6-2

docker.elastic.co/cloud-assets/elasticsearch:5.6.7-0

docker.elastic.co/cloud-assets/kibana:5.6.7-0

docker.elastic.co/cloud-assets/elasticsearch:6.1.3-0

docker.elastic.co/cloud-assets/kibana:6.1.3-0

Elastic Cloud Enterprise 1.1.2

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.2

docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1

docker.elastic.co/cloud-assets/kibana:4.6.6-2

docker.elastic.co/cloud-assets/elasticsearch:5.6.5-0

docker.elastic.co/cloud-assets/kibana:5.6.5-0

docker.elastic.co/cloud-assets/elasticsearch:6.0.1-0

docker.elastic.co/cloud-assets/kibana:6.0.1-0

Elastic Cloud Enterprise 1.1.1

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.1

docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1

docker.elastic.co/cloud-assets/kibana:4.6.6-2

docker.elastic.co/cloud-assets/elasticsearch:5.6.4-0

docker.elastic.co/cloud-assets/kibana:5.6.4-0

docker.elastic.co/cloud-assets/elasticsearch:6.0.0-0

docker.elastic.co/cloud-assets/kibana:6.0.0-0

Elastic Cloud Enterprise 1.1.0

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.0

docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1

docker.elastic.co/cloud-assets/kibana:4.6.6-2

docker.elastic.co/cloud-assets/elasticsearch:5.6.4-0

docker.elastic.co/cloud-assets/kibana:5.6.4-0

docker.elastic.co/cloud-assets/elasticsearch:6.0.0-0

docker.elastic.co/cloud-assets/kibana:6.0.0-0

Elastic Cloud Enterprise 1.0.2

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.0.2

docker.elastic.co/cloud-assets/elasticsearch:2.4.6-0

docker.elastic.co/cloud-assets/kibana:4.6.5-1

docker.elastic.co/cloud-assets/elasticsearch:5.4.1-2

docker.elastic.co/cloud-assets/kibana:5.4.1-2

Elastic Cloud Enterprise 1.0.1

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.0.1

docker.elastic.co/cloud-assets/elasticsearch:2.4.5-1

docker.elastic.co/cloud-assets/kibana:4.6.4-0

docker.elastic.co/cloud-assets/elasticsearch:5.4.1-2

docker.elastic.co/cloud-assets/kibana:5.4.1-2

Elastic Cloud Enterprise 1.0.0

docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.0.0

docker.elastic.co/cloud-assets/elasticsearch:2.4.5-1

docker.elastic.co/cloud-assets/kibana:4.6.4-0

docker.elastic.co/cloud-assets/elasticsearch:5.4.0-3

docker.elastic.co/cloud-assets/kibana:5.4.0-1

Additional Elastic Stack versions are available as Docker images that you can use with ECE. For offline installations, you also need to download the corresponding Elastic Stack pack. To learn more, see Manage Elastic Stack Versions.

All Elastic Stack images

docker.elastic.co/cloud-assets/elasticsearch:6.1.3-01

docker.elastic.co/cloud-assets/kibana:6.1.3-01

docker.elastic.co/cloud-assets/elasticsearch:6.0.1-01

docker.elastic.co/cloud-assets/kibana:6.0.1-01

docker.elastic.co/cloud-assets/elasticsearch:6.0.0-02

docker.elastic.co/cloud-assets/kibana:6.0.0-02

docker.elastic.co/cloud-assets/elasticsearch:5.6.7-0

docker.elastic.co/cloud-assets/kibana:5.6.7-0

docker.elastic.co/cloud-assets/elasticsearch:5.6.6-0

docker.elastic.co/cloud-assets/kibana:5.6.6-0

docker.elastic.co/cloud-assets/elasticsearch:5.6.5-0

docker.elastic.co/cloud-assets/kibana:5.6.5-0

docker.elastic.co/cloud-assets/elasticsearch:5.6.4-0

docker.elastic.co/cloud-assets/kibana:5.6.4-0

docker.elastic.co/cloud-assets/elasticsearch:5.6.3-0

docker.elastic.co/cloud-assets/kibana:5.6.3-0

docker.elastic.co/cloud-assets/elasticsearch:5.6.2-0

docker.elastic.co/cloud-assets/kibana:5.6.2-0

docker.elastic.co/cloud-assets/elasticsearch:5.6.1-0

docker.elastic.co/cloud-assets/kibana:5.6.1-0

docker.elastic.co/cloud-assets/elasticsearch:5.5.3-0

docker.elastic.co/cloud-assets/kibana:5.5.3-0

docker.elastic.co/cloud-assets/elasticsearch:5.5.2-0

docker.elastic.co/cloud-assets/kibana:5.5.2-0

docker.elastic.co/cloud-assets/elasticsearch:5.5.1-1

docker.elastic.co/cloud-assets/kibana:5.5.1-0

docker.elastic.co/cloud-assets/elasticsearch:5.5.0-0

docker.elastic.co/cloud-assets/kibana:5.5.0-0

docker.elastic.co/cloud-assets/elasticsearch:5.4.3-0

docker.elastic.co/cloud-assets/kibana:5.4.3-0

docker.elastic.co/cloud-assets/elasticsearch:5.4.2-0

docker.elastic.co/cloud-assets/kibana:5.4.2-0

docker.elastic.co/cloud-assets/elasticsearch:5.4.1-2

docker.elastic.co/cloud-assets/kibana:5.4.1-2

docker.elastic.co/cloud-assets/elasticsearch:5.4.0-3

docker.elastic.co/cloud-assets/kibana:5.4.0-1

docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1

docker.elastic.co/cloud-assets/kibana:4.6.6-2

docker.elastic.co/cloud-assets/elasticsearch:2.4.5-1

docker.elastic.co/cloud-assets/kibana:4.6.4-0

1 Requires Elastic Cloud Enterprise 1.1.2 or later.

2 Requires Elastic Cloud Enterprise 1.1.0 or later.

Push Images to a Docker Registry

Before you can start setting up a new ECE installation in an air-gapped environment, you need to download the installation images and push them to your private Docker registry:

  1. On an internet-connected host that has Docker installed, pull the Docker images required by the installation script. For example, for Elastic Cloud Enterprise 1.1.3 and the Elastic Stack versions it shipped with, you need:

    • Elastic Cloud Enterprise 1.1.3
    • Elasticsearch 6.1.3-0 and Kibana 6.1.3-0
    • Elasticsearch 5.6.7-0 and Kibana 5.6.7-0
    • Elasticsearch 2.4.6-1 and Kibana 4.6.6-2

    To pull the Docker images:

    docker pull docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3
    
    docker pull docker.elastic.co/cloud-assets/elasticsearch:6.1.3-0
    
    docker pull docker.elastic.co/cloud-assets/kibana:6.1.3-0
    
    docker pull docker.elastic.co/cloud-assets/elasticsearch:5.6.7-0
    
    docker pull docker.elastic.co/cloud-assets/kibana:5.6.7-0
    
    docker pull docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1
    
    docker pull docker.elastic.co/cloud-assets/kibana:4.6.6-2
  2. Tag the Docker images with your private registry, where REGISTRY is my.private.repo:5000, for example:

    docker tag docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3 REGISTRY/cloud-enterprise/elastic-cloud-enterprise:1.1.3
    
    docker tag docker.elastic.co/cloud-assets/elasticsearch:6.1.3-0 REGISTRY/cloud-assets/elasticsearch:6.1.3-0
    
    docker tag docker.elastic.co/cloud-assets/kibana:6.1.3-0 REGISTRY/cloud-assets/kibana:6.1.3-0
    
    docker tag docker.elastic.co/cloud-assets/elasticsearch:5.6.7-0 REGISTRY/cloud-assets/elasticsearch:5.6.7-0
    
    docker tag docker.elastic.co/cloud-assets/kibana:5.6.7-0 REGISTRY/cloud-assets/kibana:5.6.7-0
    
    docker tag docker.elastic.co/cloud-assets/elasticsearch:2.4.6-1 REGISTRY/cloud-assets/elasticsearch:2.4.6-1
    
    docker tag docker.elastic.co/cloud-assets/kibana:4.6.6-2 REGISTRY/cloud-assets/kibana:4.6.6-2
  3. Push the Docker images to your private Docker registry, where REGISTRY is my.private.repo:5000, for example:

    docker push REGISTRY/cloud-enterprise/elastic-cloud-enterprise:1.1.3
    
    docker push REGISTRY/cloud-assets/elasticsearch:6.1.3-0
    
    docker push REGISTRY/cloud-assets/kibana:6.1.3-0
    
    docker push REGISTRY/cloud-assets/elasticsearch:5.6.7-0
    
    docker push REGISTRY/cloud-assets/kibana:5.6.7-0
    
    docker push REGISTRY/cloud-assets/elasticsearch:2.4.6-1
    
    docker push REGISTRY/cloud-assets/kibana:4.6.6-2

Perform the Offline Installation

An offline installation points the Elastic Cloud Enterprise installation script to your private Docker registry, but otherwise follows the standard ECE installation process.

You start setting up a new Elastic Cloud Enterprise installation by installing the software on your first host. This first host becomes the initial coordinator and provides access to the Cloud UI, where you can manage your installation. You then install Elastic Cloud Enterprise on additional hosts to add them as resources to an existing installation.

Tip

Setting up a production system? Don’t forget to take a look at the examples in our Playbook for Production. The playbook provides sample installation commands that are tailored to different deployment sizes and high availability.

To perform an offline installation:

  1. On an internet-connected host, download the installation script:

    curl -L -O https://download.elastic.co/cloud/elastic-cloud-enterprise.sh
  2. Copy the installation script to each host where you plan to install Elastic Cloud Enterprise. (Alternatively, you can place the installation script in a secure network location where your other hosts can access it.)
  3. Invoke the installation script on each host with the --docker-registry REGISTRY parameter, where REGISTRY is my.private.repo:5000, for example:

    1. On the first host:

      bash elastic-cloud-enterprise.sh install --docker-registry REGISTRY
    2. On additional hosts, include the --coordinator-host HOST_IP and --roles-token 'TOKEN' parameters provided to you when you installed on the first host, along with the --docker-registry REGISTRY parameter:

      bash elastic-cloud-enterprise.sh install --coordinator-host HOST_IP  --roles-token 'TOKEN' --docker-registry REGISTRY

      If you are creating a larger Elastic Cloud Enterprise installation:

      • To make your installation fault tolerant or highly available, include the --availability-zone ZONE_NAME parameter to specify the name of an availability zone for the additional host, which determines which failure domain the host should belong to. Hosts should go into three different availability zones for production systems. For example, including the parameter --availability-zone ece-region-1c when you install on additional hosts places the additional host into availability zone ece-region-1c.
      • To simplify the steps for assigning roles so that you do not have to change the roles in the Cloud UI later on, include the --roles parameter. For example, to bring up additional allocators to scale out your installation, specify the --roles "allocator" parameter. You do need to generate a roles token that has the right permissions for this to work; the token generated during the installation on the first host will not suffice.

After installation completes, additional hosts come online as runners with some roles assigned to them already. If you did not specify additional roles with the --roles parameter, you can assign new roles to nodes in the Cloud UI later.