Deploying Agents on Linux

Last updated: July 23, 2026

The Cyrisma Linux Agent supports Debian-based and RPM-based Linux distributions. The deployment script downloads the appropriate installation package, installs the agent, and starts the CYRISMA Agent service.

For general CPU, memory, network, and firewall requirements, refer to Global Agent Requirements | Cyrisma Knowledge Base.

Supported Linux Platforms

Debian (.deb)

The Debian package supports Debian-based distributions, including:

  • Ubuntu

  • Debian

  • Linux Mint

  • Pop!_OS

  • Kali Linux

Supported architectures:

  • x86_64

  • ARM64/aarch64

Red Hat (.rpm)

The RPM package supports:

  • Red Hat Enterprise Linux 9

  • Red Hat Enterprise Linux 10

  • Amazon Linux 2023 and later

The RPM deployment script supports x86_64 systems and requires GLIBC 2.29 or later.

Prerequisites

Before installing the Cyrisma Linux Agent, ensure that the system has:

  • Terminal access

  • Root or sudo privileges

  • curl

  • A supported package manager:

    • apt for Debian-based distributions

    • dnf for RPM-based distributions

  • A supported operating system and architecture

  • Access to the required Cyrisma domains

Ensure outbound access over TCP 443 to:

  • *.cyrisma.com

  • *.dataspotlite.com

TLS/SSL inspection should bypass these domains.

You will also need:

  • Your Cyrisma installation key

  • Your Cyrisma instance URL, such as https://ccXXXXXX.cyrisma.com

Protect your installation key and do not share it outside your organization.

Copy the Deployment Script

  1. Log in to your Cyrisma instance.

  2. Navigate to Admin > Agent Setup.

  3. Select the Deployment tab.

  4. Select Linux as the operating system.

  5. Select the appropriate package:

    • Debian (.deb) for Debian-based distributions

    • Red Hat (.rpm) for supported RPM-based distributions

  6. Copy the displayed deployment script.

The script displayed in Cyrisma includes the installation key and instance URL for your environment.

Run the Deployment Script

Save the copied script as:

cyrisma-agent-install.sh

Make the script executable:

chmod +x cyrisma-agent-install.sh

Run the script:

sudo ./cyrisma-agent-install.sh

The script will:

  • Confirm or obtain root privileges

  • Check for and remove an existing Cyrisma Agent installation

  • Verify that the system architecture is supported

  • Verify the GLIBC version when using the RPM package

  • Download the appropriate installation package

  • Install the package and its required dependencies

  • Enable and start the CYRISMA Agent service

  • Display the service status

Debian (.deb) Deployment Script

#!/bin/bash

# CYRISMA Agent Deployment Script for Linux
# Based on: https://support.cyrisma.com/articles/1293698544-deploying-agents-on-linux
# This script downloads and installs the CYRISMA agent on a supported Linux system.
# Make sure you have your organization-specific installation key and tenant details.
# This script will attempt to run with sudo privileges.
# Key string and tenant url from the instance are REQUIRED!!
# You may set key string and tenant url with command line options, environment variables or by changing this script to embed the values below.
# When using environment variables, the variable names must be CY_KEY and CY_URL (Case sensitive)

# Uncomment these lines and set values here if using the embedded method:
CY_KEY="XXXX-XXXX-XXXX"
CY_URL="https://ccnnnnnn.cyrisma.com"

if [[ $EUID -ne 0 ]]; then
   echo "This script requires root privileges. Re-running with sudo..."
   exec sudo -E bash "$0" "$@"
   exit 1 # Should not be reached if exec is successful
else
   echo "Script is running with root privileges. Continuing..."
fi

# Check input arg options: -k is the key string, -t is the tenant URL
while getopts "k:t:" opt; do
  case $opt in
    k)
      KEYARG=$OPTARG
      ;;
    t)
      TENARG=$OPTARG
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      echo "Valid Options:"
      echo "   -k xxxx-xxxx-xxxx (to specify key string)"
      echo "   -t https://ccnnnnnn.cyrisma.com (to specify tenant URL)"
      exit 1
      ;;
  esac
done

if [ -z "$KEYARG" ]; then
  # Key missing, Check if key is in environment variable
  if [ -n "$CY_KEY" ]; then
    KEYARG=$CY_KEY
  else
    echo "Agent install key has not been specified, installer exiting..."
    exit 1
  fi
fi

if [ -z "$TENARG" ]; then
  # Tenant missing, Check if tenant is in environment variable
  if [ -n "$CY_URL" ]; then
    TENARG=$CY_URL
  else
    echo "Tenant URL has not been specified, installer exiting..."
    exit 1
  fi
fi

echo "Installing using:"
echo "Key    : $KEYARG"
echo "Tenant : $TENARG"

# Check for previous agent installed
CYPATH="/usr/local/bin/cyrisma"
echo "Checking if $CYPATH exists..."
if [ -d "$CYPATH" ]; then
    echo "Pre-existing agent found. Removing..."
    systemctl stop com.cyrisma.cybroker.service
    apt purge cybroker -y
fi

ARCH=$(uname -m)
if [ "$ARCH" == "x86_64" ]; then
    CYRISMA_DOWNLOAD_URL="https://dl.cyrisma.com/6167656E7473/CyBroker_Linux_Installer.deb"
