Introduction
To get started with ElectroNeek Orchestrator on-premise, make sure you meet the prerequisites, then follow the instructions.
Prerequisites
Recommended hardware
- Modern x86_64 system with hardware virtualization enabled
- 2 CPU cores free
- 4 GB RAM free
- 50 GB free disk space
- Stable broadband internet connection
OS requirements
To deploy ElectroNeek Orchestrator on-premise, you need the 64-bit version of one of these Ubuntu versions:
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
Execution of some command in this instruction must be performed under the
administrator privileges - sudo
.
Setting up the environment
Prior to deployment of the on-premise version, it is necessary to install the following components:
- nodejs v. 14
- docker 20.10.8
- docker-compose 1.29.2
Installation of nodejs
Run the following command:
sudo apt install nodejs
Check the installed version:
node -v
If the installed version differs from 14.x
, then run the following sequence of commands:
cd ~
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
nano nodesource_setup.sh
sudo bash nodesource_setup.sh
Then execute the following commands:
sudo apt install nodejs
node -v
Now make sure that the installed version is 14.x
. You may use this link to read more about the installation of nodejs.
Installation of docker and docker-compose
Follow the instructions on the official website to install docker and docker-compose:
Storage of workflows and execution logs
It is possible to store published workflows in the file system or by means of the Amazon S3 storage. If you want to use Amazon for this purpose, navigate to the official website in order to set up the storage. You will then need to provide data about the storage when deploying the on-premise version (described in the instruction below).
Execution logs are always stored in the file system regardless of the selected way to store workflows. The collected logs can be found in the following folder:
/var/electroneek/package/logs/electroneek/
.
Usage of Graylog for audit logs
The deployed platform automatically collects audit logs. The Graylog system is used to store such logs. You will need to provide your Graylog server to deploy the on-premise version (described in the instruction below).
Installation of the on-premise version
Unpacking the archive
To deploy ElectroNeek Orchestrator on-premise, you need to request the deployment script files from your ElectroNeek representative. You will receive an archive with all files necessary for installation. The structure of the archive is the following:
config.yaml
- contains the configuration of the services;dist
- contains the source code of the services;dist/scripts
- contains scripts that automatically prepare all installation files of the on-premise version;on-prem.sh
- a file containing the main commands for interaction with the on-premise version.
Before unpacking the received archive, create a directory /var/electroneek
:
sudo mkdir -p /var/electroneek
Run the following command to extract files from the archive, replacing {version}
with the version number in the archive’s file name.
sudo tar -xzvf electroneek-on-premise-{version}.tar.gz -C /var/electroneek
This will extract the archive to the directory /var/electroneek
. Open the directory and verify its content matches the archive structure above.
Configuration of the services
Before running the installation script, you need to configure certain services. Open the configuration file ./config.yaml
and change the following parameters:
IMPORTANT: config.yaml
should be valid.
-
smtp:host
- the server address to send system emails such as an invitation to
join the Team and others; -
smtp:port
– the server port; -
smtp:auth:user
- an account for sending system emails.; -
smtp:auth:pass
- the password from the account; -
smtp:from
- the email address from which system emails will be sent (without authentication); -
smtp:secure
- if the server does not use SSL, set it tofalse
, otherwise, specifytrue
or leave it empty; -
server_uri
- specify the domain name or an IP address which will be used to access Orchestrator by the end-user. The value must be entered in the following way:{http|https}://{ip|domain}
; -
file_storage:type
- specifyaws-s3
to store workflows on AWS orfile-system
to store locally on the server; file_storage:max_file_size_bytes
- maximum size of published workflows;-
file_storage:storage_path
- path to the directory where the workflow files will be stored iffile_storage:type
is set tofile-system
; -
aws_s3
- credential data from the created Amazon S3 storage iffile_storage:type
is set toaws-s3
; -
audit
- credential data from the Graylog server for audit logs;
-
audit:servers
- IP address and port in format127.0.0.1:12201
. Required for Graylog configuration. You can learn more about it here. -
audit:api:uri
- URI to Graylog API. Required to make select data queries. -
audit:api:username
- username for Graylog API.audit:api:username
- password for Graylog API.
If you use an email without login and password, remove the smtp:auth
parameters and fill the smtp:from
parameter. More parameters for configuring SMTP can be found at the SMTP transport:: Nodemailer.
Configuration example
Below is an example of a filled config.yaml
file:
server_uri: "172.24.0.1"
file_storage:
type: "aws-s3"
max_file_size_bytes: 20971520
aws_s3:
bucket_name: "bucket-name"
region: "us-east-2"
access_key_id: "XXXXXXXXXXXXXXX"
secret_access_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
api_version: "2006-03-01"
smtp:
host: "172.24.0.1"
port: 465
from: "test@company.com"
secure: false
audit:
servers:
- host: "172.24.3.143"
port: 12201
buffer_size: 135000
api:
uri: "http://172.24.3.143:9000/api"
username: "admin"
password: "123"
Deployment of Orchestrator
Navigate to the /var/electroneek/package
directory, run the following command:
bash ./on-prem.sh install
This will start creating all the resources required for ElectroNeek Orchestrator to run. Do not close the terminal session until the command has successfully finished executing. During the installation process, an escalation of privileges may be requested by the system.
Configuration of the Owner account
At the end of the installation process, an admin email and password will be requested. This credential will be used as the Team Owner account and will be needed to activate the on-premise products and manage users inside them.
We highly recommend not skipping this step. However, if you skip it, then you will be able to access the on-premise portal under the admin@example.com/admin
account. You will always be able to replace the Owner’s account by running a specific script separately.
Load balancer configuration
To set up a load balancer, make sure the server_uri
parameter is filled in the ./config.yaml
file, for example, https://my.domain.com/
. Then you will need to set up the routing in the load balancer from https://my.domain.com/
to http://orchestrator_server
, where orchestrator_server
is the IP of the server where Orchestrator is hosted:
- The load balancer protocol must be
https
orhttps
; - The load balancer port must be
80
or443
; - The instance protocol must be
http
; - The instance port must be
80
.
Checking the installation status
After the installation process is finished, open your browser, and navigate to the following address: http://orchestrator_server
. You should see a form to log in to the ElectroNeek on-premise portal. If you see this form, you may start the process of activation the on-premise products. If you do not see this form, contact the ElectroNeek support team.
If you use a load balancer, also check that navigating to {server_uri}/account/login
results in the same login form.
Server reboot
If you reboot the server, you need to execute a few commands so that our services start working. Navigate to the directory where the ElectroNeek software is installed:
cd /var/electroneek/package
Then run the following command:
bash ./on-prem.sh start
After the execution of this command, you will be able to continue working with our products.
Update
If you want to upgrade your on-premise configuration, there are several steps to take. First, you need to stop the services with the command:
bash ./on-prem.sh stop
It is then advised to rename the current version:
mv /var/electroneek /var/electroneek_old
After that, follow all the steps described in the section Unpacking the archive and Configuration of the services in this manual.
From the previous version of Orchestrator, you need to copy the keys
and logs
folders to the directory with the new orchestrator. This is necessary so that all previously issued sessions, tokens, and collected workflow logs are available in the new version of Orchestrator:
cp /var/electroneek_old/package/keys/. /var/electroneek/package/keys/ -a
cp /var/electroneek_old/package/logs/. /var/electroneek/package/logs/ -a
Then go to the directory:
cd /var/electroneek/package
And run the command:
bash ./on-prem.sh update
Uninstallation
If you want to uninstall the on-premise configuration without deleting data from the database so you can further reinstall the build, there are a few steps that you need to perform.
Firstly, it is recommended to save a copy of the configuration file located at /var/electroneek/package/config.yaml.
Then go to the directory where the ElectroNeek software is installed:
cd /var/electroneek/package
Execute the command:
bash ./on-prem.sh uninstall
Note that this command will delete only the docker containers, while all the data in the database will not be deleted or affected in any way.
To complete the uninstallation process and prevent any possible conflicts in future installations, delete the directory where the software was installed:
cd /
sudo rm -rf /var/electroneek