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
curlA supported package manager:
aptfor Debian-based distributionsdnffor 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
Log in to your Cyrisma instance.
Navigate to Admin > Agent Setup.
Select the Deployment tab.
Select Linux as the operating system.
Select the appropriate package:
Debian (.deb) for Debian-based distributions
Red Hat (.rpm) for supported RPM-based distributions
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.shMake the script executable:
chmod +x cyrisma-agent-install.shRun the script:
sudo ./cyrisma-agent-install.shThe 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."
fiVerify the Installation
Check the service status:
sudo systemctl status com.cyrisma.cybroker.service --no-pagerThe service should display as active and running.
After installation:
Return to Admin > Agent Setup.
Locate the newly detected Linux agent in the provisioning tab.
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.