elif [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
    CYRISMA_DOWNLOAD_URL="https://dl.cyrisma.com/6167656E7473/CyBroker_arm_Installer.deb"
else
    echo "Unsupported architecture: $ARCH"
    exit 1
fi

echo "Downloading CYRISMA Agent ($CYRISMA_DOWNLOAD_URL)..."
curl -fsSL -o /usr/local/bin/cyrisma_installer.deb "$CYRISMA_DOWNLOAD_URL"
chmod +x /usr/local/bin/cyrisma_installer.deb

echo "Download complete. Unpacking agent..."

export cy_key=$KEYARG cy_url=$TENARG; apt install -y /usr/local/bin/cyrisma_installer.deb

echo "Starting the CYRISMA agent service..."

if command -v systemctl >/dev/null 2>&1; then
    systemctl enable com.cyrisma.cybroker.service
    systemctl start com.cyrisma.cybroker.service
    sleep 2
    systemctl status com.cyrisma.cybroker.service --no-pager
else
    service com.cyrisma.cybroker.service start
fi

echo "CYRISMA agent installed and running."

Red Hat (.rpm) Deployment Script

#!/bin/bash

# CYRISMA Agent Deployment Script for Linux - RPM based
# Based on: https://support.cyrisma.com/articles/1293698544-deploying-agents-on-linux
# This script downloads and installs the CYRISMA agent on a supported Linux system.
# Make sure you have your organization-specific installation key and tenant details.
# This script will attempt to run with sudo privileges.
# Key string and tenant url from the instance are REQUIRED!!
# You may set key string and tenant url with command line options, environment variables or by changing this script to embed the values below.
# When using environment variables, the variable names must be CY_KEY and CY_URL (Case sensitive)

# Uncomment these lines and set values here if using the embedded method:
CY_KEY="xxxx-xxxx-xxxx"
CY_URL="https://ccnnnnnn.cyrisma.com"

if [[ $EUID -ne 0 ]]; then
   echo "This script requires root privileges. Re-running with sudo..."
   exec sudo -E bash "$0" "$@"
   exit 1 # Should not be reached if exec is successful
else
   echo "Script is running with root privileges. Continuing..."
fi

# Check input arg options: -k is the key string, -t is the tenant URL
while getopts "k:t:" opt; do
  case $opt in
    k)
      KEYARG=$OPTARG
      ;;
    t)
      TENARG=$OPTARG
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      echo "Valid Options:"
      echo "   -k xxxx-xxxx-xxxx (to specify key string)"
      echo "   -t https://ccnnnnnn.cyrisma.com (to specify tenant URL)"
      exit 1
      ;;
  esac
done

if [ -z "$KEYARG" ]; then
  # Key missing, Check if key is in environment variable
  if [ -n "$CY_KEY" ]; then
    KEYARG=$CY_KEY
  else
    echo "Agent install key has not been specified, installer exiting..."
    exit 1
  fi
fi

if [ -z "$TENARG" ]; then
  # Tenant missing, Check if tenant is in environment variable
  if [ -n "$CY_URL" ]; then
    TENARG=$CY_URL
  else
    echo "Tenant URL has not been specified, installer exiting..."
    exit 1
  fi
fi

echo "Installing using:"
echo "Key    : $KEYARG"
echo "Tenant : $TENARG"

# Check for previous agent installed
CYPATH="/usr/local/bin/cyrisma"
echo "Checking if $CYPATH exists..."
if [ -d "$CYPATH" ]; then
    echo "Pre-existing agent found. Removing..."
    systemctl stop com.cyrisma.cybroker.service
    sudo dnf remove cybroker -y
fi

ARCH=$(uname -m)
if [ "$ARCH" == "x86_64" ]; then
    CYRISMA_DOWNLOAD_URL="https://dl.cyrisma.com/6167656E7473/CyBroker_Linux_Installer.rpm"
else
    echo "Unsupported architecture: $ARCH"
    exit 1
fi

# GLIBC double check:
MIN_VERSION="2.29"
GLIBC_VERSION=$(ldd --version | awk 'NR==1{print $NF}')
if [ "$(printf '%s\n%s' "$MIN_VERSION" "$GLIBC_VERSION" | sort -V | head -n1)" = "$MIN_VERSION" ]; then
    echo "GLIBC version: $GLIBC_VERSION supported!"
else
    echo "Unsupported or missing GLIBC."
    exit 1
fi

echo "Downloading CYRISMA Agent ($CYRISMA_DOWNLOAD_URL)..."
curl -fsSL -o /usr/local/bin/cyrisma_installer.rpm "$CYRISMA_DOWNLOAD_URL"
chmod +x /usr/local/bin/cyrisma_installer.rpm

echo "Download complete. Unpacking agent..."

export CY_KEY=$KEYARG CY_URL=$TENARG; sudo -E dnf localinstall /usr/local/bin/cyrisma_installer.rpm -y

DIR="/usr/local/bin/cyrisma"
if [ -d "$DIR" ]; then
  echo "Starting the CYRISMA agent service..."

  if command -v systemctl >/dev/null 2>&1; then
    systemctl enable com.cyrisma.cybroker.service
    systemctl start com.cyrisma.cybroker.service
    sleep 2
    systemctl status com.cyrisma.cybroker.service --no-pager
  else
    service com.cyrisma.cybroker.service start
  fi
  echo "CYRISMA agent installed and running."
else
  echo "CYRISMA agent installation did not complete."
fi

Verify the Installation

Check the service status:

sudo systemctl status com.cyrisma.cybroker.service --no-pager

The service should display as active and running.

After installation:

  1. Return to Admin > Agent Setup.

  2. Locate the newly detected Linux agent in the provisioning tab.

  3. Complete the provisioning process.

Important Notes

Terminal Installation Required

Run the deployment script from a terminal. Do not attempt to install the .deb or .rpm package through a graphical package installer.

Dependencies

The deployment script requires curl and the appropriate package manager. The package manager installs required package dependencies automatically.

Existing Installations

If an existing Cyrisma Agent installation is detected, the script stops the service and removes the existing cybroker package before installing the current package.

Automatic Updates

After installation and provisioning, the Linux agent automatically receives supported agent updates as they become available.