Files
proxmox/rpc-translator-138/deploy-remote.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

111 lines
3.4 KiB
Bash

#!/bin/bash
# Remote Deployment Script - Deploys supporting services via Proxmox API
# Usage: ./deploy-remote.sh [node-name]
#
# This script can be run from any machine with Proxmox API access
# Requires: PROXMOX_HOST, PROXMOX_USER, PROXMOX_TOKEN environment variables
# OR: .env file with PROXMOX credentials
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Load environment variables
if [ -f "$SCRIPT_DIR/.env" ]; then
set -a
source "$SCRIPT_DIR/.env"
set +a
fi
NODE="${1:-r630-01}"
# Proxmox API configuration
PROXMOX_HOST="${PROXMOX_HOST:-192.168.11.11}"
PROXMOX_USER="${PROXMOX_USER:-root@pam}"
PROXMOX_TOKEN_NAME="${PROXMOX_TOKEN_NAME:-rpc-translator-deploy}"
PROXMOX_TOKEN_VALUE="${PROXMOX_TOKEN_VALUE}"
# Check if credentials are available
if [ -z "$PROXMOX_TOKEN_VALUE" ] && [ -z "$PROXMOX_PASSWORD" ]; then
echo "❌ Error: Proxmox API credentials not found"
echo ""
echo "Please set one of:"
echo " - PROXMOX_TOKEN_VALUE (API token)"
echo " - PROXMOX_PASSWORD (password for $PROXMOX_USER)"
echo ""
echo "Or add to .env file:"
echo " PROXMOX_HOST=192.168.11.11"
echo " PROXMOX_USER=root@pam"
echo " PROXMOX_TOKEN_VALUE=your-token-here"
echo ""
exit 1
fi
echo "========================================="
echo "Remote Deployment - Supporting Services"
echo "========================================="
echo "Target Node: $NODE"
echo "Proxmox Host: $PROXMOX_HOST"
echo ""
# Function to call Proxmox API
proxmox_api() {
local method=$1
local endpoint=$2
local data=$3
local url="https://${PROXMOX_HOST}:8006/api2/json${endpoint}"
local auth_header=""
if [ -n "$PROXMOX_TOKEN_VALUE" ]; then
auth_header="Authorization: PVEAPIToken=${PROXMOX_USER}!${PROXMOX_TOKEN_NAME}=${PROXMOX_TOKEN_VALUE}"
else
# Would need to get ticket first for password auth
echo "⚠️ Password authentication not yet implemented in this script"
echo " Please use API token authentication"
exit 1
fi
if [ -z "$data" ]; then
curl -s -k -H "$auth_header" -X "$method" "$url"
else
curl -s -k -H "$auth_header" -H "Content-Type: application/json" -X "$method" -d "$data" "$url"
fi
}
# Check if node is accessible
echo "Checking Proxmox connection..."
NODE_STATUS=$(proxmox_api GET "/nodes/$NODE/status" 2>&1)
if echo "$NODE_STATUS" | grep -q "401\|403\|authentication"; then
echo "❌ Authentication failed"
echo "Please check your PROXMOX credentials"
exit 1
fi
if echo "$NODE_STATUS" | grep -q "404\|not found"; then
echo "❌ Node '$NODE' not found"
exit 1
fi
echo "✅ Connected to Proxmox"
echo ""
# Note: This script provides a framework but full container creation
# via API is complex. For now, it checks connectivity and provides instructions.
echo "⚠️ Note: Full container creation via API requires additional setup"
echo ""
echo "For automated deployment, use one of:"
echo ""
echo "1. Run on Proxmox host directly:"
echo " ssh root@$PROXMOX_HOST"
echo " cd /path/to/rpc-translator-138"
echo " ./deploy-supporting-services.sh $NODE"
echo ""
echo "2. Use Proxmox Web UI:"
echo " https://$PROXMOX_HOST:8006"
echo " Create containers manually (see LXC_DEPLOYMENT.md)"
echo ""
echo "3. Use Proxmox MCP tools (if configured):"
echo " Use the MCP Proxmox server tools to create containers"
echo ""