Retail Workload Orchestrator
or RWO
-
hardware requirements
- x86 Hardware or x86 Virtual Machine
- At Least 5 GB of Disk Space
- 4 GB of RAM
-
software requirements
docker
18.06.x or greaterdocker-compose
v1.23.2 or greaterbash
v4.3.48 or greater
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Clone this repo at the path /opt/rwo
using your git protocol of choice.
RWO
service needs a working Internet Connection
during build and run.
RWO
consists of microservices which built as docker
images.
You need root
privileges to build the docker images
.
# sudo -i
# cd /opt/rwo
# ./build.sh
you might need to set proxy for docker
as
- Set the appropriate proxy in these variables
http_proxy
, https_proxy
, HTTP_PROXY
, HTTPS_PROXY
, HTTPPROXY
, HTTPSPROXY
export http_proxy=<proxy-url>
export https_proxy=<proxy-url>
export HTTP_PROXY=<proxy-url>
export HTTPS_PROXY=<proxy-url>
export HTTPPROXY=<proxy-url>
export HTTPSPROXY=<proxy-url>
- Follow the Build Steps
In case of build failures due to network connectivity. please follow the build steps again.
RWO
needs an initial configuration to function. This configuration includes provisioning of the keys.
In this version of RWO
the key provisioning is manual.
RWO
is designed to automatically discover the peer nodes which have RWO
installed and set up the cluster. The cluster thus formed consists of an docker-swarm as an orchestrator and a distributed file storage served by gluster.
Every Node in a cluster should have same SERF Key
kept in /etc/ssl/rwo/keyring.json
. SERF Key is a AES-256 symmetric key.
Contents of /etc/ssl/rwo/keyring.json
[
"HvY8ubRZMgafUOWvrOadwOckVa1wN3QWAo46FVKbVN8="
]
Additionally RSA PKI Keys need to be generated and kept at /etc/ssl
.
Follow the instructions to create all keys here.
It is adviseable to set up ssh console or [UI based swam management tools before starting RWO
.
- using systemd
Install rwo.service
# cp /opt/rwo/systemd/rwo.service /etc/systemd/system/
# ln -s /etc/systemd/system/rwo.service /etc/systemd/system/multi-user.target.wants/rwo.service
Start Service
systemctl start rwo
- without systemd
docker-compose -p rwo -f /opt/rwo/compose/docker-compose.yml up -d
RWO
forms a docker swarm
cluster of the nodes which are in the network.
Service stacks can be deployed on the cluster using any of the following methods.
- Portainer
It can be used to set up remote management
as well as local management
of swarm cluster through a WEB UI.
- Swarmpit
It can be used to set uplocal management
of swarm cluster through a WEB UI.
- systemd
systemctl stop rwo
- without systemd
docker-compose -p rwo -f /opt/rwo/compose/docker-compose.yml down
/opt/rwo/bin/reset