technik:proxmox

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
technik:proxmox [02.02.2023 - 10:48] nrbtechnik:proxmox [29.05.2025 - 21:58] (aktuell) nrb
Zeile 2: Zeile 2:
  
 Der Verein betreibt mehrere Proxmox-Kisten. Der Verein betreibt mehrere Proxmox-Kisten.
 +
 +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.
 +
 +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.
 +
 +===== 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.8.0.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 =====  ===== Setup ===== 
Zeile 9: Zeile 49:
 ==== Interfaces ==== ==== Interfaces ====
  
-  * ''vmbr1'': NAT für Gäste, Netz ist hier `10.0.CLUSTERID.0/24`. Die Mitglieder des Cluster haben die IPs 1-10.+  * ''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.   * ''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!   * ''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'' - ''2a0f:d607:e:1::/64'' - Dualstack mit Firewall IPv4/IPv6
 +  * ''services'': Clusteruebergreifendes VXLAN fuer services die public IPv4/IPv6 brauchen ''91.216.35.208/28'' - ''2a0f:d607:e:1::/64'' - keine Firewall
  
 ==== Dateisysteme ====  ==== Dateisysteme ==== 
  
 Bei Hetzner kein Root auf ZFS, weil das Hetzner Rescue kein ZFS kann! Dann bitte mdadm RAID + LVM + ZFS (ja, wirklich). 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 =====
Zeile 28: Zeile 84:
   - Playbook ''all.yml'' laufen lassen.    - Playbook ''all.yml'' laufen lassen. 
   - 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 ''pveum user add NUTZER@pam'' bei Proxmox bekannt machen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.
-  - Den Nutzer per ''pveum user modify --groups ffs nrb@pam'' zur Proxmox-Gruppe ffs hinzufuegen. 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.
  
 ===== Zugriff auf Container / Proxmox als Jumphost ===== ===== Zugriff auf Container / Proxmox als Jumphost =====
  
-Sobald man einen Account auf den Proxmox Hosts hat und sich auf den Hosts per SSH einloggen kann, kann man sich auf den Gästen einloggen.+Zum Zugriff auf Container/VMs per SSH kann der Jumphost verwendet werden
  
-Entweder per Jumphost und IP des Gastes:+Anleitung gibt es im [[https://gitlab.freifunk-stuttgart.de/infrastruktur/ansible|Infrastruktur-Ansible]]
  
-''ssh -J PROXMOXHOST GASTIP'' +===== Neuen Container anlegen =====
  
-Oder man fügt folgenden Schnipsel in seine `.ssh/config` ein:+Wer ein Freifunkprojekt hat, kann vom Verein einen Container bekommenVoraussetzung ist Vereinsmitgliedschaft und/oder eine entsprechende Vereinbarung mit dem Verein. Der Vorstand kann hierzu Auskunft geben.
  
 +Ansible-Playbooks im  [[https://gitlab.freifunk-stuttgart.de/infrastruktur/ansible|Infrastruktur-Ansible]]
  
-  Host *.ffs05 +  * create_container_z10a_gastnet.yml  
-          User root +    * erstellt einen LXC Container im gastnet 
-          ProxyCommand ssh ffs05 -W 10.0.3.$(( $(echo %n | sed -e 's/.ffs05//') - 3000 )):22+    * Dualstack IPv4/IPv6; IPv4 NAT 
 +    * Inbound Firewall IPv4 und IPv6 
 +    * ideal geeignet bspw fuer Webanwendungen 
 +    * keine Portforwardings  
 +  * create_container_z10a_services.yml 
 +    * erstellt einen LXC Container im services Netz 
 +    * Dualstack IPv4/IPv6; kein NAT 
 +    * :!keinerlei Firewall! 
  
 +Die Playbooks reservieren autoamtisch IP-Adressen und erstellen DNS-Eintraege usw
  
-Und kann dann per ''ssh GASTID.ffs05'' auf jeden beliebigen Gast hinter ffs05. 
- 
-===== 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. 
  • technik/proxmox.1675334929.txt.gz
  • Zuletzt geändert: vor 2 Jahren
  • von nrb