Wizard Client (CLI) Installation
Wizard Client is a command line interface for interacting with the Cluster Wizard control plane. It provides authenticated access for performing management operations such as registering nodes and querying cluster state. Wizard Client acts as a management interface and can run on any machine that has network access to Cluster Wizard.
Wizard Client is available as both a command line interface (CLI) and a web based interface (Wizard Client Web UI). Both provide the same control plane functionality.
This document describes how to install and configure the Wizard Client CLI. For the web based interface, see Wizard Client Web UI.
Wizard Client Requirements​
- Supported host operating systems:
- Ubuntu 20.04, 22.04, 24.04
- Rocky Linux 9.2
- RHEL 9.2
- Windows (amd64)
- macOS (amd64 or arm64)
- A Cluster Wizard server must be installed and running.
- The system running Wizard Client must have network connectivity to the Cluster Wizard service.
- If Cluster Wizard is deployed without a certificate signed by a trusted Certificate Authority (CA), a CA certificate must be configured.
- If Cluster Wizard is deployed with a certificate that includes
dnsNames, those DNS entries must be resolvable from the host where Wizard Client is installed.
Install Wizard Client​
The file naming convention is wizard-client-<version>-<distribution>. In this guide we will use version 0.4.0.
See Wizard Client Downloads for alternative versions and distributions.
- Download a release tarball from Wizard Client Downloads
- Extract the tarball to obtain the
wizard-clientbinary and the includedREADMEfile:
tar -xvf wizard-client-0.4.0-<distribution>.tgz;
- Setup Wizard Client
-
If Cluster Wizard is deployed with a certificate that includes
dnsNames, those DNS entries must be resolvable from the current host. Consider:- Adding the required entries to your DNS server.
- On Linux or macOS adding entries to
/etc/hosts. - On Windows adding entries to
C:\Windows\System32\drivers\etc\hosts.
noteThe Wizard Client defaults to a DNS name of cluster-wizard and port 50001. To use a different name or port:
- On Linux or macOS, set the environment variable
CLUSTER_WIZARD_SERVERandCLUSTER_WIZARD_PORT
Example:
export CLUSTER_WIZARD_SERVER="my-cluster-wizard.corespeq.com"
export CLUSTER_WIZARD_PORT="443"- Alternatively,
wizard-clientaccepts the -s (server address) and -p (port) parameters.
Example:
wizard-client -s my-cluster-wizard.corespeq.com -p 443Both methods are equivalent, use whichever is more convenient for your environment.
-
Configure Wizard Client with client certificate and CA​
- Client certificate
- Generate certificate key pair
wizard-client -c cert-gen-keys - Generate certificate signing request (CSR).
The CSR will be sent to the Cluster Wizard administrator, who may approve it and provide the client certificate and CA files.
wizard-client -c cert-create-csr - Use the
cert-setcommand to configure Wizard Client with the certificate. If Cluster Wizard is deployed without a certificate signed by a trusted CA, use the-caflag to specify the CA certificate:wizard-client -c cert-set -cert <cert_file> -ca <ca_file>
- Generate certificate key pair
- Optional: Set Up Shell Auto-Completion (Linux Only)
- Install required packages:
apt install jq - Enable auto-completion:
source <(wizard-client --autocompletion)
- Install required packages:
Troubleshooting​
Common Problems​
Corrupted wizard-client-0.4.0.tgz file​
- Bash output of
tar -xvf wizard-client-0.4.0-<distribution>.tgzis one of:-
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now -
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now -
gzip: stdin: invalid compressed data--crc error
gzip: stdin: invalid compressed data--length error
tar: Child returned status 1
tar: Error is not recoverable: exiting now -
tar: This does not look like a tar archive
tar: Skipping to next header
tar: A lone zero block at 11
tar: Exiting with failure status due to previous errors
-
- Cause: The wizard-client.tgz file is corrupted.
- Verify:
- Verify the file type matches expectations:
file wizard-client-latest-ubuntu22.tgz
wizard-client-latest-ubuntu22.tgz: gzip compressed data... - check compression integrity (no output indicates success).
gzip -t wizard-client-latest-ubuntu22.tgz
- Verify the file type matches expectations:
- Verify:
- Solution: Download Wizard Client again.
Incorrect permissions on wizard-client​
- Bash output of running wizard-client
-
bash: ./wizard-client: Permission denied
-
- Cause: Incorrect file permissions on wizard-client
- Verify:
- check file exists and is executable by running:
[ -e ./wizard-client ] && ( [ -x ./wizard-client ] && echo "wizard-client is executable" || echo "wizard-client exists but is NOT executable" ) || echo "wizard-client does not exist"
- check file exists and is executable by running:
- Verify:
- Solution: Correct file permissions to make file executable
chmod a+x wizard-client
Incorrect architecture of wizard-client​
- Bash output of running wizard-client
-
bash: ./wizard-client: cannot execute binary file: Exec format error
-
- Cause: Incorrect wizard-client architecture selected for download.
- Verify:
- check file type, it should match the target host environment:
#Linux x86_64
file ./wizard-client
./wizard-client: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, Go BuildID=-iZte5sEl8PviVFqmcG1/3tFITwexGAaYU6eINNfK/H0jYpXh8P_dWFc5ljoWI/ZBGHplVsfVcpmWP_7_97, with debug_info, not stripped
#macOS ARM64
file ./wizard-client
./wizard-client: Mach-O 64-bit arm64 executable, flags:<|DYLDLINK|PIE>
#macOS x86_64
file ./wizard-client
./wizard-client: Mach-O 64-bit x86_64 executable, flags:<|DYLDLINK|PIE>
- check file type, it should match the target host environment:
- Verify:
- Solution: Download the correct architecture version of Wizard Client that matches the target host.
Incorrect distribution of wizard-client​
- Bash output of running wizard-client
-
bash: ./wizard-client /lib/x86_64-linux-gnu/libc.so.Z: version `GLIBC_X.YY' not found
-
- Cause: Incorrect wizard-client distribution selected for download.
- Solution: Download the correct distribution of Wizard Client that matches the target host.
Cluster Wizard certificate not trusted or incorrect certificate specified​
- Bash output of running wizard-client
-
./wizard-client -c list
[ERROR] : rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: tls: failed to verify certificate: x509: certificate signed by unknown authority (possibly because of \"x509: ECDSA verification failure\" while trying to verify candidate authority certificate \"CORESPEQ INC\")"
-
- Cause: The Cluster Wizard certificate, ca_cert.pem, is incorrect or not trusted by target host.
- Solutions:
- If ca_cert.pem was set by wizard-client for future use, verify that ca_cert.pem exists:
If certificate exists, it does not match the Cluster Wizard that wizard-client is communicating with. Delete and replace with Cluster Wizard certificate, ca_cert.pem, provided by Cluster Wizard admin.
ls ~/.wizard-clients/ca_cert.pem - If ca_cert.pem was not set by wizard-client for future use, obtain a Cluster Wizard certificate, ca_cert.pem, from a Cluster Wizard admin and use
-ca ./ca_cert.pemwhen using wizard-client. eg:wizard-client -c cert-create-csr -ca ./ca_cert.pem - Obtain a Cluster Wizard certificate, ca_cert.pem, from a Cluster Wizard admin and set it for future use when adding the user's certificate.
See Configure Wizard Client with client certificate and CA.
wizard-client -c cert-set -cert user_cert.pem -ca ./ca_cert.pem - Obtain a Cluster Wizard certificate, ca_cert.pem, from a Cluster Wizard admin and add it to target hosts certificate trust. Steps vary depending on target host OS.
- Use a publicly trusted certificate for Cluster Wizard.
- If ca_cert.pem was set by wizard-client for future use, verify that ca_cert.pem exists:
DNS name of Cluster Wizard is not resolvable​
- Bash output of running wizard-client
-
./wizard-client -c list
[ERROR] : rpc error: code = Unavailable desc = dns: A record lookup error: lookup cluster-wizard: server misbehaving
-
- Cause: The DNS name used by Cluster Wizard is not resolvable by target host
- Solutions:
- See Install Wizard Client for steps on ensuring Cluster Wizard DNS name is resolvable.
User certificate and private key do not match​
- Bash output of running wizard-client
-
./wizard-client -c list
[ERROR] : failed to load client cert: tls: private key type does not match public key type
-
- Cause: The user's certificate and private key used for mTLS communication to Cluster Wizard do not match.
- Solutions:
- If using
-certand-pkeywith wizard-client the certificate and private key specified do not match. Use the correct files for certificate and private key. eg:
./wizard-client -c list -cert user-cert.crt -ca ./ca_cert.pem -pkey user-private.key- The certificate stored at ~/.wizard-clients/wizard-clients_cert.pem and private key stored at ~/.wizard-clients/wizard-clients_private_key.pem do not match. Backup files, and replace with correct files. If correct files are missing, consider creating a new key pair and submitting a CSR, see Configure Wizard Client with client certificate and CA.
- If using
Cluster Wizard does not trust user's certificate​
- Bash output of running wizard-client
-
./wizard-client -c list
[ERROR] : rpc error: code = Unavailable desc = connection error: desc = "error reading server preface: remote error: tls: unknown certificate authority"
-
- Cause: Cluster Wizard does not trust the user's certificate. Either the certificate was signed by a different CA, or the certificate used is incorrect.
- Solutions: If a signed certificate is not available see Configure Wizard Client with client certificate and CA for steps on how to obtain a signed certificate.
- If using
-certand-pkeywith wizard-client the certificate specified is not trusted by Cluster Wizard. Use a certificate signed by the Cluster Wizard's CA. eg:
./wizard-client -c list -cert user-cert.crt -ca ./ca_cert.pem -pkey user-private.key- If not using
-certand-pkey, then the certificate stored at ~/.wizard-clients/wizard-clients_cert.pem is not trusted by Cluster Wizard. Backup file, and replace with a Cluster Wizard signed certifcate.
- If using
User key pair already exists when generating a new key pair​
- Bash output of running wizard-client
-
./wizard-client -c cert-gen-keys
[ERROR] : create Key Files - File [/home/user/.wizard-clients/wizard-clients_private_key.pem] exists
-
- Cause: When generating a new key pair, if a key pair already exists wizard-client will exit with an error.
- Solution: The key pair stored at ~/.wizard-clients/wizard-clients_cert.pem and ~/.wizard-clients/wizard-clients_private_key.pem prevents wizard-client from generating a new one. Confirm that the current key pair is no longer needed, then delete or back it up.
User attempted to submit a CSR, but no key pair exists​
- Bash output of running wizard-client
-
wizard-client -c cert-create-csr
[ERROR] : private key - File [/home/cluster-admin/.wizard-clients/wizard-clients_private_key.pem] does not exist
-
- Cause: User attempted to submit a CSR, but no key pair exists to create a CSR.
- Solution: The user needs to run
./wizard-client -c cert-gen-keysbeforewizard-client -c cert-create-csr. See Configure Wizard Client with client certificate and CA.