ipmi-fan-control/deploy-prod.sh

46 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Deploy IPMI Controller to production
set -e
PROD_HOST="192.168.5.211"
PROD_USER="devmatrix"
PROD_DIR="/opt/ipmi-controller"
SERVICE_NAME="ipmi-controller"
echo "=== Deploying IPMI Controller to Production ==="
echo "Target: $PROD_HOST"
# Install system dependencies
echo "Installing system dependencies..."
ssh $PROD_USER@$PROD_HOST "sudo apt update -qq && sudo apt install -y ipmitool python3-pip 2>/dev/null | tail -3"
# Create remote directory
echo "Creating remote directory..."
ssh $PROD_USER@$PROD_HOST "sudo mkdir -p $PROD_DIR && sudo chown $PROD_USER:$PROD_USER $PROD_DIR"
# Copy files
echo "Copying files..."
rsync -avz --exclude='.git' --exclude='__pycache__' --exclude='data/*.json' \
./ $PROD_USER@$PROD_HOST:$PROD_DIR/
# Install systemd service
echo "Installing systemd service..."
ssh $PROD_USER@$PROD_HOST "sudo cp $PROD_DIR/ipmi-controller.service /etc/systemd/system/"
ssh $PROD_USER@$PROD_HOST "sudo systemctl daemon-reload"
ssh $PROD_USER@$PROD_HOST "sudo systemctl enable $SERVICE_NAME"
# Restart service
echo "Restarting service..."
ssh $PROD_USER@$PROD_HOST "sudo systemctl restart $SERVICE_NAME"
# Check status
echo "Checking service status..."
sleep 2
ssh $PROD_USER@$PROD_HOST "sudo systemctl status $SERVICE_NAME --no-pager"
echo ""
echo "=== Deployment Complete ==="
echo "IPMI Controller is now running at: http://$PROD_HOST:8000"
echo ""
echo "To check logs: ssh $PROD_USER@$PROD_HOST 'sudo journalctl -u $SERVICE_NAME -f'"