Deploying Axual Platform
Axual Platform consists of multiple components wrapped in Docker containers. As for any generic Docker container, deployments poses some complexity on passing the correct environmental variables and network / persistence setup (port mapping, volume mapping).
In order to overcome this complexity we have created a tool called Axual Deploy that bootstraps the configuration and deploy the Platform into your local machine.
Prerequisites
Before starting, there are a few things required to setup:
-
use any Linux distribution or OS X with Bash 4.2+ installed ( Windows systems are not supported )
-
install Docker
-
download the example setup of Axual Deploy for local distribution
Configuring your local machine
The example setup of Axual Deploy is as follows
-
Deployment scripts and platform configuration
-
scripts that starts/stops the following services: Cluster, Instance, Management and Monitoring
-
Cluster configuration
-
Tenant and Instance configuration
-
-
Setup.sh script
-
Security folder with Dummy Keystores for components in order to enable SSL communication
Before running the platform, it is required to run the setup.sh
script (it might ask your for the sudo password):
./setup.sh
This script will prepare your system for running the platform, here’s what it does
-
Creating an alias between
localhost
and192.168.99.100
(all components will be exposed under the mentioned IP instead oflocalhost
) -
Generating a
~/host.sh
file used by deployment scripts containing the NodeName, Instance name and your Local Data Directory
Running the platform
To simply run the platform, change the directory to axual-deploy
folder and run the following command:
./axual.sh start
If everything went successfully, a similar output should be present in the console:
Configuring cluster services for node localhost in cluster LOCAL Preparing exhibitor: Done Starting exhibitor: Done Waiting for exhibitor on 192.168.99.100 Connected to exhibitor on 192.168.99.100 Preparing broker: Done Starting broker: Done Waiting for broker on 192.168.99.100 Connected to broker on 192.168.99.100 Preparing cluster-api: Done Starting cluster-api: Done Preparing distributor: Done Starting distributor: Done Deploying topic _company-local-environments: Done Deploying topic _company-local-schemas: Done Configuring instance services for company-local in cluster LOCAL Stopping distributors with prefix company-local-message-distributor-from-: Done Stopping distributors with prefix company-local-offset-distributor-from-: Done Stopping distributors with prefix company-local-schema-distributor-: Done Preparing company-local-sr-master: Done Starting company-local-sr-master: Done Preparing company-local-sr-slave: Done Starting company-local-sr-slave: Done Running copy-config-company-local-discovery-api: Done Preparing company-local-discovery-api: Done Done Starting company-local-discovery-api: Done Preparing company-local-instance-api: Done Cluster servers are https://platform.local:9080 Done Starting company-local-instance-api: Done Configuring mgmt services for node localhost in cluster LOCAL Running clean-config-prometheus: /config/prometheus Done Generating prometheus targets... Generating prometheus configuration... Running create-config-prometheus: Done Running copy-config-prometheus: Done Starting prometheus: Done Provisioning grafana dashboards... Running copy-config-grafana: Done
To stop the platform, run the following command:
./axual.sh stop
Troubleshooting
Troubleshooting the platform deployment can be done at multiple levels the following scenarios can be referenced when attempting to troubleshoot your own deployment.
Axual Deploy scripts completed with errors
In this case, adding the -v
flag would result in a verbose output on the console which it will make the debugging
process easier. The command will look like :
./axual.sh start -v
Axual Deploy scripts completed successfully but some components are unreachable
Run the following command to check if all the applications have started and the port mappings are correct:
docker ps
If everything was alright, an output similar to this one should be present:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a7c7b082b7fa axual/clusterapi:1.0.1 "/home/kafka/start-j…" About a minute ago Up About a minute 192.168.99.100:9080->9080/tcp, 192.168.99.100:4001->8081/tcp cluster-api 046e11d87426 axual/instance-application:1.0.0 "/home/kafka/start-j…" 3 minutes ago Up 3 minutes 192.168.99.100:9181->9181/tcp, 192.168.99.100:31000->31000/tcp axual-local-instance-api 711704a1c458 axual/discovery-api:2.0.2 "/home/kafka/start-j…" 17 minutes ago Up 17 minutes 192.168.99.100:29000->8080/tcp, 192.168.99.100:30000->8081/tcp, 192.168.99.100:443->8443/tcp axual-local-discovery-api 6a7443c81309 axual/schemaregistry:3.5.0 "/home/kafka/start-s…" 18 minutes ago Up 17 minutes 192.168.99.100:24000->24000/tcp, 192.168.99.100:25000->25000/tcp, 192.168.99.100:27000->27000/tcp, 192.168.99.100:26000->8088/tcp axual-local-sr-slave 106eb3fc17e2 axual/schemaregistry:3.5.0 "/home/kafka/start-s…" 18 minutes ago Up 18 minutes 127.0.0.1:20000->20000/tcp, 127.0.0.1:21000->21000/tcp, 192.168.99.100:23000->23000/tcp, 192.168.99.100:22000->8088/tcp axual-local-sr-master a6bb2f788cdd axual/broker:5.0.2 "/home/kafka/start-b…" 22 minutes ago Up 22 minutes 192.168.99.100:9001->9001/tcp, 192.168.99.100:9092->9092/tcp, 192.168.99.100:9094-9096->9094-9096/tcp, 192.168.99.100:4003->8088/tcp broker 3c015ffebbc6 axual/exhibitor:2.0.1 "/home/kafka/start-e…" 23 minutes ago Up 23 minutes 192.168.99.100:2181->2181/tcp, 192.168.99.100:2888->2888/tcp, 192.168.99.100:3888->3888/tcp, 192.168.99.100:8082->8082/tcp exhibitor
Please pay attention to the following columns:
-
STATUS - all components should have an Up status (e.g. Up 10 minutes)
-
PORTS - all components should be listening on ip 192.168.99.100 on the assigned ports
In the case that all components have a correct state but they are not accessible make sure to run setup.sh
script before
running Axual Deploy.
If there are any issues or questions regarding Axual Deploy you can always contact the support team using the Support Page