Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| dienste:bytecluster0002 [27.12.2020 20:40] – mape2k | dienste:bytecluster0002 [02.12.2023 21:36] (aktuell) – mape2k | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| bytecluster0002 ist ein Virtualisierungsserver, | bytecluster0002 ist ein Virtualisierungsserver, | ||
| Er löst [[bytecluster0001]] ab. | Er löst [[bytecluster0001]] ab. | ||
| + | |||
| + | ====== Virtuelle Hardware ====== | ||
| + | |||
| + | * 4 Kerne | ||
| + | * 16 GB RAM | ||
| + | * Volumes | ||
| + | * 160 GB / // | ||
| + | * 100 GB /mnt/data // | ||
| + | |||
| + | ====== Migration ====== | ||
| + | |||
| + | * mehr zur Migration unter [[dienste: | ||
| ====== Festlegungen (Diskussionsgrundlage) ====== | ====== Festlegungen (Diskussionsgrundlage) ====== | ||
| Zeile 14: | Zeile 26: | ||
| ====== Container ====== | ====== Container ====== | ||
| - | * [[dienste: | + | * siehe [[dienste: |
| - | * [[dienste: | + | |
| - | * [[dienste: | + | |
| - | * [[dienste: | + | |
| - | * [[dienste: | + | |
| - | * [[dienste: | + | |
| ====== Administratoren ====== | ====== Administratoren ====== | ||
| Zeile 80: | Zeile 88: | ||
| ===== Betriebssystem ===== | ===== Betriebssystem ===== | ||
| - | * Debian | + | * Debian |
| ==== Vorkonfiguration ===== | ==== Vorkonfiguration ===== | ||
| Zeile 89: | Zeile 97: | ||
| ==== Grundeinrichtung ==== | ==== Grundeinrichtung ==== | ||
| + | ====== Migration ====== | ||
| - System aktualisieren | - System aktualisieren | ||
| Zeile 120: | Zeile 129: | ||
| - SSH - Login als root und mit Passwort deaktivieren | - SSH - Login als root und mit Passwort deaktivieren | ||
| * Vorher mindestens einen Benutzer einrichten, der einen SSH-Schlüssel hinterlegt hat! | * Vorher mindestens einen Benutzer einrichten, der einen SSH-Schlüssel hinterlegt hat! | ||
| - | - Konfiguration anpassen< | + | - Konfiguration anpassen< |
| - | ... | + | |
| PermitRootLogin no | PermitRootLogin no | ||
| - | ... | ||
| PasswordAuthentication no | PasswordAuthentication no | ||
| - | ... | + | KbdInteractiveAuthentication |
| - | ChallengeResponseAuthentication | + | |
| - | ... | + | |
| </ | </ | ||
| - SSH-Daemon neustarten | - SSH-Daemon neustarten | ||
| Zeile 170: | Zeile 175: | ||
| * Aktuelle Regeln nicht speichern | * Aktuelle Regeln nicht speichern | ||
| - NAT (portbasiert) für IPv4 | - NAT (portbasiert) für IPv4 | ||
| - | * **iptables -t nat -A POSTROUTING -o eth0 -s '10.2.0.0/24' | + | * **iptables -t nat -A POSTROUTING -o eth0 -s 10.2.0.0/24 -j MASQUERADE** |
| - | - NAT-Reflection für IPv4 (Zugriff von intern auf externe IP-Adresse) | + | - NAT-Reflection für IPv4 (Zugriff von intern auf externe IP-Adresse |
| - | * **iptables -t nat -A POSTROUTING -o vmbr0 -j SNAT --to-source 138.201.246.25** | + | * **< |
| + | * **< | ||
| + | * **< | ||
| - NAT (prefixbasiert) für IPv6 | - NAT (prefixbasiert) für IPv6 | ||
| * **< | * **< | ||
| * **< | * **< | ||
| + | - NAT-Reflection für IPv6 (Zugriff von intern auf externe IP-Adresse) | ||
| + | * **< | ||
| - Regeln speichern | - Regeln speichern | ||
| * **netfilter-persistent save** | * **netfilter-persistent save** | ||
| Zeile 306: | Zeile 315: | ||
| Task OK | Task OK | ||
| </ | </ | ||
| + | |||
| + | ==== SSH-Forward-Hook einrichten ==== | ||
| + | |||
| + | - Skript hinterlegen< | ||
| + | # | ||
| + | # Hook script to automatically forward SSH-Port to Container | ||
| + | |||
| + | VMID=$1 | ||
| + | PHASE=$2 | ||
| + | |||
| + | |||
| + | NETWORK_INTERFACE_EXTERNAL=eth0 | ||
| + | NETWORK_INTERFACE_INTERNAL=vmbr0 | ||
| + | SSH_DESTINATION_PORT=22 | ||
| + | SSH_FORWARD_BASE_PORT=22000 | ||
| + | |||
| + | # Determine container details | ||
| + | IP_ADDRESS_INTERNAL=$(pct config $VMID | grep " | ||
| + | # IP_LAST_OCTET=$(pct config $VMID | grep " | ||
| + | SSH_FORWARD_PORT=$(expr $SSH_FORWARD_BASE_PORT + $VMID) | ||
| + | |||
| + | echo "GUEST HOOK on VMID $VMID for phase $PHASE" | ||
| + | |||
| + | echo " | ||
| + | echo " | ||
| + | |||
| + | case " | ||
| + | |||
| + | # First phase ' | ||
| + | # ist started. Exiting with a code != 0 will abort the start | ||
| + | pre-start) echo "$VMID is starting, doing preparations.\n" | ||
| + | | ||
| + | ;; | ||
| + | |||
| + | # Second phase ' | ||
| + | # successfully started. | ||
| + | post-start) echo "$VMID started successfully.\n" | ||
| + | ;; | ||
| + | |||
| + | # Third phase ' | ||
| + | # via the API. Will not be executed if the guest is stopped from | ||
| + | # within e.g., with a ' | ||
| + | pre-stop) echo "$VMID will be stopped.\n" | ||
| + | ;; | ||
| + | |||
| + | # Last phase ' | ||
| + | # This should even be executed in case the guest crashes or stopped | ||
| + | # unexpectedly. | ||
| + | post-stop) echo "$VMID stopped. Doing cleanup.\n" | ||
| + | | ||
| + | ;; | ||
| + | |||
| + | *) echo "Got unknown phase ' | ||
| + | exit 1 | ||
| + | ;; | ||
| + | esac | ||
| + | </ | ||
| + | - Skript ausführbar machen | ||
| + | * **chmod +x / | ||
| + | |||
| + | ==== Zusätzliches Volume einrichten ==== | ||
| + | |||
| + | - Volume vorbereiten als /mnt/data | ||
| + | - Volume in Proxmox einbinden | ||
| + | * **pvesm add dir data -content rootdir, | ||
| ==== Anpassung des Standard-Templates auf Debian-Basis ==== | ==== Anpassung des Standard-Templates auf Debian-Basis ==== | ||
| Zeile 314: | Zeile 388: | ||
| * **pveam update** | * **pveam update** | ||
| - Verfügbare Images anzeigen | - Verfügbare Images anzeigen | ||
| - | * **< | + | * **< |
| - | system | + | system |
| - | system | + | - Debian |
| - | - Debian | + | * **pveam download local debian-12-standard_12.2-1_amd64.tar.zst** |
| - | * **pveam download local debian-10.0-standard_10.0-1_amd64.tar.gz** | + | |
| - Template in neuen Ordner entpacken | - Template in neuen Ordner entpacken | ||
| * **mkdir / | * **mkdir / | ||
| * **cd / | * **cd / | ||
| - | * **< | + | * **< |
| - In das Template-System wechseln | - In das Template-System wechseln | ||
| * **systemd-nspawn -D / | * **systemd-nspawn -D / | ||
| Zeile 331: | Zeile 404: | ||
| - Template: Konfiguration und Software anpassen | - Template: Konfiguration und Software anpassen | ||
| - APT-Quellen auf Hetzner festlegen | - APT-Quellen auf Hetzner festlegen | ||
| - | * **echo "deb http:// | + | * **< |
| - | * **echo "deb http:// | + | * **< |
| - | * **echo "deb http:// | + | * **< |
| - | * **echo "deb http:// | + | * **< |
| - Alle Änderungen aus Betriebssystem von bytecluster0002 vornehmen | - Alle Änderungen aus Betriebssystem von bytecluster0002 vornehmen | ||
| * Ausnahmen: NFS deaktivieren und SSH neustarten | * Ausnahmen: NFS deaktivieren und SSH neustarten | ||
| Zeile 343: | Zeile 416: | ||
| * **logout** | * **logout** | ||
| - Template packen und temporären Ordner entfernen | - Template packen und temporären Ordner entfernen | ||
| - | * **< | + | * **< |
| * **cd** | * **cd** | ||
| * **< | * **< | ||
| Zeile 365: | Zeile 438: | ||
| - Unter **network** statische IPs vergeben: IPv4: 10.2.0.x/24 Gateway 10.2.0.0 IPv6: fd00: | - Unter **network** statische IPs vergeben: IPv4: 10.2.0.x/24 Gateway 10.2.0.0 IPv6: fd00: | ||
| - Im letzten Tab bestätigen und ggfs. Container sofort starten. | - Im letzten Tab bestätigen und ggfs. Container sofort starten. | ||
| + | |||
| + | === Automatischen SSH-Forward für Container konfigurieren === | ||
| + | |||
| + | - Per SSH auf dem Host einloggen | ||
| + | - Hook-Skript an Container binden | ||
| + | * **sudo pct set <CT ID> -hookscript local: | ||
| + | - Container ist nach dem (Neu)Start per SSH auf Port 22000 + <CT ID> (z.B. 22149 für Container mit ID 149) direkt erreichbar | ||
| === In Container einloggen === | === In Container einloggen === | ||