technik:proxmox

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
technik:proxmox [02.02.2023 - 07:18] – angelegt nrbtechnik:proxmox [12.01.2025 - 13:23] (aktuell) nrb
Zeile 3: Zeile 3:
 Der Verein betreibt mehrere Proxmox-Kisten. Der Verein betreibt mehrere Proxmox-Kisten.
  
-===== Interfaces =====+Der Zugriff auf die Admin-Oberflaechen erfolgt bitte immer per HOSTNAME.pveadmin.freifunk-stuttgart.de. Hintergrund: damit kann man auch ueber den Reverse Proxy, die auf anderen Hosts laufen, zugreifen. Ausserdem bekommt man so ein ordentliches Zertifikat.
  
-  * `vmbr1`: NAT für Gäste, Netz ist hier `10.0.CLUSTERID.0/24`. Die Mitglieder des Cluster haben die IPs 1-10. +Jeder pve-Cluster hat ein lokales Netzwerk (Hetzner vSwitch/Crossoverkabel) das fuer die Kommunikation im Cluster verwendet wird. Getrennt davon gibt es L2-Netze fuer die Gaeste, die auf den Proxmox-Hosts laufen. 
-  * `vmbr2`: Layer 2 Freifunknetz, VLAN = Segment + 100. VLAN 255 ist Transfernetz in den Wireguard Backbone. + 
-  * `vmbr999`: externes Interface mit öffentlicher IP. Finger weg, bei Hetzner droht Serversperrung wenn hier unbekannte MACs oder IPs unterwegs sind!+===== Backup ===== 
 + 
 +==== Host ==== 
 + 
 +Die Hosts werden per PBS gebackupt, siehe ''/usr/local/sbin/backup_pbs.sh'' 
 + 
 +Infos zum restore per proxmox-backup-client gibt es unter [[technik:pbs]]. 
 + 
 +==== Gaeste ==== 
 + 
 +Per Proxmox Backup. 
 + 
 +In clustern bitte pro Cluster-Node extra Backup-Jobs anlegen, damit Notifcation per Healthchecks pro Node erfolgt 
 + 
 + 
 +===== Netz fuer Gaeste ===== 
 + 
 +Es gibt per VXLAN ein Clusteruebergreifendes L2, ueber das die Gaeste miteinander kommunizieren koennen. Wird per Proxmox SDN konfiguriert. 
 + 
 +Als L3-underlay dient der [[technik:babel-backbone|Babel-Backbone]]. 
 + 
 + 
 +===== Cluster =====  
 + 
 +^ Clustername ^ Cluster-ID ^ Hoster/Standort ^ Cluster-Netz ^ 
 +| ffshetzner  | 3          | Hetzner  | ''10.5.0.0/24''
 +| ffsz10a     | 8          | Nepustil, Zettachring 10a | ''10.0.8.0/24''
 + 
 +===== Maschinen =====  
 + 
 +^ Proxmox Instanz                ^ Cluster    ^ Cluster-IP ^ 
 +| ffs05.freifunk-stuttgart.de    | ffshetzner | 10.5.0.5   
 +| ffs08.freifunk-stuttgart.de    | ffsz10a    | 10.8.0.8   | 
 +| ffs11.freifunk-stuttgart.de    | ffshetzner | 10.5.0.11 
 +| ffs13.freifunk-stuttgart.de    | ffsz10a    | 10.8.0.13 
 + 
 +===== Setup =====  
 + 
 +Es gibt ein paar Konventionen zum Setup, an die wir uns halten moechten. 
 + 
 +==== Interfaces ==== 
 + 
 +  ''vmbr1'': NAT für Gäste, Netz ist hier `10.0.CLUSTERID.0/24`. Die Mitglieder des Cluster haben die IPs 1-10. - bald alt wird auf gastnat migriert 
 +  * ''vmbr2'': Layer 2 Freifunknetz, VLAN = Segment + 100. VLAN 255 ist Transfernetz in den Wireguard Backbone. 
 +  * ''vmbr999'': externes Interface mit öffentlicher IP. Finger weg, bei Hetzner droht Serversperrung wenn hier unbekannte MACs oder IPs unterwegs sind! 
 +  * ''gastnat'': Clusteruebergreifendes VXLAN fuer Gaeste-Kommunikation ''10.0.3/24'' TODO 20241010: Migration 
 + 
 +==== Dateisysteme ====  
 + 
 +Bei Hetzner kein Root auf ZFS, weil das Hetzner Rescue kein ZFS kann! Dann bitte mdadm RAID + LVM + ZFS (ja, wirklich). 
 + 
 +==== IP-Adressen ==== 
 + 
 +Bitte alle IP-Adressen fuer Container und VMs im Wiki-Artikel [[technik:ip-adressen#zentraler_backbone|Zentraler Backbone]] aus ''10.191.255.0/24'' reservieren. Das stellt sicher, dass alle Gaeste spaeter auch prinzipiell an den Backbone angebunden werden koennen. 
 + 
 +==== Gast-IDs ==== 
 + 
 +Leiten sich aus dem letzten Oktett der Backbone-IP und der Cluster-ID ab: 
 + 
 +<code> 
 +Gast-ID = Cluster-ID * 1000 + letztes Oktett der IP 
 +</code> 
 + 
 +Also hat der Gast mit IP ''10.191.255.123'' auf Cluster 7 die IP ''7123''.
  
 ===== Nutzerkonto auf Proxmox anlegen ===== ===== Nutzerkonto auf Proxmox anlegen =====
  
-Die Nutzerkonten auf Proxmox Hosts werden alle mit Ansible verwaltet. Die Gruppe ffs gibt den Nutzern Berechtigung auf Proxmox zuzugreifen.+Es werden grundsaetzlich nur lokale Nutzeraccounts benutzt, damit die Nutzer die Proxmox-Shell verwenden koennen und ihr Passwort selbst per SSH setzen koennen. 
 + 
 +Die Nutzerkonten auf Proxmox Hosts werden alle mit Ansible verwaltet. 
 + 
 +Die Proxmox(!)-Gruppe ffs gibt den Nutzern Zugriff aufs Proxmox-Webinterface.
  
   - Nutzer im Ansible anlegen   - Nutzer im Ansible anlegen
-  - Playbook all.yml laufen lassen.  +  - Playbook ''all.yml'' laufen lassen.  
-  - Den Nutzer per `pveum User add NUTZER@pambei Proxmox bekannt machen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.+  - Den Nutzer per ''pveum user add NUTZER@pam'' bei Proxmox bekannt machen. Das muss nur einmal pro Cluster und Nutzer gemacht werden. 
 +  - Den Nutzer per ''<nowiki>pveum user modify --groups ffs nrb@pam</nowiki>'' zur Proxmox-Gruppe ffs hinzufuegen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.
   - Nutzer kann sich per SSH einloggen und anschließend ein Passwort per `passwd` setzen, mit dem er sich im Proxmox einloggen kann. Das Passwort gilt jeweils nur für einen Host, nicht clusterweit.   - Nutzer kann sich per SSH einloggen und anschließend ein Passwort per `passwd` setzen, mit dem er sich im Proxmox einloggen kann. Das Passwort gilt jeweils nur für einen Host, nicht clusterweit.
  
Zeile 24: Zeile 92:
 Entweder per Jumphost und IP des Gastes: Entweder per Jumphost und IP des Gastes:
  
-``` +''ssh -J PROXMOXHOST GASTIP'' 
-ssh -J PROXMOXHOST GASTIP  +
-```+
  
 Oder man fügt folgenden Schnipsel in seine `.ssh/config` ein: Oder man fügt folgenden Schnipsel in seine `.ssh/config` ein:
  
-``` 
-Host *.ffs05 
-        User root 
-        ProxyCommand ssh ffs05 -W 10.0.3.$(( $(echo %n | sed -e 's/.ffs05//') - 3000 )):22 
-``` 
  
-Und kann dann per `ssh GASTID.ffs05auf jeden beliebigen Gast hinter ffs05.+  Host *.ffs05 
 +          User root 
 +          ProxyCommand ssh ffs05 -W 10.0.3.$(( $(echo %n | sed -e 's/.ffs05//') - 3000 )):22 
 + 
 + 
 +Und kann dann per ''ssh GASTID.ffs05'' auf jeden beliebigen Gast hinter ffs05.
  
 ===== Neuen Container anlegen ===== ===== Neuen Container anlegen =====
  
 Wer ein Freifunkprojekt hat, kann vom Verein einen Container bekommen. Voraussetzung ist Vereinsmitgliedschaft und/oder eine entsprechende Vereinbarung mit dem Verein. Der Vorstand kann hierzu Auskunft geben. Wer ein Freifunkprojekt hat, kann vom Verein einen Container bekommen. Voraussetzung ist Vereinsmitgliedschaft und/oder eine entsprechende Vereinbarung mit dem Verein. Der Vorstand kann hierzu Auskunft geben.
 +
 +  - IP-Adresse reservieren im wiki-Artikel [[technik:ip-adressen|IP-Adressen]].
 +  - Im Proxmox auf "Create CT" klicken
 +  - Container-ID, Hostnamen und SSH-Key eintragen
 +  - Bei Netzwerk die IP-Adresse aus dem Wiki-Artikel eintragen. Das letzte Oktett wird in das jeweilige Netz des Clusters eingesetzt. Beispiel: hat man die IP-Adresse ''10.191.255.163'' reserviert, nutzt man im Cluster ''3'' die IP ''10.0.3.163''. Netzmaske ist immer ''/24''. Gateway ist die Cluster-IP des jeweiligen Hosts.
 +  - Den Container oeffnen, auf "Console mode" klicken und auf "shell" aendern.
 +  - Unter Netzwerk die MTU von ''eth0'' auf ''1400'' umstellen (nur bei Hetzner, wegen  vSwitch).
 +
 +
 +
  • technik/proxmox.1675322310.txt.gz
  • Zuletzt geändert: vor 2 Jahren
  • von nrb