Requirements & Dependencies

Requirements

  • Ubuntu Linux 18.04 LTS

In theory all the sbcs components should run on any platform supporting Java and Phyton but we support only the operation systems listed above since configuration for all the microservices involved is quite complex and we develop and test only these platforms.

Dependencies

Admin Tools

The following packages are expected from the sbcs-admin tools:

sudo apt install pwgen jq apt-transport-https nginx

Database

smart-bcs requires a postgres database to store all the process and configuration data:

apt -y install postgresql postgresql-contrib
/etc/init.d/postgresql restart

yp

yp is the equivalent to jq but for yaml files. Since the tool is not yet in the Ubuntu repositories we need to add the source repo:

sudo add-apt-repository ppa:rmescandon/yq

now we can install yp

sudo apt install yq -y

RabbitMQ

RabbitMQ is a Open Source Message Broker. smart-bcs is using rabbitmq to send commands to the smart-bcs components and to notifiy the task client for any changes.

The rabbitmq is written in erlang. So we need to install erlang support first:

Erlang

wget -O- "https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc" | sudo apt-key add -
echo "deb https://packages.erlang-solutions.com/ubuntu bionic contrib" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

RabitMQ only supports specific Erlang versions: https://www.rabbitmq.com/which-erlang.html so we pin the required version in apt to version 22.0.*

echo "Package: erlang*
Pin: version 22.0.*
Pin-Priority: 1000" > /etc/apt/preferences.d/erlang

now we can install erlang

sudo apt update
sudo apt -y install erlang

RabbitMQ from Rabbit repos

Install repo keys

wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add -
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

Now add RabbitMQ Repository To Ubuntu:

echo "deb https://dl.bintray.com/rabbitmq/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

To install RabbitMQ Server on Ubuntu, update apt list, then install rabbitmq-server package

sudo apt update
sudo apt -y install rabbitmq-server

OpenJDK 8

We are using adoptOpenJDK

import adoptOpenJDK key

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

Now we can install java. For security reasons we want only the jre version

apt -y install adoptopenjdk-8-hotspot-jre