64 lines
1.6 KiB
Bash
Executable File
64 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Redis installation script for provisioning system
|
|
# This is a template - customize for your needs
|
|
|
|
set -euo pipefail
|
|
|
|
REDIS_VERSION="${REDIS_VERSION:-7.2.3}"
|
|
REDIS_PORT="${REDIS_PORT:-6379}"
|
|
REDIS_CONFIG_FILE="/etc/redis/redis.conf"
|
|
REDIS_LOG_DIR="/var/log/redis"
|
|
REDIS_DATA_DIR="/var/lib/redis"
|
|
|
|
echo "Installing Redis ${REDIS_VERSION}..."
|
|
|
|
# Install Redis
|
|
if command -v apt-get >/dev/null 2>&1; then
|
|
# Debian/Ubuntu
|
|
apt-get update
|
|
apt-get install -y redis-server
|
|
elif command -v yum >/dev/null 2>&1; then
|
|
# RHEL/CentOS
|
|
yum install -y redis
|
|
elif command -v dnf >/dev/null 2>&1; then
|
|
# Fedora
|
|
dnf install -y redis
|
|
else
|
|
echo "Unsupported package manager"
|
|
exit 1
|
|
fi
|
|
|
|
# Create directories
|
|
mkdir -p "${REDIS_LOG_DIR}" "${REDIS_DATA_DIR}"
|
|
chown redis:redis "${REDIS_LOG_DIR}" "${REDIS_DATA_DIR}"
|
|
|
|
# Configure Redis (basic template)
|
|
cat > "${REDIS_CONFIG_FILE}" << EOF
|
|
# Redis configuration generated by provisioning system
|
|
port ${REDIS_PORT}
|
|
bind 127.0.0.1
|
|
dir ${REDIS_DATA_DIR}
|
|
logfile ${REDIS_LOG_DIR}/redis-server.log
|
|
loglevel notice
|
|
|
|
# Memory management
|
|
maxmemory \${REDIS_MAXMEMORY:-256mb}
|
|
maxmemory-policy \${REDIS_MAXMEMORY_POLICY:-allkeys-lru}
|
|
|
|
# Persistence
|
|
save 900 1
|
|
save 300 10
|
|
save 60 10000
|
|
|
|
# Security
|
|
# requirepass \${REDIS_PASSWORD}
|
|
EOF
|
|
|
|
# Enable and start Redis
|
|
systemctl enable redis-server || systemctl enable redis
|
|
systemctl start redis-server || systemctl start redis
|
|
|
|
echo "Redis installation completed successfully!"
|
|
echo "Port: ${REDIS_PORT}"
|
|
echo "Config: ${REDIS_CONFIG_FILE}"
|
|
echo "Logs: ${REDIS_LOG_DIR}/redis-server.log" |