Autonomous Cluster for the Edge
or ACE
-
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/ace
using your git protocol of choice.
ACE
service needs a working Internet Connection
during build and run.
ACE
consists of microservices which built as docker
images.
You need root
privileges to build the docker images
.
# sudo -i
# cd /opt/ace
# ./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.
ACE
needs an initial configuration to function. This configuration includes provisioning of the keys.
In this version of ACE
the key provisioning is manual.
ACE
is designed to automatically discover the peer nodes which have ACE
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/ace/keyring.json
. SERF Key is a AES-256 symmetric key.
Contents of /etc/ssl/ace/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 ACE
.
- using systemd
Install ace.service
# cp /opt/ace/systemd/ace.service /etc/systemd/system/
# ln -s /etc/systemd/system/ace.service /etc/systemd/system/multi-user.target.wants/ace.service
Start Service
systemctl start ace
- without systemd
docker-compose -p ace -f /opt/ace/compose/docker-compose.yml up -d
ACE
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 ace
- without systemd
docker-compose -p ace -f /opt/ace/compose/docker-compose.yml down
/opt/ace/bin/reset