Getting started

STEP 1 - Prepare ZebClient Deployment Manager machine (OS, user and required packages)

The machine running ZebClient Deployment Manager must meet the following requirements:

  • VM or bare-metal
  • AMD64 or ARM64 architecture with 50 GB of storage, No specific CPU or RAM requirements
  • OS: Ubuntu 20.04
  • Non-root user with sudo-privilege
Read this section if assistance is needed to create a non-root user with sudo privilege.

Login to the ZebClient Deployment Manager machine

Run as root, and replace <new-user> with a unique username of your choice:

adduser <new-user>

# Once prompted, set the password for the user:

New password:
Retype new password:
passwd: password updated successfully

# It is possible to set the following values, or just enter emtpy values (default):

Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

Once the new user is created, assign the sudo privilege:

usermod -aG sudo <new-user>

STEP 2 - Install ZebClient Deployment Manager

Ensure that you have logged in as a non-root user with sudo privilege to ZebClient Deployment Manager machine.

Run the following command to install ZebClient Deployment Manager:

wget -O - https://gitlab.com/zebware/public/zebclient-deployment/-/raw/v1.0.5-release/manager.sh | bash
Only OnPrem or Hypervisor - Prepare Target machines and network

Prepare target machines (OS and user) and network

The target machines must meet the following requirements:

  • The machine is running Ubuntu 20.04.
  • The user of the target machines should have sudo-privilege and be able to run sudo-privileged commands without password.
  • Following ports must be opened between the machines
    • ZebClient grpc ports (17100 - 17120)
    • SSH port (22)

Create a new ssh key-pair for ZebClient Deployment Manager to access ZebClient Cluster passwordless:

ssh-keygen -t rsa
Read this section if assistance is needed to create a new ssh key-pair.

Once prompted, please just enter the default value:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/testuser1/.ssh/id_rsa):
Created directory ‘/home/testuser1/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/testuser1/.ssh/id_rsa
Your public key has been saved in /home/testuser1/.ssh/id_rsa.pub

Only for OnPrem or Hypervisor installation - Add passwordless entry to target machines

This step is handled automatically by ZebClient Deployment Manager in AWS- and Azure-compute nodes.

Copy the ssh public key to the target machines (repeat this step for all of the target machines):

<admin-user> is the target machine user with passwordless sudo-privilege

ssh-copy-id <admin-user>@<target-machine-fqdn-or-ipaddr>

STEP 3 - ZebClient license file

The ZebClient license is provided at Zebware Customer Portal. The license file is in JSON-format and can be downloaded or content can be copied.

Copy the JSON and navigate to folder [/home/<user>/zebclient-deployment/license/]. Open the zebclient_license.json with vi

vi zebclient_license.json

Paste the JSON and save.

If you choose to download the license file it must be placed in [/home/<user>/zebclient-deployment/license/] and the name of the file must be zebclient_license.json.


STEP 4 - Install ZebClient Cluster with ZebClient Deployment Manager

The ZebClient Deployment Manager is now installed and ready to be used for ZebClient Cluster deployment.

Navigate to the “zebclient-deployment” folder located in [/home/<user>/zebclient-deployment/]

cd zebclient-deployment

Run ZebClient Deployment Manager (zebclient_manager.py) and follow the wizard, please use this Deployment Guide for guidance:

./zebclient_manager.py -ci

The command above starts ZebClient Deployment Manager wizard:

Deployment ID: Enter an ID for the deployment without any special characters for example ZebClientCluster

Please select where ZebClient Application and Cluster Nodes will be installed: AWS, Azure, OnPrem [AWS]: <Select AWS, Azure or OnPrem ([AWS] means default)>

AWS and Azure are two supported cloud providers that offer compute notes, meaning ZebClient Cluster can be hosted in that environment. ZebClient Deployment Manager will automatically interact with AWS or Azure to get everything up and running based on selected configuration alternatives in the steps to come.

OnPrem means that ZebClient Cluster is hosted locally, Hypervisor or other cloud providers and details about target machines need to be entered in the steps to come.

Please select the Deployment Guide relevant for your environment:

AWS - Cloud Service Provider

Please enter the details for your Cloud Service Provider AWS:

AWS_ACCESS_KEY_ID:
AWS_SECRET_ACCESS_KEY:
AWS_DEFAULT_REGION: for example us-east-1

Azure - Cloud Service Provider

ARM - Azure Resource Manager

ARM_SUBSCRIPTION_ID:
STORAGE_ACCOUNT_NAME:
ARM_CLIENT_ID:
ARM_CLIENT_SECRET:
ARM_TENANT_ID:

OnPrem

For Wasabi:
S3_ACCESS_KEY_ID:
S3_SECRET_ACCESS_KEY:
S3_DEFAULT_REGION: for example us-east-1

For any other cloud provider:
S3_ACCESS_KEY_ID:
S3_SECRET_ACCESS_KEY:
S3_DEFAULT_REGION: for example us-east-1
S3_ENDPOINT_URL:
S3_BUCKET:

Please select ZebClient cluster size from small(s), medium(m), large(l) or custom(c) [s] <Select small(s), medium(m), large(l) or custom(c)> Default is [s]

ZebClient Deployment Manager comes pre-configured with a few cluster sizes for simplicity. It also supports a Custom alternative for more advanced users.

Please read Application nodes & cluster size to determine a cluster size that fits your business needs.

Enter the path of the ZebClient license [/home//zebclient-deployment/license/zebclient-license.json]:

ZebClient Deployment Manager needs to know the location of the license file. Ensure that the license file is located in the default location or change it to a place of your choice.

Continue? [yes]

ZebClient Cluster installation is about to start and ZebClient Deployment Manager will list all configuration selections and ask for a configuration confirmation. To continue select Yes.

ZebClient Deployment Manager runs the deployment of a ZebClient Cluster as defined in the configuration.

Once the script completes the installation is complete.


STEP 5 - ZebClient Cluster validation

ZebClient Deployment Manager will print the fqdn or ip-addresses of the created Application nodes in the following format:


        endpoint="https://s3.us-east-1.amazonaws.com"
        [control]
        control01 ansible_connection=local

        [agent]
        prod-ZebclientCluster-agent-agent0 ansible_host=<IP ADDRESS>  ansible_user=ubuntu

        [server]
        prod-ZebclientCluster-server-server0 ansible_host=<IP ADDRESS> ansible_user=ubuntu
        prod-ZebclientCluster-server-server1 ansible_host=<IP ADDRESS>  ansible_user=ubuntu

Please login to one of the Application nodes using ansible_user and switch to ZebClient User:

ssh ubuntu@<target-machine-fqdn-or-ipaddr>
sudo su - zebclient

Enable bash:

bash

Navigate to file system folder:

cd /fs

Create a folder that will be used as file system bucket:

mkdir zebclient

Enter the new folder:

cd zebclient

Write something to the file system in a cluster:

date > helloworld

Validate that it was written to the Application node:

ls

If you have a cluster with at least two Applications nodes it is possible to validate that the content is available in another Application node.

Logout from the Application node:

exit

Login to another Application node (fqdn-or-ipaddr) in the ZebClient cluster by repeating Step 5. Navigate to the /fs/zebclient folder and list the content:

ls

The content that you added in the first Application node is now available in the second Application node as they are within the same cluster.

You are now ready to explore and enjoy ZebClient cluster!