Install from an offline location

Offline installation

Create a local mirror of all the necessaery assets and resources to carry out an offline Intelligence Center (IC) installation.

About mirroring

You may need to install the IC in an air-gapped environment with no internet access. To carry out an offline installation, first make sure you mirror our package repositories: make a full copy of our repositories, and make them available within your private network.

There are open source, community-supported tools to mirror package repositories. For example: reposync for CentOS/RHEL.

For more information about installing, setting up, and using these tools, refer to their official documentation.

What to mirror

You need to create mirrors of the following repositories:

  • EclecticIQ Intelligence Center repositories.

  • Official CentOS/RHEL repositories the Intelligence Center runs on.

    Our packages depend on resources available on these repositories.

Set up a repository mirror

Setting up a repository mirror is a quick and simple alternative to creating local mirror copies of Linux distribution repositories. However, this suggestion may not be robust enough for your production environment.

Mirror a repository

The following example describes how to set up a repository mirror with wget and a shell snippet.

The shell snippet downloads all the necessary assets and resources from our download portal.

The machine the shell snippet runs on must have Internet access. After downloading the resources, you can move them to your internal network using a shared file drive, or a tool such as rsync. Alternatively, you can disconnect the machine from the internet after completing the download operation.

To download the necessary resources from our download portal:

  • Make sure that wget is installed on the machine you are using to download the resources.

  • Then, run the following shell snippet as either root user, or any other user with write access to the /srv directory:

distro=centos # depending on the distro you are mirroring
cd /srv
wget -r --user=example@eclecticiq --ask-password --mirror --convert-links -erobots=off \
https://downloads.eclecticiq.com/platform-packages-$distro/ \
https://downloads.eclecticiq.com/platform-dependencies-$distro-2.9/ \
https://downloads.eclecticiq.com/platform-rundoc/ \
https://downloads.eclecticiq.com/platform-binary-deps/ \
https://downloads.eclecticiq.com/Extensions/ \
https://downloads.eclecticiq.com/public/ \
https://downloads.eclecticiq.com/intelligence-center-dependencies-rpm/
find /srv/downloads.eclecticiq.com -name index.html -rm

Run again the same shell snippet every time you want to pull in new and/or updated packages from our repositories.

After downloading the resources, make them available in your internal network:

  • Set up a web server, for example using Nginx, and point it to the /srv/downloads.eclecticiq.com directory.

  • The following example can seve as guidelines for a basic Nginx configuration. The configuration file is stored in the Nginx enabled site directory. For example: /etc/nginx/sites-enabled/eclecticiq-repo-mirror.conf:

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

Use your internal repository mirror

If the repository mirror is set up correctly, and if your DNS records point eclecticiq-repo-mirror.example.local to the IP of the machine where the repository mirror web server is running, you should be able to use eclecticiq-repo-mirror.example.local instead of downloads.eclecticiq.com when setting up EclecticIQ Intelligence Center repositories.

The following example uses the official installation script to retrieve assest and resources from your repository mirror:

wget http://eclecticiq-repo-mirror.example.local/platform-rundoc/eclecticiq-install-2.12.x-99.sh
chmod +x eclecticiq-install-2.12.x-99.sh
./eclecticiq-install-2.12.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:

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