About the install script CentOS

About running the installation script

The Intelligence Center installation script is based on the code blocks in the documentation. Rundoc is a utility that searches the documentation for executable code blocks, it extracts them, and then it compiles them into an executable install script. The extracted code blocks in the install script are ordered sequentially, as they occur in the documentation.

Run the installation script as root:

sudo -i
 
# Go to the directory where the script is stored.
cd /path/to/platform-install-script/dir
 
## Run the installation script. For example:
./eclecticiq-install-2.12.x.sh
 
## Run with --help to see usage
./eclecticiq-install-2.12.x.sh --help
 
## Run with --dhelp to see debug options
./eclecticiq-install-2.12.x.sh --dhelp

Example

The following example executes the Intelligence Center installation script with the following options:

  • Intelligence Center release 2.9.0.

  • If one or more steps fail, the script attempts to execute them again a hundred times before flagging them as failed steps.

  • It performs an offline installation, and it uses a cloned repository located at the specified URL address.

  • It installs the Intelligence Center from scratch, even if it detects an existing Intelligence Center installation in the target system.

  • It installs only the database components of the Intelligence Center:

    • PostgreSQL

    • Neo4j

    • Elasticsearch

    • Redis

./eclecticiq-install-2.9.0.sh --retries 100 --offline http://0.0.0.0:8080 --force-fresh --package databases

Help support help you

If you need to contact customer support to request assistance during the installation process, you may want to share a list of the commands executed up to that point in time, as well as the corresponding outputs. This can speed up diagnosing and troubleshooting issues.

Run script to write your current terminal session to a .log file:

eiq_installer_logfile=$HOME/eclecticiq-install-$(date -Im).log
echo "Writing installation logs to $eiq_installer_logfile"
script -a $eiq_installer_logfile

This logs installation commands to an out.json file stored in the installation script log directory.

The default naming format of this directory is: /root/eclecticiq-install-images/download/attachments/82474531/9c30553d49f280a4b8fcdc8cd10de07631e54d45.png {minor_version}.x-${installation_start_timestamp} Example: /root/eclecticiq-install-2.5.x-1571154233/out.json

The installation start timestamp format is Unix epoch time.

About the installation script

If the target system meets the hardware and software requirements, the platform installation and upgrade script helps automate platform installation and upgrade.

To review the requirements for your target system, see Before you start under See also below.

Before installing or upgrading the platform, the script automatically installs the following required dependencies, if they are not available on the target system:

  • wget to retrieve assets and resources from the Internet. Source: the default software repository configured on the target OS.

  • Rundoc to run the code in the documentation files. Source: pypi.

What the script does

  • The script automates platform installation, configuration, and bootstrap.

  • It uses the platform installation documentation files shipped with the script to install or to upgrade the platform and its third-party dependencies.

  • It configures the platform and its dependencies by applying EclecticIQ-recommended default settings and configurations.

  • The script works with CentOS and RHEL OSs.

  • Run the script as a user with root-level access in a bash shell.

    • If you run the script as executable, it defaults to bash.

    • Do not run it in sh or other shells.

  • The script executes each step described in the documentation.

  • Some steps may fail: this is expected. When a step fails, the script tries executing it again several times: this is normal. For example, it may occur when requests are sent to Elasticsearch before it loads.

About dependencies and extensions

  • Third-party dependencies are upgraded only during major and minor platform upgrades.

  • Maintenance upgrades cover only the EclecticIQ Platform product. Third-party dependencies are not upgraded.

  • For more information about upgrades and security issue patching, see About dependency security patches.

  • Core extensions (incoming and outgoing feeds), as well as STIX and TAXII extensions are included in major, minor, and maintenance upgrade core platform packages.

  • Enricher extensions are included in major, minor, and maintenance platform upgrades.

Download the script

Download the installation script to automate the following stages in the installation process:

  • Install the dependencies.

  • Install the platform.

  • Configure the platform.

  • Bootstrap the platform.

For details about each step in the process, see the following articles under See also below:

  • Install on one machine, or Install on two machines, or Perform a distributed installation

  • Configure SSL and HTTPS in Nginx and Neo4j

  • Configure Postfix

  • Update the platform settings

  • Install the extensions

Install vs upgrade

The script can perform installation and upgrade: when it launches, it tries to detect which desired action it should execute.

Fresh install

