Files
proxmox/docs/03-deployment/REMOTE_DEPLOYMENT.md

3.8 KiB

Remote Deployment Guide

Issue: Deployment Scripts Require Proxmox Host Access

The deployment scripts (deploy-all.sh, etc.) are designed to run ON the Proxmox host because they use the pct command-line tool, which is only available on Proxmox hosts.

Error you encountered:

[ERROR] pct command not found. This script must be run on Proxmox host.

Solutions

Best approach: Copy the deployment package to the Proxmox host and run it there.

Step 1: Copy Deployment Package

# From your local machine
cd /home/intlc/projects/proxmox

# Copy to Proxmox host
scp -r smom-dbis-138-proxmox root@192.168.11.10:/opt/

Step 2: SSH to Proxmox Host

ssh root@192.168.11.10

Step 3: Run Deployment on Host

cd /opt/smom-dbis-138-proxmox

# Make scripts executable
chmod +x scripts/deployment/*.sh
chmod +x install/*.sh

# Run deployment
./scripts/deployment/deploy-all.sh

Automated Script

Use the provided script to automate this:

./scripts/deploy-to-proxmox-host.sh

This script will:

  1. Copy the deployment package to the Proxmox host
  2. SSH into the host
  3. Run the deployment automatically

Option 2: Hybrid Approach (API + SSH)

Create containers via API, then configure via SSH.

Step 1: Create Containers via API

# Use the remote deployment script (creates containers via API)
cd smom-dbis-138-proxmox
./scripts/deployment/deploy-remote.sh

Step 2: Copy Files and Install

# Copy installation scripts to Proxmox host
scp -r install/ root@192.168.11.10:/opt/smom-dbis-138-proxmox/

# SSH and run installations
ssh root@192.168.11.10
cd /opt/smom-dbis-138-proxmox

# Install in each container
for vmid in 106 107 108 109; do
    pct push $vmid install/besu-validator-install.sh /tmp/install.sh
    pct exec $vmid -- bash /tmp/install.sh
done

Option 3: Use MCP Server Tools

The MCP server provides API-based tools that can create containers remotely.

Available via MCP:

  • Container creation
  • Container management
  • Configuration

Limitations:

  • File upload (pct push) still requires local access
  • Some operations may need local execution

Why pct is Required

The pct (Proxmox Container Toolkit) command:

  • Is only available on Proxmox hosts
  • Provides direct access to container filesystem
  • Allows file upload (pct push)
  • Allows command execution (pct exec)
  • Is more efficient than API for some operations

API Alternative:

  • Container creation: Supported
  • Container management: Supported
  • File upload: ⚠️ Limited (requires workarounds)
  • Command execution: Supported (with limitations)

For Remote Deployment:

  1. Copy Package to Host

    ./scripts/deploy-to-proxmox-host.sh
    
  2. Or Manual Copy:

    scp -r smom-dbis-138-proxmox root@192.168.11.10:/opt/
    ssh root@192.168.11.10
    cd /opt/smom-dbis-138-proxmox
    ./scripts/deployment/deploy-all.sh
    

For Local Deployment:

If you have direct access to the Proxmox host:

# On Proxmox host
cd /opt/smom-dbis-138-proxmox
./scripts/deployment/deploy-all.sh

Troubleshooting

Issue: "pct command not found"

Solution: Run deployment on Proxmox host, not remotely.

Issue: "Permission denied"

Solution: Run with sudo or as root user.

Issue: "Container creation failed"

Check:

  • API token has proper permissions
  • Storage is available
  • Template exists
  • Sufficient resources

Summary

Best Practice: Copy deployment package to Proxmox host and run there.

Quick Command:

./scripts/deploy-to-proxmox-host.sh

This automates the entire process of copying and deploying.


Last Updated: $(date)