fix: separate radius module to support separate deployment
This commit is contained in:
Executable
+96
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
# Deploy Device Manager RADIUS client to FreeRADIUS server
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
RADIUS_PYTHON_DIR="${RADIUS_PYTHON_DIR:-/etc/freeradius/3.0/mods-config/python3}"
|
||||
SYSTEMD_OVERRIDE_DIR="/etc/systemd/system/freeradius.service.d"
|
||||
|
||||
echo "Device Manager RADIUS Client Installation"
|
||||
echo "=========================================="
|
||||
echo
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Error: This script must be run as root (use sudo)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if FreeRADIUS is installed
|
||||
if ! command -v freeradius &> /dev/null; then
|
||||
echo "Error: FreeRADIUS is not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "1. Copying device_manager_radius.py to $RADIUS_PYTHON_DIR..."
|
||||
mkdir -p "$RADIUS_PYTHON_DIR"
|
||||
cp "$SCRIPT_DIR/device_manager_radius.py" "$RADIUS_PYTHON_DIR/"
|
||||
chmod 644 "$RADIUS_PYTHON_DIR/device_manager_radius.py"
|
||||
echo " ✓ Module copied"
|
||||
|
||||
echo
|
||||
echo "2. Setting up environment configuration..."
|
||||
if [ ! -d "$SYSTEMD_OVERRIDE_DIR" ]; then
|
||||
mkdir -p "$SYSTEMD_OVERRIDE_DIR"
|
||||
fi
|
||||
|
||||
# Prompt for configuration
|
||||
read -p "Enter Frappe server URL (e.g., https://device-manager.example.edu): " FRAPPE_URL
|
||||
read -p "Enter API Key: " API_KEY
|
||||
read -sp "Enter API Secret: " API_SECRET
|
||||
echo
|
||||
|
||||
# Create systemd override
|
||||
cat > "$SYSTEMD_OVERRIDE_DIR/device-manager.conf" << EOF
|
||||
[Service]
|
||||
Environment="DEVICE_MANAGER_FRAPPE_URL=$FRAPPE_URL"
|
||||
Environment="DEVICE_MANAGER_API_KEY=$API_KEY"
|
||||
Environment="DEVICE_MANAGER_API_SECRET=$API_SECRET"
|
||||
Environment="DEVICE_MANAGER_CACHE_PATH=/var/lib/freeradius/device_manager_verifier_cache.sqlite3"
|
||||
Environment="DEVICE_MANAGER_HTTP_TIMEOUT=2.5"
|
||||
EOF
|
||||
|
||||
chmod 600 "$SYSTEMD_OVERRIDE_DIR/device-manager.conf"
|
||||
echo " ✓ Environment configured"
|
||||
|
||||
echo
|
||||
echo "3. Creating cache directory..."
|
||||
mkdir -p /var/lib/freeradius
|
||||
chown freerad:freerad /var/lib/freeradius
|
||||
chmod 750 /var/lib/freeradius
|
||||
echo " ✓ Cache directory created"
|
||||
|
||||
echo
|
||||
echo "4. Reloading systemd configuration..."
|
||||
systemctl daemon-reload
|
||||
echo " ✓ Systemd reloaded"
|
||||
|
||||
echo
|
||||
echo "Installation complete!"
|
||||
echo
|
||||
echo "Next steps:"
|
||||
echo "1. Configure FreeRADIUS module in /etc/freeradius/3.0/mods-available/python3:"
|
||||
echo
|
||||
cat << 'EOF'
|
||||
python3 device_manager_radius {
|
||||
module = device_manager_radius
|
||||
instantiate = ${.module}
|
||||
authorize = ${.module}
|
||||
post_auth = ${.module}
|
||||
}
|
||||
EOF
|
||||
echo
|
||||
echo "2. Enable the module:"
|
||||
echo " ln -s ../mods-available/python3 /etc/freeradius/3.0/mods-enabled/python3"
|
||||
echo
|
||||
echo "3. Add to your virtual server authorize section:"
|
||||
echo " device_manager_radius"
|
||||
echo
|
||||
echo "4. Add to your virtual server post-auth section:"
|
||||
echo " device_manager_radius"
|
||||
echo
|
||||
echo "5. Test configuration:"
|
||||
echo " freeradius -X"
|
||||
echo
|
||||
echo "6. Restart FreeRADIUS:"
|
||||
echo " systemctl restart freeradius"
|
||||
Reference in New Issue
Block a user