Install from an offline location#

Mirror EclecticIQ packages#

You can mirror packages from https://downloads.eclecticiq.com to provide EclecticIQ packages to hosts not connected to the internet.

Tip

This page describes how to mirror packages with wget. Other tools for mirroring repositories, like reposync, are out of scope for this guide.

Mirror downloads.eclecticiq.com with wget#

Mirror the contents of https://downloads.eclecticiq.com with wget to make EclecticIQ packages available on your network.

Requirements for mirror host:

  • wget to retrieve artifacts.

  • nginx or a similar web server, to serve artifacts on your network.

  • User running wget and nginx must have read and write access to DEST_DIR (default: /srv).

  • At least 25GB of free disk space at DEST_DIR.

To mirror required packages from https://downloads.eclecticiq.com, run the following script:

#!/bin/bash
read -p "Enter downloads.eclecticiq user: " EIQ_REPO_USER
read -p "Which major version are you targetting?: " MAJOR_VERSION
read -p "Which minor version are you targetting?: " MINOR_VERSION

DEST_DIR="/srv"
distro="centos"  # Only 'centos' available. For all RPM-based Linux distributions

cd "${DEST_DIR}"

# Mirror packages
wget  --user="${EIQ_REPO_USER}" --ask-password --mirror --convert-links -erobots=off \
      https://downloads.eclecticiq.com/platform-packages-centos/3.1/ \
      https://downloads.eclecticiq.com/platform-packages-centos/$MAJOR_VERSION.$MINOR_VERSION/ \
      https://downloads.eclecticiq.com/intelligence-center-dependencies-rpm/$MAJOR_VERSION.$MINOR_VERSION.x/ \
      https://downloads.eclecticiq.com/public/ 

wget  --user="${EIQ_REPO_USER}" --ask-password --mirror --convert-links -erobots=off -A "*-$MAJOR_VERSION\.$MINOR_VERSION\.*\.tar\.gz*"\
      https://downloads.eclecticiq.com/Extensions/

# Clean up mirrored artifacts
find /srv/downloads.eclecticiq.com -name index.html -delete

This saves artifacts required to install EclecticIQ Intelligence Center to DEST_DIR.

Serve mirrored packages over the network#

After mirroring the packages, you must serve them over HTTP/S on your network to allow package managers to access it.

Tip

For information on how to configure nginx, see nginx: Creating NGINX Plus and NGINX Configuration Files.

The following is an example nginx configuration that serves the contents of /srv/downloads.eclecticiq.com over HTTP at http://eclecticiq-repo-mirror.example.local.

For a test deployment, replace the contents of the server block in /etc/nginx/sites-enabled/default with the following:

server {
    server_name eclecticiq-repo-mirror.example.local;
    listen 80;
    root /srv/downloads.eclecticiq.com;
    autoindex on;
}

Caution

The above nginx configuration snippet configures your nginx server to serve the contents of /srv/downloads.eclecticiq.com through HTTP.

For production, you should update this to use HTTPS with trusted TLS certificates instead.

Use the mirror#

Make sure your package manager entries for EclecticIQ packages on the target installation host use the mirror you’ve set up instead of https://downloads.eclecticiq.com. This section provides brief instructions on where to do this for EclecticIQ Installations.

EclecticIQ installation playbooks#

When using Installation playbooks 3.x, you must edit the group_vars/all/config.yml and replace or set the values of these keys:

eiq_ic_base__repos_protocol: "https" # Change to `http` for unsecured connections.
eiq_ic_base__repos_domain: "eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
extensions_repo_protocol: "https" # Change to `http` for unsecured connections.
extensions_repo_domain: "eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
eiq_ic__extensions_repo_protocol: "http"
eiq_ic__extensions_repo_domain: "eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
eiq_ic__extensions_repo_path: "/Extensions"

# Required for unsecured connections e.g. HTTP
eiq_ic__extensions_pip_extra_args: "--trusted-host=eclecticiq-repo-mirror.example.local"

Once done, running the EclecticIQ installation playbooks will install packages from your mirror instead.

Manual install (deprecated)#

When performing a manual install, you must set the baseurl key of the configured YUM repository files to use your mirror instead.

To do this, during Set up the repositories Rocky Linux, in the Repository paths and Extension repository paths sections, make sure that the environment variables are changed so that the resulting .repo files use the mirror instead.

Change these environment variables before following instructions in the Set up repository configuration files section:

repos_protocol="https" # Change to `http` for unsecured connections.
repos_root="eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
extensions_repo_protocol="https" # Change to `http` for unsecured connections.
extensions_repo_domain="eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.

Caution

To install extensions over an unsecured HTTP connection, you must run pip with the additional option --trusted-host=<URL_of_your_mirror>.

Rundoc (deprecated)#

The following example uses the rundoc installation script to use your mirror:

wget http://eclecticiq-repo-mirror.example.local/platform-rundoc/eclecticiq-install-3.0.x-99.sh
chmod +x eclecticiq-install-3.0.x-99.sh
./eclecticiq-install-3.0.x-99.sh --offline http://eclecticiq-repo-mirror.example.local

You can point to your repository mirror also to retrieve the packages to install extensions.
Example:

Caution

To install extensions over an unsecured HTTP connection, you must run pip with the additional option --trusted-host=<URL_of_your_mirror>.

/opt/eclecticiq-platform-backend/bin/pip install -f http://eclecticiq-repo-mirror.example.local/Extensions eclecticiq-extension-crowdstrike