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

190 lines
3.8 KiB
Markdown

# 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
### Option 1: Copy to Proxmox Host (Recommended)
**Best approach:** Copy the deployment package to the Proxmox host and run it there.
#### Step 1: Copy Deployment Package
```bash
# 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
```bash
ssh root@192.168.11.10
```
#### Step 3: Run Deployment on Host
```bash
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:
```bash
./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
```bash
# 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
```bash
# 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)
---
## Recommended Workflow
### For Remote Deployment:
1. **Copy Package to Host**
```bash
./scripts/deploy-to-proxmox-host.sh
```
2. **Or Manual Copy:**
```bash
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:
```bash
# 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:**
```bash
./scripts/deploy-to-proxmox-host.sh
```
This automates the entire process of copying and deploying.
---
**Last Updated:** $(date)