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
docker18.06.x or greaterdocker-composev1.23.2 or greaterbashv4.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