1. Home
  2. Knowledge Base
  3. Howto's
  4. SKUDONET Command Line Interface (skd-cli): A Comprehensive User Guide

SKUDONET Command Line Interface (skd-cli): A Comprehensive User Guide


The SKUDONET Command Line Interface (skd-cli) is an essential tool for managing and automating load balancing tasks through a streamlined CLI experience. By integrating seamlessly with SKUDONET’s API, skd-cli provides advanced functionalities for both Community and Enterprise editions, making it a powerful solution for efficient infrastructure management.

What is SKUDONET’s Command Line Interface (CLI)?

skd-cli is the acronym of SKUDONET Command Line Interface. This tool allows managing multiple load balancers from a command line or through automation of open-source load balancer actions in operation scripts.

skd-cli is a wrapper for the SKUDONET API (Application Programming Interface). It features an autocompletion functionality to simplify navigation through load balancer modules and their objects.

It is compatible with SKUDONET Enterprise load balancers from version EE 6.3 and above and SKUDONET Community load balancer version 7.2 and above.

Step-by-Step Installation of Command Line Interface (skd-cli)

Installation

skd-cli is available in the official SKUDONET APT repositories and it can be installed in a SKUDONET load balancer using:

apt-get update && apt-get install skd-cli

This package is also compatible with Debian, Ubuntu, or any Debian-based distribution to execute commands remotely on SKUDONET load balancers.

Profiles

SKUDONET command line (skd-cli) contains information in regards to the load balancer where the commands will be executed and the user who will execute the command (root by default in Community Edition, root and RBAC users in Enterprise Edition). skd-cli can manage different profiles, each profile is a defined Load Balancer connection saving the following data.

Load balancer api key:

If the command skd-cli is executed out of a SKUDONET load balancer the system will require the remote Host and Port for connecting to the SKUDONET API, the IP and PORT for the API are the same as the one used for the web GUI.

The information of the configured profiles is saved in the user home, for root /root/.skd-cli .

Setup

Before running skd-cli a ZAPI key is required. It can be enabled from the SKUDONET Web GUI, in the menu System > User settings.

SKUDONET skd-cli profile creation

Once skd-cli is installed, it can be started by executing skd-cli in the shell. If it is executed from the load balancer, it will run with the default profile localhost which manages the local load balancer and the ZAPI key will be requested. In any other case, the configuration assistant will be started.

SKUDONET cli interactive mode with localhost profile

 

Once the API KEY is entered the system will run the first connection against the API and the prompt will be marked as OK (red and grey) in case the connection can’t be done, the prompt will be marked in grey.

skd-cli (localhost)

In case the connection against the API is OK, then the prompt will be shown as follows:

skd-cli (localhost) OK

check the connectivity with some simple command, i.e. “system get” gives the default system information.

skd-cli (localhost) system get

If the profile settings need to be modified or another profile needs to be created, skd-cli profile command should be executed.

It is possible to load an already configured profile during the skd-cli invocation time, using the -p option as shown below.

sh:~$ skd-cli -p my_profile

or using the command with skd-cli in an interactive mode:

skd-cli: profile apply my_profile

An example is shown below:

sdk-cli command line interfaz

 

How it is used

skd-cli has two working modes:

1. Launched without arguments, the skd-cli shell is executed in interactive mode. This mode provides autocompletion and it does not finish once a command is executed, to exit from the skd-cli shell, type quit or press Ctrl+C. The default profile is loaded and it can be changed in any moment.

2. skd-cli is invoked with arguments. This will execute the command, without entering into the skd-cli interactive shell, and then return to the system console, the default localhost host profile is used, if you want to connect against another load balancer using a different profile please use -p <profile_name> paramenter.

Let’s see below the commands available in the SKUDONET Command Line Interface.

Commands and Parameters

A command has the following syntax:

sh:~$  skd-cli [   options   ] [        object      ] [action] [   ids list   ] [    parameters    ]

As an example:

sh:~$ skd-cli -nc -p test-lb2 farms-services-backend   set    farm1 service1 0 -ip 1.1.1.1 -port 80

Find below the description of every parameter.

options (-nc -p test-lb2): They are set in the skd-cli invocation. The complete option list is detailed in the help. No color (-nc) and load the profile test-lb2 (-p).
object (farms-services-backend): It is the kind of load balancer object that is selected, each object has a unique name, in this example, the command refers to the object backend inside a service of a farm.
action (set): It is the verb that will be executed.
ids list (farm1 service1 0): They are the identifiers that refer to the object. farm id: farm1, service id: service, backend id: 0.
parameters (-ip 1.1.1.1 -port 80): They are the parameters to set in the object. Mostly, they are expected when an object is created/added or modified.

All these parameters can be used in JSON format using the -j (–json) option.

The expected command arguments can be retrieved by pressing Enter. Sometimes parameters are not expanded until the previous arguments are set.

skd-cli (localhost): farm-service set

 

skd-cli includes an auto-completion functionality that can be triggered by pressing the double TAB button.

The updated help can be checked with the command below.

skd-cli help

Output Data

The output is printed in a coloured JSON format, but they can be disabled by invoking skd-cli with the option -nc (–no-colors). Some information messages could be shown, those messages are omitted when skd-cli is launched in command execution mode (without interactive skd-cli).

The error messages are displayed through the STDERR output.

Command Examples

A complete list of examples can be queried in the API documentation. Here are only some useful examples:

Get system info

sh:~$ skd-cli system get

Get system stats

sh:~$ skd-cli statistic-system get

List an overview of the farms

sh:~$ skd-cli farm list

Create a farm

sh:~$ skd-cli farm create -profile http -farmname farm1 -vip 10.0.0.241 -vport 443

Retrieve the configuration of a farm

sh:~$ skd-cli farm get farm1

Modify a farm

sh:~$ skd-cli farm set farm1 -listener https

Restart a farm

sh:~$ skd-cli farm restart farm1

Create a service

sh:~$ skd-cli farm-service add farm1 -id images

Modify a service

sh:~$ skd-cli farm-service set farm1 images -urlp /images

Add a backend

sh:~$ skd-cli farm-service-backend add farm1 images -ip 10.0.4.40 -port 443

Modify a backend

sh:~$ skd-cli farm-service-backend set farm1 images 0 -priority 1

Delete a backend

sh:~$ zcli farm-service-backend remove farm1 images 0

Unset a backend in maintenance mode

sh:~$ skd-cli farm-service-backend maintenance farm1 images 0

Set a backend in maintenance mode

sh:~$ skd-cli farm-service-backend non_maintenance farm1 images 0

Source Code Repository

The skd-cli source code project is available in the URL https://github.com/Skudonet/zcli take into consideration that any reference to zcli is compatible with skd-cli, zcli command is the previous project name  integrated with ZEVENET versions.

Enjoy skd-cli, the SKUDONET Command Line Interface!

Was this article helpful?

Related Articles

Download Skudonet ADC Load Balancer
Community Edition

Source Code

A versatile and installable ADC system designed for diverse vendor hardware.

DOWNLOAD SOURCE

Installable ISO 

Load Balancing as a Service alongside an ADC orchestration toolkit.

DOWNLOAD ISO
Download Community Edition

Download Community Edition

“We manage the information you provide with the sole aim of assisting with your requests or queries in regards to our products or services; applying the computer and security procedures to ensure its protection. Your data can be rectified or removed upon request but won’t be offered to any third parties, unless we are legally required to do so.” Responsible: SKUDONET SL - info@skudonet.com