fixed install-regional-agent bash script
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import { pb } from '@/lib/pocketbase';
|
import { pb } from '@/lib/pocketbase';
|
||||||
import { RegionalService, CreateRegionalServiceParams, InstallCommand } from '@/types/regional.types';
|
import { RegionalService, CreateRegionalServiceParams, InstallCommand } from '@/types/regional.types';
|
||||||
|
|
||||||
@@ -106,7 +105,7 @@ AGENT_TOKEN="${token}"
|
|||||||
POCKETBASE_URL="${apiEndpoint}"
|
POCKETBASE_URL="${apiEndpoint}"
|
||||||
|
|
||||||
# Base package information
|
# Base package information
|
||||||
BASE_PACKAGE_URL="https://github.com/operacle/Distributed-Regional-Monitoring/releases"
|
BASE_PACKAGE_URL="https://github.com/operacle/Distributed-Regional-Monitoring/releases/download/v1.0.0"
|
||||||
PACKAGE_VERSION="1.0.0"
|
PACKAGE_VERSION="1.0.0"
|
||||||
SERVICE_NAME="regional-check-agent"
|
SERVICE_NAME="regional-check-agent"
|
||||||
|
|
||||||
@@ -175,14 +174,44 @@ echo "📁 Created temporary directory: $TEMP_DIR"
|
|||||||
# Download the .deb package
|
# Download the .deb package
|
||||||
echo "📥 Downloading Regional Monitoring Agent package for $PKG_ARCH..."
|
echo "📥 Downloading Regional Monitoring Agent package for $PKG_ARCH..."
|
||||||
cd "$TEMP_DIR"
|
cd "$TEMP_DIR"
|
||||||
if wget -q --show-progress "$PACKAGE_URL" -O "$PACKAGE_NAME"; then
|
|
||||||
echo "✅ Package downloaded successfully"
|
# Test if package exists first
|
||||||
else
|
echo "🔍 Checking package availability..."
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -I "$PACKAGE_URL")
|
||||||
|
if [ "$HTTP_STATUS" != "200" ]; then
|
||||||
|
echo "❌ Package not found at $PACKAGE_URL (HTTP $HTTP_STATUS)"
|
||||||
|
echo " Available packages should be:"
|
||||||
|
echo " - distributed-regional-check-agent_\${PACKAGE_VERSION}_amd64.deb"
|
||||||
|
echo " - distributed-regional-check-agent_\${PACKAGE_VERSION}_arm64.deb"
|
||||||
|
rm -rf "$TEMP_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "✅ Package found, proceeding with download..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try wget first, then curl as fallback
|
||||||
|
DOWNLOAD_SUCCESS=false
|
||||||
|
|
||||||
|
if command -v wget >/dev/null 2>&1; then
|
||||||
|
if wget -q --show-progress --timeout=30 --tries=3 "$PACKAGE_URL" -O "$PACKAGE_NAME"; then
|
||||||
|
DOWNLOAD_SUCCESS=true
|
||||||
|
echo "✅ Package downloaded successfully using wget"
|
||||||
|
fi
|
||||||
|
elif command -v curl >/dev/null 2>&1; then
|
||||||
|
if curl -L --connect-timeout 30 --max-time 300 --retry 3 --retry-delay 2 -o "$PACKAGE_NAME" "$PACKAGE_URL"; then
|
||||||
|
DOWNLOAD_SUCCESS=true
|
||||||
|
echo "✅ Package downloaded successfully using curl"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DOWNLOAD_SUCCESS" = false ]; then
|
||||||
echo "❌ Failed to download package from $PACKAGE_URL"
|
echo "❌ Failed to download package from $PACKAGE_URL"
|
||||||
echo " Please check:"
|
echo " Please check:"
|
||||||
echo " - Internet connection"
|
echo " - Internet connection"
|
||||||
echo " - Package availability for $PKG_ARCH architecture"
|
echo " - Package availability for $PKG_ARCH architecture"
|
||||||
echo " - GitHub repository access"
|
echo " - GitHub repository access: https://github.com/operacle/Distributed-Regional-Monitoring/releases"
|
||||||
|
echo " - Firewall/proxy settings"
|
||||||
rm -rf "$TEMP_DIR"
|
rm -rf "$TEMP_DIR"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -222,6 +251,9 @@ fi
|
|||||||
echo ""
|
echo ""
|
||||||
echo "⚙️ Configuring Regional Monitoring Agent..."
|
echo "⚙️ Configuring Regional Monitoring Agent..."
|
||||||
|
|
||||||
|
# Ensure configuration directory exists
|
||||||
|
mkdir -p /etc/regional-check-agent
|
||||||
|
|
||||||
# Create the environment configuration file
|
# Create the environment configuration file
|
||||||
cat > /etc/regional-check-agent/regional-check-agent.env << EOF
|
cat > /etc/regional-check-agent/regional-check-agent.env << EOF
|
||||||
# Distributed Regional Check Agent Configuration
|
# Distributed Regional Check Agent Configuration
|
||||||
@@ -232,7 +264,7 @@ PORT=8091
|
|||||||
|
|
||||||
# Operation defaults
|
# Operation defaults
|
||||||
DEFAULT_COUNT=4
|
DEFAULT_COUNT=4
|
||||||
DEFAULT_TIMEOUT=3s
|
DEFAULT_TIMEOUT=10s
|
||||||
MAX_COUNT=20
|
MAX_COUNT=20
|
||||||
MAX_TIMEOUT=30s
|
MAX_TIMEOUT=30s
|
||||||
|
|
||||||
@@ -258,8 +290,14 @@ EOF
|
|||||||
echo "✅ Configuration file created at /etc/regional-check-agent/regional-check-agent.env"
|
echo "✅ Configuration file created at /etc/regional-check-agent/regional-check-agent.env"
|
||||||
|
|
||||||
# Set proper permissions
|
# Set proper permissions
|
||||||
chown root:regional-check-agent /etc/regional-check-agent/regional-check-agent.env
|
if id "regional-check-agent" &>/dev/null; then
|
||||||
chmod 640 /etc/regional-check-agent/regional-check-agent.env
|
chown root:regional-check-agent /etc/regional-check-agent/regional-check-agent.env
|
||||||
|
chmod 640 /etc/regional-check-agent/regional-check-agent.env
|
||||||
|
else
|
||||||
|
echo "⚠️ regional-check-agent user not found, using root permissions"
|
||||||
|
chown root:root /etc/regional-check-agent/regional-check-agent.env
|
||||||
|
chmod 600 /etc/regional-check-agent/regional-check-agent.env
|
||||||
|
fi
|
||||||
|
|
||||||
# Enable and start the service
|
# Enable and start the service
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# CheckCle Regional Monitoring Agent - Universal Installation Script
|
# CheckCle Regional Monitoring Agent - Universal Installation Script
|
||||||
# This script automatically detects system architecture and installs the appropriate package
|
# This script automatically detects system architecture and installs the appropriate package
|
||||||
# Usage: curl -fsSL https://github.com/operacle/checkcle/blob/main/scripts/install-regional-agent.sh | sudo bash -s -- [options]
|
# Usage: curl -fsSL https://raw.githubusercontent.com/operacle/checkcle/main/scripts/install-regional-agent.sh | sudo bash -s -- [options]
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ AGENT_ID=""
|
|||||||
AGENT_IP_ADDRESS=""
|
AGENT_IP_ADDRESS=""
|
||||||
AGENT_TOKEN=""
|
AGENT_TOKEN=""
|
||||||
POCKETBASE_URL=""
|
POCKETBASE_URL=""
|
||||||
BASE_PACKAGE_URL="https://github.com/operacle/Distributed-Regional-Monitoring/releases"
|
BASE_PACKAGE_URL="https://github.com/operacle/Distributed-Regional-Monitoring/releases/download/v1.0.0"
|
||||||
PACKAGE_VERSION="1.0.0"
|
PACKAGE_VERSION="1.0.0"
|
||||||
SERVICE_NAME="regional-check-agent"
|
SERVICE_NAME="regional-check-agent"
|
||||||
|
|
||||||
@@ -149,8 +149,8 @@ echo ""
|
|||||||
echo "🔧 Checking system requirements..."
|
echo "🔧 Checking system requirements..."
|
||||||
MISSING_TOOLS=()
|
MISSING_TOOLS=()
|
||||||
|
|
||||||
if ! command -v wget >/dev/null 2>&1; then
|
if ! command -v wget >/dev/null 2>&1 && ! command -v curl >/dev/null 2>&1; then
|
||||||
MISSING_TOOLS+=("wget")
|
MISSING_TOOLS+=("wget or curl")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v dpkg >/dev/null 2>&1; then
|
if ! command -v dpkg >/dev/null 2>&1; then
|
||||||
@@ -164,7 +164,7 @@ fi
|
|||||||
if [ ${#MISSING_TOOLS[@]} -ne 0 ]; then
|
if [ ${#MISSING_TOOLS[@]} -ne 0 ]; then
|
||||||
echo "❌ Missing required tools: ${MISSING_TOOLS[*]}"
|
echo "❌ Missing required tools: ${MISSING_TOOLS[*]}"
|
||||||
echo " Please install missing tools and try again"
|
echo " Please install missing tools and try again"
|
||||||
echo " On Debian/Ubuntu: sudo apt-get update && sudo apt-get install wget"
|
echo " On Debian/Ubuntu: sudo apt-get update && sudo apt-get install wget curl"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -179,15 +179,62 @@ echo ""
|
|||||||
echo "📥 Downloading Regional Monitoring Agent package for $PKG_ARCH..."
|
echo "📥 Downloading Regional Monitoring Agent package for $PKG_ARCH..."
|
||||||
cd "$TEMP_DIR"
|
cd "$TEMP_DIR"
|
||||||
|
|
||||||
if wget -q --show-progress --timeout=30 --tries=3 "$PACKAGE_URL" -O "$PACKAGE_NAME"; then
|
# Test if package exists first
|
||||||
echo "✅ Package downloaded successfully"
|
echo "🔍 Checking package availability..."
|
||||||
else
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -I "$PACKAGE_URL")
|
||||||
|
if [ "$HTTP_STATUS" != "200" ]; then
|
||||||
|
echo "❌ Package not found at $PACKAGE_URL (HTTP $HTTP_STATUS)"
|
||||||
|
echo " Available packages should be:"
|
||||||
|
echo " - distributed-regional-check-agent_${PACKAGE_VERSION}_amd64.deb"
|
||||||
|
echo " - distributed-regional-check-agent_${PACKAGE_VERSION}_arm64.deb"
|
||||||
|
echo ""
|
||||||
|
echo " Please check the GitHub releases page:"
|
||||||
|
echo " https://github.com/operacle/Distributed-Regional-Monitoring/releases"
|
||||||
|
rm -rf "$TEMP_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "✅ Package found, proceeding with download..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try wget first, then curl as fallback
|
||||||
|
DOWNLOAD_SUCCESS=false
|
||||||
|
|
||||||
|
if command -v wget >/dev/null 2>&1; then
|
||||||
|
echo "📥 Downloading with wget..."
|
||||||
|
if wget -q --show-progress --timeout=30 --tries=3 "$PACKAGE_URL" -O "$PACKAGE_NAME"; then
|
||||||
|
DOWNLOAD_SUCCESS=true
|
||||||
|
echo "✅ Package downloaded successfully using wget"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DOWNLOAD_SUCCESS" = false ] && command -v curl >/dev/null 2>&1; then
|
||||||
|
echo "📥 Downloading with curl..."
|
||||||
|
if curl -L --connect-timeout 30 --max-time 300 --retry 3 --retry-delay 2 -o "$PACKAGE_NAME" "$PACKAGE_URL" --progress-bar; then
|
||||||
|
DOWNLOAD_SUCCESS=true
|
||||||
|
echo "✅ Package downloaded successfully using curl"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DOWNLOAD_SUCCESS" = false ]; then
|
||||||
echo "❌ Failed to download package from $PACKAGE_URL"
|
echo "❌ Failed to download package from $PACKAGE_URL"
|
||||||
echo " Please check:"
|
echo " Please check:"
|
||||||
echo " - Internet connection"
|
echo " - Internet connection"
|
||||||
echo " - Package availability for $PKG_ARCH architecture"
|
echo " - Package availability for $PKG_ARCH architecture"
|
||||||
echo " - GitHub repository access"
|
echo " - GitHub repository access: https://github.com/operacle/Distributed-Regional-Monitoring/releases"
|
||||||
echo " - Firewall/proxy settings"
|
echo " - Firewall/proxy settings"
|
||||||
|
echo ""
|
||||||
|
echo " Available packages should be:"
|
||||||
|
echo " - distributed-regional-check-agent_${PACKAGE_VERSION}_amd64.deb"
|
||||||
|
echo " - distributed-regional-check-agent_${PACKAGE_VERSION}_arm64.deb"
|
||||||
|
rm -rf "$TEMP_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify download was successful
|
||||||
|
if [ ! -f "$PACKAGE_NAME" ] || [ ! -s "$PACKAGE_NAME" ]; then
|
||||||
|
echo "❌ Downloaded package is empty or missing"
|
||||||
|
echo " File size: $(ls -lh "$PACKAGE_NAME" 2>/dev/null | awk '{print $5}' || echo 'file not found')"
|
||||||
rm -rf "$TEMP_DIR"
|
rm -rf "$TEMP_DIR"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -203,6 +250,8 @@ if dpkg-deb --info "$PACKAGE_NAME" > /dev/null 2>&1; then
|
|||||||
dpkg-deb --field "$PACKAGE_NAME" Package Version Architecture Description | head -4
|
dpkg-deb --field "$PACKAGE_NAME" Package Version Architecture Description | head -4
|
||||||
else
|
else
|
||||||
echo "❌ Package verification failed - corrupted download"
|
echo "❌ Package verification failed - corrupted download"
|
||||||
|
echo " File size: $(ls -lh "$PACKAGE_NAME" | awk '{print $5}')"
|
||||||
|
echo " Try downloading manually from: $PACKAGE_URL"
|
||||||
rm -rf "$TEMP_DIR"
|
rm -rf "$TEMP_DIR"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -227,7 +276,7 @@ else
|
|||||||
echo " Manual resolution:"
|
echo " Manual resolution:"
|
||||||
echo " 1. Run: sudo apt-get update"
|
echo " 1. Run: sudo apt-get update"
|
||||||
echo " 2. Run: sudo apt-get install -f"
|
echo " 2. Run: sudo apt-get install -f"
|
||||||
echo " 3. Retry installation"
|
echo " 3. Retry installation: sudo dpkg -i $PACKAGE_NAME"
|
||||||
rm -rf "$TEMP_DIR"
|
rm -rf "$TEMP_DIR"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -379,7 +428,7 @@ echo "🔧 Troubleshooting:"
|
|||||||
echo " If the service fails to start:"
|
echo " If the service fails to start:"
|
||||||
echo " 1. Check logs: sudo journalctl -u $SERVICE_NAME -n 50"
|
echo " 1. Check logs: sudo journalctl -u $SERVICE_NAME -n 50"
|
||||||
echo " 2. Verify config: cat /etc/regional-check-agent/regional-check-agent.env"
|
echo " 2. Verify config: cat /etc/regional-check-agent/regional-check-agent.env"
|
||||||
echo " 3. Test connectivity: ping $POCKETBASE_URL"
|
echo " 3. Test connectivity: ping $(echo $POCKETBASE_URL | sed 's|https\?://||' | sed 's|/.*||')"
|
||||||
echo " 4. Check port availability: sudo netstat -tlnp | grep 8091"
|
echo " 4. Check port availability: sudo netstat -tlnp | grep 8091"
|
||||||
echo ""
|
echo ""
|
||||||
echo "✨ The agent is now monitoring and reporting to your CheckCle dashboard!"
|
echo "✨ The agent is now monitoring and reporting to your CheckCle dashboard!"
|
||||||
Reference in New Issue
Block a user