Skip to content

Installation Proxmox VE

Jens Maus edited this page Feb 8, 2024 · 97 revisions

Setzt man als Virtualisierungsumgebung Proxmox Virtual Environment (VE) ein, kann man mit den folgenden Schritten eine Grundinstallation einer virtuellen RaspberryMatic vornehmen. Diese virtuelle Maschine (VM) kann im folgenden entweder als vollwertige QEmu/KVM-basierte VM/OVA oder aber auch als leichtgewichtiger CT/LXC Container umgesetzt werden. Des Weiteren gilt zu beachten, dass man einerseits die Installation teilautomatisiert durchführen lassen kann oder aber auch komplett manuell, vom Download der passenden Image Datei bis hin zur Vergrößerung der virtuellen Festplattengröße.

Bei beidem wird entweder eine Proxmox VE Standardinstallation unter einer x86-basierter Hardware (z.B. IntelNUC) als Host unterstützt, jedoch auch eine manuell vorgenommene ARM-basierte Proxmox VE Installation z.B. unter einem performanten SBC wie einem RaspberryPi5 via ARM-Ports von Proxmox VE (siehe https://github.com/jiangcuo/Proxmox-Port). Zu Letzterem existiert unter dem Abschnitt Proxmox VE (ARM) Grundinstallation auch eine Kurzanleitung wie man z.B. unter einem RaspberryPi5 eine solche ARM-basierte Proxmox VE Grundinstallation vornehmen kann.

Installation

Um RaspberryMatic als virtuelle Maschine (entweder als VM/OVA oder CT/LXC Container) innerhalb eines x86-basierten oder ARM-basierten Proxmox VE Systems zu betreiben, kann man innerhalb einer bereits lauffähigen Proxmox VE Umgebung wie folgt vorgehen. Hierbei gilt zu beachten, das für die folgenden Installationsschritte der Proxmox VE Host über eine funktionierende Internetverbindung verfügen muss, da der notwendige Installationsskript sowie die Image-Datei automatisch heruntergeladen wird:

  1. Proxmox Shell starten: Nach einloggen in der Proxmox Weboberfläche kann man via Rechtsklick auf sein Proxmox-System (hier: pve) dort die "Shell" aufrufen um in die Kommandozeile von Proxmox zu gelangen:

  2. Installationskommando ausführen: Um die Installation zu starten sollte man im nächsten Schritt das folgende Kommando innerhalb der Proxmox-Shell eingeben und dann mit Enter entsprechend bestätigen:

    wget -qO - https://raspberrymatic.de/install-proxmox.sh | bash -

  3. Virtualisierungstyp wählen: Nach Ausführen des Installationskommandos wird man nach kurzer Ladezeit als erstes aufgefordert die Art der Virtualisierung auszuwählen ('Space' zur Auswahl nutzen):

    Hierbei gilt zu beachten das generell die Virtualisierung als Full Virtual Machine / OVA zu bevorzugen ist, da diese es in den folgenden Schritten es nicht notwendig macht gewisse Pakete innerhalb des Proxmox VE Systems selbst zu installieren damit die für eine CCU/RaspberryMatic notwendigen Funkmodule (z.B. HmIP-RFUSB oder RPI-RF-MOD) genutzt werden können. Möchte man hingegen RaspberryMatic leichtgewichtigen LXC Container (Lightweight LXC Container) betreiben um hierüber ggf. einfacher/direkter auf lokale Schnittstellen (z.B. GPIO, UART, etc.) des Hostsystems zuzugreifen, so kann man die Anleitung unter Installation als CT / LXC fortführen.

Installation als VM / OVA

Hat man als Virtualisierungstyp Full Virtual Machine bzw. "VM" / "OVA" gewählt, so sollte man die folgenden weiteren Schritte des Installationsskriptes nacheinander durchgehen:

  1. Version auswählen: Nach Ausführen des Installationskommandos wird man nach kurzer Ladezeit aufgefordert eine Version für die Installation auszuwählen:

    ⚠️ Hinweis: Bei der Auswahl der zu installierenden RaspberryMatic Version wird zwischen release und snapshot Versionen unterschieden. Bei letzterem muss beachten werden, dass es sich hierbei um experimentelle Entwicklungssnapshots handelt die entsprechend "instabil" sein könnten. Für eine produktive RaspberryMatic Umgebung sollte man daher bevorzugt auf die release Versionen setzen.

  2. Storage auswählen: Hat man die zu installierende Version ausgewählt, wird man im nächsten Schritt dazu aufgeforder den entsprechenden Storage auszuwählen der für VM im späteren Verlauf verwendet werden soll (mit Taste 'Space' auswählen):

  3. Userdiskgröße wählen: Nun wird man im folgenden zur Eingabe des gewünschten virtuellen Speicherplatzes für die Userdisk des RaspberryMatic systems gebeten in welcher später alle nutzerbezogenen Konfigurationsdateien und Zusatzpakete installiert werden:

    Als Minimum ist hier 4 GB definiert, wobei eine Größe von 6 GB auch für größere Installationen ausreichend sein sollten. Zu beachten gilt hierbei auch noch das es sich wie gesagt um virtuellen Speicherplatz handelt. D.h. selbst bei Eingabe eines größeren Wertes wird zur jeweiligen Zeit auf dem Hostsystem lediglich der aktuell verbrauchte Platz allokiert.

  4. RF-Funkmodul auswählen: Als letzten Schritt vor der Installation muss man noch ein etwaig bereits mit dem Proxmox via USB verbundenes HomeMatic/homematicIP Funkmodul auswählen (mit Taste 'Space' auswählen), welches der VM im späteren Verlauf dann automatisch zugewiesen wird. Hat man (noch) kein Funkmodul an den Proxmox Host angeschlossen kann man dies auch später manuell noch erledigen und dieser Schritt sollte dann übersprungen werden:

  5. VM ID auswählen: Als letzten Schritt vor der eigentlichen Durchführung der Installation der VM wird noch nach der zu vergebenden VM ID innerhalb des Proxmox VE Systems gefragt. Hierbei wird standardmäßig die nächste freie VMID voreingetragen:

  6. Installationsausgaben: Wurde der letzte Schritt bestätigt beginnt der Installationsskript automatisch mit dem Download der ausgewählten Version und installiert diese automatisch im ausgewählten Storage und verbindet auch gleich das USB Modul mit der VM:

Nun sollte die Grundinstallation der RaspberryMatic VM unter Proxmox VE abgeschlossen sein und diese in der Weboberfläche von Proxmox VE entsprechend auftauchen. Da alle Grundeinstellungen bereits vorgenommen wurden, kann die VM nun unmittelbar gestartet werden und der Startvorgang sollte daraufhin dann auch unter "Console" einsehbar sein. Für Detailinformationen des Startvorganges kann man in der Console dann die Tastenkombination ALT+F2 drücken um Ausgaben des Vorganges dort ggf. einzusehen.

Installation als CT / LXC

Hat man im oberen allgemeinen Teil unter Schritt 3 als Virtualisierungstyp Lightweight LXC Container bzw. "CT" / "LXC" gewählt, so sollte man die folgenden Schritte des Installationsskriptes nacheinander durchgehen:

  1. Warnhinweis bestätigen: Da bei einer CT/LXC-basierten Installation es notwendig ist auf dem jeweiligen Proxmox VE System selbst gewisse Zusatzpakete und Modifikationen vorzunehmen muss als erstes ein entsprechender Warnhinweis bestätigt werden: ⚠️ Hinweis: Bitte hierbei beachten, dass man die Installation dieser für CT/LXC notwendigen Zusatzpakete und Modifikationen jederzeit wieder zurücknehmen kann indem man wie in Abschnitt Deinstallation LXC das install-proxmox.sh skript mit einer zusätzlichen uninstall Option aufrufen kann.

  2. Version auswählen: Hat man den Warnhinweis bestätigt muss im Anschluss nach kurzer Ladezeit eine RaspberryMatic Version für die Installation des CT/LXC containers ausgewählt werden:

    ⚠️ Hinweis: Bei der Auswahl der zu installierenden RaspberryMatic Version wird zwischen release und snapshot Versionen unterschieden. Bei letzterem muss beachten werden, dass es sich hierbei um experimentelle Entwicklungssnapshots handelt die entsprechend "instabil" sein könnten. Für eine produktive RaspberryMatic Umgebung sollte man daher bevorzugt auf die release Versionen setzen.

Alternative/Manuelle Installation (x86_64)

Möchte man die Installation der RaspberryMatic VM unter einer x86-basierten Proxmox VE Umgebung manuell vornehmen oder funktioniert die automatische Installation auf Grund von Firewall-Restriktionen innerhalb des lokalen Netzwerkes nicht, kann man diese auch wie folgt durchführen:

  1. Download: Für Proxmox VE sollte man die *.ova Datei zur Installation nutzen. Diese kann man von Releases direkt als *.ova Datei herunterladen. Bitte hierbei beachten, das die *.zip Datei nur für spätere WebUI-basierte Updates der virtuellen Maschine benötigt wird. D.h. für die Grundinstallation braucht man für Proxmox lediglich einmalig die *.ova Datei.

  2. .ova Datei in Proxmox Konsole kopieren: Die *.ova Datei muss nun mittels SCP bzw. FTP in die Proxmox Konsole kopiert werden damit von dort aus im folgenden dann die *.ova Datei entsprechend importiert werden kann:

  3. Proxmox Shell starten: Nach einloggen in der Proxmox Weboberfläche kann man via Rechtsklick auf "pve" dann die "Shell" aufrufen um in die Kommandozeile von Proxmox zu gelangen:

  4. .ova auspacken: Da Proxmox nicht direkt *.ova Dateien verarbeiten kann muss man diese nun via the folgenden "tar" Befehls erst einmal auspacken:

  5. .ovf Datei importieren: Mit dem folgenden importovf Befehl kann man dann die *.ovf und die passende *.vmdk Datei automatisch als virtuelle Maschine importieren lassen (zu beachten gilt hierbei das man eine freie ID für die neue VM verwendet, d.h. in die Maschinenliste schauen und hier eine freie ID statt der "100" wählen):

  6. Startvolume/disk vergrößern: Danach sollte dann die neue RaspberryMatic VM im Proxmox Webinterface aufgetaucht sein und man kann nun in die "Hardware" Einstellungen auf das angelegte "Laufwerk" klicken und dort dann "Resize Disk" zum vergrößern der Festplatte drücken und dann im folgenden Dialog die gewünschte Größe der Festplatte eingeben:

  7. USB-Gerät hinzufügen: Um nun das USB Funkmodul hinzuzufügen geht man wiederum unter "Hardware" auf "Hinzufügen" und fügt dort das gewünschte USB Gerät hinzu das am Proxmox Host dann entsprechend verbunden sein muss:

  8. Netzwerkkarte hinzufügen: Nun muss noch eine kompatible Netzwerkkarte wie folgt hinzugefügt werden. Hierbei beachten als Netzwerkkartenmodell "VirtIO" auszuwählen:

  9. Einstellungen kontrollieren: Danach sollten dann die VM-Einstellungen wie folgt aussehen. Wichtig sind hierbei die Kontrolle der Einstellungen unter "Hardware". So sollten z.B. der ausgewählte SCSI Controller auf VirtIO SCSI single stehen und Zusatzoptionen der virtuellen Disk wie iothread=1 oder discard=on (bei einer genutzten SSD) eingeschalten sein: Des Weiteren ist auch wichtig unter "Optionen" z.B. den eingestellten "OS Type" zu kontrollieren und hier sicherzustellen das dort Linux 6.x - 2.6 Kernel ausgewählt ist und auch die Option "Use tablet for pointer" auf No steht:

  10. Guest Agent aktivieren: Damit der in RaspberryMatic installierte Guest Agent korrekt erkannt wird sollte unter "Optionen" noch der "Qemu Agent" wie folgt aktiviert werden:

  11. Das erste mal starten: Nach diesen Aktionen sollte es nun möglich sein die virtuelle RaspberryMatic das erste mal zu starten um dann in der virtuellen Konsole/Bildschirm den normalen Bootvorgang zu sehen. Dies sollte dann hoffentlich dazu führen das sich die neue virtuelle CCU/RaspberryMatic dann mit Ihrer neuen IP-Adresse meldet und man ganz normal dann in einem Webbrowser zur WebUI der virtuellen RaspberryMatic gelangen sollte.

Proxmox-VE (ARM) Grundinstallation

Möchte man ein performantes ARM-basiertes System wie ein RaspberryPi4 oder RaspberryPi5 als Virtualisierungsumgebung einsetzen um darauf mehrere virtuelle Maschinen (VM) wie z.B. eine RaspberryMatic VM und andere Linux VM parallel zu betreiben, kann man auf solchen Systemen seit einiger Zeit durch entsprechende Arbeiten der OpenSource Community auch Proxmox VE installieren. Hierfür existiert dann auch die Möglichkeit ein virtuelles RaspberryMatic System hierüber zu betreiben. Da die Installation einer solchen ARM-basierten Proxmox VE Installation jedoch vom Standardfall abweicht, soll im Folgenden als Hilfestellung eine kleine Schritt-für-Schritt Anleitung gegeben werden wie man solch eine Proxmox VE Grundinstallation auf seinem RaspberryPi4 oder RaspberryPi5 durchführen kann.

Da Proxmox VE als zugrundeliegendes Betriebssystem ein Debian-basiertes Linux System voraussetzt, muss man als erstes eine solche Debian Grundinstallation auf der ausgewählten ARM-Hardware vornehmen. Hierzu kann man für einen RaspberryPi4 oder RaspberryPi5 entweder RaspberryPiOS oder aber auch auf das potentere Armbian setzen. Im Folgenden soll daher auf die Proxmox VE Installation eines RaspberryPi5 via Armbian eingegangen werden:

  1. Armbian Image runterladen: Um Armbian in der jeweilig passenden Version für seine ARM-Hardware herunterzuladen kann man das passende Grund-Image von der Armbian aarch64 Downloadseite herunterladen. Hierbei sollte man jeweils das Armbian Bookworm Image in der Minimal CLI Variante herunterladen. So z.B. für einen RaspberryPi5 scrollt man auf der Downloadseite (https://www.armbian.com/rpi5b/) ganz nach unten und lädt hierbei das "Minimal CLI" Bookworm Image herunter:
  2. Armbian Image flashen: Nach dem herunterladen der passenden Armbian Image Datei (z.B. Armbian_..._minimal.img.xz) kann man diese via geeigneter Anwendungen (z.B. Etcher) auf das passende Medium (z.B. SD Karte) flashen:
  3. Armbian das erste mal booten: Nun kann man das entsprechende Medium in seinen SBC einlegen und Armbian damit das erste mal booten lassen. Wichtig ist hierbei einen Monitor und Tastatur anzuschließen da im ersten Bootvorgang verschiedene Informationen abgefragt werden die man interaktiv dann eingeben muss. Dies umfasst die folgenden Informationen die man wie folgt beantworten kann:
    1. Create root password: [Hier das entsprechende Root-Password angeben]
    2. Please provide a username: admin
    3. Create user (admin) password: [Hier erneut das entsprechende Admin Password angeben]
    4. Please provide your real name: Admin
    5. Set user language based on your location? N
    6. At your location, more locales are possible: 54 (en_US.UTF-8)
    7. Please select a continent: 7 (Europe)
    8. Please select a country: 16 (Germany)
    9. Please select one of the following timezones: 2 (most of Germany)
    10. Is the above information OK? 1 (Yes)
    
    Danach sollte dann Armbian in einen Kommandozeilen Prompt wechseln. Von hier aus kann man dann entsprechend weiterarbeiten oder aber auch via SSH Zugang zu der IP-Adresse des Systems (Ausgabe von ip a zeigt die IP-Adresse) die weiteren Einstellungen vornehmen.
  4. Hostname ändern: Nun sollte man den Namen des Hosts entsprechend auf den finalen Hostnamen ändern:
    sudo hostnamectl hostname pvearm
  5. /etc/network/interfaces anpassen: Um eine statische IP-Adresse für die kommende Proxmox Installation vorzunehmen sollte man die /etc/network/interfaces um folgende Einträge hin erweitern, d.h. diese Einträge hinzufügen:
    auto lo
    iface lo inet loopback
    
    iface end0 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
        address 192.168.1.2/24
        gateway 192.168.1.1
        bridge-ports end0
        bridge-stp off
        bridge-fd 0
    
    Unter address sollte man hierbei die ausgewählte statische IPv4 Adresse angeben sowie unter gateway die IPv4 Adresse des Routers/Gateways.
  6. /etc/hosts anpassen: Nach der Änderung des hostname und der Netzwerkeinstellungen sollte man nnun in der /etc/hosts mit einem geeigneten Editor die Zeile mit dem 127.0.1.1 Eintrag löschen und entsprechend die Datei auf folgendes Muster hin ändern:
    127.0.0.1   localhost
    192.168.1.2 pvearm pvearm.fritz.box
    ::1         localhost ip6-localhost ip6-loopback
    fe00::0     ip6-localnet
    ff00::0     ip6-mcastprefix
    ff02::1     ip6-allnodes
    ff02::2     ip6-allrouters
    
    D.h. einen Eintrag mit der geplanten festen IP-Adresse (hier als Beispiel 192.168.1.2) des Hosts anstelle des 127.0.1.1 Eintrages samt neuem hostname und FQDN dort einzutragen.
  7. APT update durchführen: Nun sollte man via des folgenden Befehles ein generelles System update durchführen lassen und dann das System auch automatisch neustarten:
    sudo apt update && sudo apt full-upgrade && sudo apt install unzip && sudo reboot
  8. Proxmox-ARM APT repository hinzufügen: Ist das System wieder korrekt hochgefahren und auch via der vergebenen statischen IP-Adresse wieder erreichbar sollte man via folgenden Kommandos dafür sorgen, dass die entsprechenden APT Repositories für die Proxmox VE ARM Installation zur Verfügung stehen:
    sudo sh -c "echo 'deb https://mirrors.apqa.cn/proxmox/debian/pve bookworm port' >/etc/apt/sources.list.d/pveport.list"
    sudo sh -c "curl https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o /etc/apt/trusted.gpg.d/pveport.gpg"
    sudo apt update && sudo apt full-upgrade
  9. ifupdown2 Paket installieren: Damit die vorgenommenen Netzwerkeinstellungen (z.B. statische IP-Adresse) aktiv werden können sollte mit folgendem Befehl als erstes das ifupdown2 Paket installiert werden:
    sudo apt install ifupdown2 && sudo reboot
    Hinweis: Sollte bei der Installation des ifupdown2 Paketes ein Fehler auftreten muss man erst einen reboot (sudo reboot) durchführen und dann die Installation des Paketes erneut durchführen inkl. eines weitere Reboots.
  10. Proxmox VE Pakete installieren: Nachdem das System neugestartet hat und wieder via Netzwerk erreichbar ist kann mit folgendem Befehl nun die eigentlichen Proxmox VE Pakete installieren lassen:
    sudo apt install proxmox-ve postfix open-iscsi
    Im Laufe der Installation wird nach einigen Konfigurationsparametern des postfix Paketes gefragt. Hierbei sollte man diese dann wie folgt beantworten:
    1. General mail configuration type: Satellite system
    2. SMTP relay host: [IP-Adresse des lokalen SMTP servers]
    
  11. Finaler Neustart: Wurden im vorherigen Schritt alle Pakete korrekt installiert kann man mit folgendem Befehl einen finalen Neustart durchführen lassen:
    sudo reboot
  12. Auf Proxmox WebUI zugreifen: Nach dem finalen Neustart kann man dann via https://<IP-ADRESSE>:8006/ auf die Proxmox Weboberfläche zugreifen: Ist dieser letzte Schritt abgeschlossen, kann man sich dann danach der Installation der RaspberryMatic VM annehmen.