Azure Quickstart Guide

A Quickstart guide to deploy a ZebClient cluster on Azure and Kubernetes using Terraform. Other deployments can be found on our public git repository.

Before You Start with ZebClient You Will Require

Get Azure Service Principal

in a terminal, login to azure cli and run the command to get your azure service principal credentials. it will be required to create the AKS cluster resources.

az login
az ad sp create-for-rbac --name zebclient

You will get an output like:

{
  "appId": "#####-#####-####-#####-#####",
  "displayName": "zebclient",
  "password": "a_password",
  "tenant": "*****-*****-*****-*****-*****"
}

This appId and password will be needed to create Azure resources.

Create a ZebClient Cluster

Let's start!

First, get information for the variables rquired to deploy the cluster:

  • cluster_name: It's just a lower case dash separated string that will be used to name and group resources in Azure. It can't contain spaces or special characters.

  • public_access_cidrs: IPs allowed to connect to ZebClient's management node.

  • service_principal_client_id: appId value from the azure principal command executed before.

  • service_principal_client_secret: password value from the azure principal command executed before.

  • zebclient_license_key: A string with your ZebClient license.

Choose which type of cluster you want to deploy Converged, Direct or Tiered and continue from the step for the mode chosen.

In Converged Mode:

After this installation a cluster like this will be created:

In a terminal, run the commands from the next code block:

mkdir -p zc-converged
cd zc-converged
git clone --depth 1 https://gitlab.com/zebware/public/zebclient-examples.git .
cd azure-converged

terraform init
terraform apply --auto-approve \
  -var "cluster_name=zc-converged" \
  -var 'public_access_cidrs=["xxx.xxx.xxx.xxx/32"]' \
  -var 'service_principal_client_id=XXX-XXX-XXX-XXX' \
  -var 'service_principal_client_secret=******************' \
  -var 'zebclient_license_key=XXX-XXX-XXX-XXX-XXX-XXX'

In Direct Mode:

After this installation a cluster like this will be created:

In a terminal, run the commands from the next code block:

mkdir -p zc-direct
cd zc-direct
git clone --depth 1 https://gitlab.com/zebware/public/zebclient-examples.git .
cd azure-direct

terraform init
terraform apply --auto-approve \
  -var "cluster_name=zc-direct" \
  -var 'public_access_cidrs=["xxx.xxx.xxx.xxx/32"]' \
  -var 'service_principal_client_id=XXX-XXX-XXX-XXX' \
  -var 'service_principal_client_secret=******************' \
  -var 'zebclient_license_key=XXX-XXX-XXX-XXX-XXX-XXX'

In Tiered Mode:

After this installation a cluster like this will be created:

In a terminal, run the commands from the next code block:

mkdir -p zc-tiered
cd zc-tiered
git clone --depth 1 https://gitlab.com/zebware/public/zebclient-examples.git .
cd azure-tiered

terraform init
terraform apply --auto-approve \
  -var "cluster_name=zc-direct" \
  -var 'public_access_cidrs=["xxx.xxx.xxx.xxx/32"]' \
  -var 'service_principal_client_id=XXX-XXX-XXX-XXX' \
  -var 'service_principal_client_secret=******************' \
  -var 'zebclient_license_key=XXX-XXX-XXX-XXX-XXX-XXX'

After Cluster Creation

  • Access to your AKS cluster

terraform output -raw aks_kubeconfig > kubeconfig
export KUBECONFIG=$(pwd)/kubeconfig

You can test if you can access to your k8s cluster with

kubectl get pods

And then access agents and servers with

kubectl exec -it [pod_name] sh
  • SSH access for ZebClient Management Node

zc_mgmt_host=$(terraform output -raw mgmt_node_public_ip)
zc_mgmt_user=$(terraform output -raw mgmt_node_username)
terraform output -raw mgmt_node_ssh_key > keypair
chmod 600 keypair
ssh -i keypair $zc_mgmt_user@$zc_mgmt_host
  • To install ZebClient agent on any new VM, follow the steps below:

    • Once the deployment is completed, ssh to the ZebClient management node.

    • Run the zc-cli tool.

    • Choose option 2) Add ZebClient agent node and then follow instructions in the interactive session.

Other Deployments

For any other deployments, please visit our public git repository.

Last updated