feat: auto-detect LXC IP and pass to ssh-deploy
- proxmox-lxc: new section to read LXC IP via API or pct exec - ssh-deploy: SSH_HOST auto-populated from LXC IP, no manual config needed - workflow: provision flow explicitly includes IP detection step - project.env: SSH_HOST marked as optional when using Proxmox LXC Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
acceefe99b
commit
036e5d63f8
@ -70,6 +70,38 @@ ssh root@$PVE_HOST << 'EOF'
|
||||
EOF
|
||||
```
|
||||
|
||||
## LXC-IP ERMITTELN
|
||||
|
||||
Nach dem Erstellen und Starten des Containers die IP auslesen. Diese IP wird für alle weiteren Schritte und für `/ssh-deploy` verwendet.
|
||||
|
||||
### Via Proxmox API
|
||||
```bash
|
||||
LXC_IP=$(curl -sk "https://$PVE_HOST:$PVE_PORT/api2/json/nodes/$PVE_NODE/lxc/$VMID/interfaces" \
|
||||
-H "Authorization: PVEAPIToken=$PVE_USER!$PVE_TOKEN_ID=$PVE_TOKEN_SECRET" \
|
||||
| jq -r '.data[] | select(.name=="eth0") | .["inet-address"]')
|
||||
echo "LXC-IP: $LXC_IP"
|
||||
```
|
||||
|
||||
### Via SSH auf Proxmox-Host
|
||||
```bash
|
||||
# Variante 1: lxc-info
|
||||
LXC_IP=$(ssh root@$PVE_HOST "lxc-info -n $VMID -iH 2>/dev/null || pct exec $VMID -- hostname -I | awk '{print \$1}'")
|
||||
echo "LXC-IP: $LXC_IP"
|
||||
|
||||
# Variante 2: pct exec
|
||||
LXC_IP=$(ssh root@$PVE_HOST "pct exec $VMID -- ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'")
|
||||
echo "LXC-IP: $LXC_IP"
|
||||
```
|
||||
|
||||
### WICHTIG: Automatische Weitergabe an ssh-deploy
|
||||
Nach der IP-Ermittlung wird SSH_HOST automatisch gesetzt. Kein manueller Eintrag in `project.env` nötig:
|
||||
```bash
|
||||
# SSH-Verbindung zum neuen LXC testen
|
||||
ssh -i $SSH_KEY_PATH -o StrictHostKeyChecking=accept-new deploy@$LXC_IP "echo 'LXC erreichbar'"
|
||||
```
|
||||
|
||||
Ab hier kann `/ssh-deploy` direkt mit `SSH_HOST=$LXC_IP` arbeiten.
|
||||
|
||||
## LXC FÜR WEBPROJEKT EINRICHTEN
|
||||
|
||||
### Basis-Setup (Node.js + Docker)
|
||||
|
||||
@ -8,13 +8,15 @@ Du bist ein SSH-Deploy-Agent für Remote-Testing und Deployment auf Linux-Server
|
||||
|
||||
## KONFIGURATION
|
||||
```
|
||||
SSH_HOST=$SSH_HOST
|
||||
SSH_PORT=$SSH_PORT (default: 22)
|
||||
SSH_USER=$SSH_USER
|
||||
SSH_KEY_PATH=$SSH_KEY_PATH (default: ~/.ssh/id_rsa)
|
||||
DEPLOY_PATH=$DEPLOY_PATH (default: /var/www/app)
|
||||
SSH_HOST=$SSH_HOST # IP oder Hostname - wird automatisch von /proxmox-lxc gesetzt wenn LXC erstellt wurde
|
||||
SSH_PORT=$SSH_PORT # default: 22
|
||||
SSH_USER=$SSH_USER # default: deploy
|
||||
SSH_KEY_PATH=$SSH_KEY_PATH # default: ~/.ssh/id_rsa
|
||||
DEPLOY_PATH=$DEPLOY_PATH # default: /var/www/app
|
||||
```
|
||||
|
||||
**Hinweis:** Wenn vorher `/proxmox-lxc` ausgeführt wurde, ist `SSH_HOST` bereits mit der LXC-IP belegt. Kein manueller Eintrag in `project.env` nötig.
|
||||
|
||||
## DEPLOYMENT-PROZESS
|
||||
1. SSH-Verbindung testen: `ssh -i $SSH_KEY_PATH -p $SSH_PORT $SSH_USER@$SSH_HOST "echo ok"`
|
||||
2. Backup erstellen: `tar -czf backup_$(date +%Y%m%d_%H%M%S).tar.gz $DEPLOY_PATH`
|
||||
|
||||
@ -67,10 +67,11 @@ Du bist der Workflow-Orchestrator. Du koordinierst alle verfügbaren Skills für
|
||||
### Neue Umgebung auf Proxmox (`/workflow provision "Projektname"`)
|
||||
```
|
||||
1. [proxmox-lxc] → LXC-Container erstellen
|
||||
2. [proxmox-lxc] → Basis-Setup (Node.js/Docker, Firewall, Nginx)
|
||||
3. [docker-build] → Docker-Compose für die App
|
||||
4. [ssh-deploy] → App in den LXC deployen
|
||||
5. [log-analyzer] → Health-Check & Logs prüfen
|
||||
2. [proxmox-lxc] → LXC-IP automatisch ermitteln → SSH_HOST setzen
|
||||
3. [proxmox-lxc] → Basis-Setup (Node.js/Docker, Firewall, Nginx)
|
||||
4. [docker-build] → Docker-Compose für die App
|
||||
5. [ssh-deploy] → App in den LXC deployen (nutzt LXC-IP als SSH_HOST)
|
||||
6. [log-analyzer] → Health-Check & Logs prüfen
|
||||
```
|
||||
|
||||
## QUALITÄTS-GATES
|
||||
|
||||
@ -22,6 +22,8 @@ GITEA_TOKEN=
|
||||
# -------------------------------------------
|
||||
# SSH DEPLOYMENT
|
||||
# -------------------------------------------
|
||||
# SSH_HOST wird automatisch aus LXC-IP gesetzt wenn /proxmox-lxc genutzt wird
|
||||
# Nur manuell setzen wenn KEIN Proxmox-LXC verwendet wird
|
||||
SSH_HOST=
|
||||
SSH_PORT=22
|
||||
SSH_USER=deploy
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user