80 lines
2.4 KiB
Bash
Executable File
80 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Info: Cosmian KMS preparation script
|
|
# Author: Provisioning System
|
|
# Release: 1.0
|
|
|
|
echo "Preparing Cosmian KMS installation..."
|
|
|
|
# Load environment variables
|
|
[ -r "env-kms" ] && . ./env-kms
|
|
|
|
# Check if required tools are available
|
|
command -v curl >/dev/null 2>&1 || { echo "curl is required but not installed." >&2; exit 1; }
|
|
command -v systemctl >/dev/null 2>&1 || { echo "systemctl is required but not installed." >&2; exit 1; }
|
|
|
|
# Check OpenSSL version (KMS requires OpenSSL v3.2.0+)
|
|
if command -v openssl >/dev/null 2>&1; then
|
|
OPENSSL_VERSION=$(openssl version | awk '{print $2}')
|
|
echo "Found OpenSSL version: $OPENSSL_VERSION"
|
|
|
|
# Basic version check (simplified)
|
|
MAJOR_VERSION=$(echo "$OPENSSL_VERSION" | cut -d. -f1)
|
|
if [ "$MAJOR_VERSION" -lt "3" ]; then
|
|
echo "Warning: OpenSSL version 3.2.0+ is recommended for KMS"
|
|
fi
|
|
else
|
|
echo "Warning: OpenSSL not found. KMS requires OpenSSL v3.2.0+"
|
|
fi
|
|
|
|
# Validate configuration
|
|
if [ -z "$KMS_VERSION" ]; then
|
|
echo "KMS_VERSION must be set" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$KMS_PORT" ]; then
|
|
echo "KMS_PORT must be set" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Check port availability
|
|
if command -v netstat >/dev/null 2>&1; then
|
|
if netstat -tuln | grep -q ":${KMS_PORT:-9998} "; then
|
|
echo "Warning: Port ${KMS_PORT:-9998} appears to be in use"
|
|
fi
|
|
elif command -v ss >/dev/null 2>&1; then
|
|
if ss -tuln | grep -q ":${KMS_PORT:-9998} "; then
|
|
echo "Warning: Port ${KMS_PORT:-9998} appears to be in use"
|
|
fi
|
|
fi
|
|
|
|
# Validate database configuration
|
|
case "${KMS_DATABASE_TYPE:-sqlite}" in
|
|
sqlite)
|
|
echo "Using SQLite database"
|
|
;;
|
|
mysql)
|
|
if [ -z "$KMS_DATABASE_HOST" ] || [ -z "$KMS_DATABASE_USERNAME" ] || [ -z "$KMS_DATABASE_PASSWORD" ]; then
|
|
echo "MySQL requires host, username, and password configuration" >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
postgresql)
|
|
if [ -z "$KMS_DATABASE_HOST" ] || [ -z "$KMS_DATABASE_USERNAME" ] || [ -z "$KMS_DATABASE_PASSWORD" ]; then
|
|
echo "PostgreSQL requires host, username, and password configuration" >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
redis)
|
|
if [ -z "$KMS_DATABASE_HOST" ]; then
|
|
echo "Redis requires host configuration" >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Unsupported database type: ${KMS_DATABASE_TYPE}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo "Preparation completed successfully." |