If you perform a fresh installation, download and run the latest available version of the script. A fresh installation includes:

  • Installing the platform from scratch.

  • Installing third-party dependencies. For a list of the third-party dependencies installed with the platform, see Before your start under See also below.

  • Applying EclecticIQ-recommended default settings and configurations.

Maintenance upgrade

You can automate a maintenance upgrade using the Rundoc-powered script if the target platform instance was installed using the script, and if the platform instance to upgrade runs on a single machine.

If you perform a maintenance upgrade, download and run the script with the same minor release version as your current platform instance to perform a maintenance upgrade to the latest patch version of the release.

Example:

  • Platform instance to upgrade (maintenance): 2.3.1

  • Install script to apply the upgrade (maintenance): eclecticiq-install-2.3.x-50.sh

A maintenance upgrade includes:

  • Upgrading the platform to the designated target release version.

Maintenance upgrades affect only the platform core components. They do not include upgrading any third-party dependencies.

Upgrade

You can automate an upgrade using the Rundoc-powered script if both criteria are satisfied:

  • The platform instance to upgrade runs on a single machine.

  • The target platform instance was installed using the script.

If you perform an upgrade, download and run the script with the next closest minor release version, compared to your current platform instance.

Example:

  • Platform instance to upgrade: 2.2.1

  • Install script to apply the upgrade: eclecticiq-install-2.3.x-50.sh

An upgrade includes:

  • Upgrading the platform to the designated target release version.

  • Upgrading third-party dependencies accordingly to their designated target release versions. For a list of the third-party dependencies thaty are installed with the platform, see Before your start under See also below.

First-time install

Run the script as a user with root-level access. When you execute the script, it prompts you to specify the following required details:

  • eiq_user: enter your user name to access the resource repository. Do not escape the @ character. Contact EclecticIQ to request this information.

  • eiq_pass: enter the password associated with your user name to access the resource repository. Contact EclecticIQ to request this information.

  • EIQ_ADMIN_PASSWORD: specify a new password for the platform admin user.

  • EIQ_ADMIN_EMAIL: specify a new email for the platform admin user.

If you export these parameters as environment variables before you run the script, it does not interactively ask for them at runtime, and it immediately proceeds with the installation. This option completely automates the installation process.

After the script completes execution, sign in to the platform as an admin user with the password value you assigned to EIQ_ADMIN_PASSWORD when prompted at the beginning of the installation process.

Before you upgrade

  • Back up your data before upgrading.

  • Verify that you have enough free space before upgrading: the recommended amount of free space available for the upgrade should be more than twice the space PostgreSQL and Elasticsearch data uses on their corresponding mount points before the upgrade.

For details about preliminary upgrade steps in the process, see the following articles under See also below:

  • Backup guidelines

  • Before you upgrade

  • The script works with CentOS and RHEL OSs.

  • Run the script as a user with root-level access in a bash shell.

    • If you run the script as executable, it defaults to bash.

    • Do not run it in sh or other shells.

  • The script executes each step described in the documentation.

  • Some steps may fail: this is expected. When a step fails, the script tries executing it again several times: this is normal. For example, it may occur when requests are sent to Elasticsearch before it loads.

Upgrade

The Rundoc-powered install and upgrade script does not support upgrading a distributed platform installation. It can automate upgrading a platform instance that:

Run the script as a user with root-level access. When you execute the script, it prompts you to specify the following required details:

  • eiq_user: enter your user name to access the resource repository. Do not escape the @ character. Contact EclecticIQ to request this information.

  • eiq_pass: enter the password associated with your user name to access the resource repository. Contact EclecticIQ to request this information.

If you export these variables in your shell before you run the script, it does not interactively ask for them at runtime, and it immediately proceeds with the installation. This option completely automates the install process.

After the script completes execution, sign in to the platform as an admin user with the password value you assigned to EIQ_ADMIN_PASSWORD when prompted at the beginning of the upgrade process.

For details about the upgrade steps in the process, see the following articles under See also below:

  • Before you upgrade

  • Upgrade the platform

  • After upgrading

About dependencies and extensions

  • Third-party dependencies are upgraded only during major and minor platform upgrades.

  • Maintenance upgrades cover only the EclecticIQ Platform product. Third-party dependencies are not upgraded.

  • For more information about upgrades and security issue patching, see About dependency security patches.

  • Core extensions (incoming and outgoing feeds), as well as STIX and TAXII extensions are included in major, minor, and maintenance upgrade core platform packages.

  • Enricher extensions are included in major, minor, and maintenance platform upgrades.