OpenNebula Private Cloud: Schritt für Schritt zur eigenen Cloud
Mit OpenNebula können Sie auf eigenen Servern eine private Cloud betreiben und dort virtuelle Maschinen zentral verwalten. Diese Anleitung zeigt die Einrichtung einer einfachen Multi-Node-Private-Cloud mit OneDeploy und lokalem Speicher.
Schritt 1: Voraussetzungen
Für eine funktionierende OpenNebula-Cloud benötigen Sie mindestens zwei Linux-Server: einen sogenannten Frontend-Server und mindestens einen Host-Server. Der Frontend-Server übernimmt die Verwaltung der Cloud, während die Host-Server später die virtuellen Maschinen ausführen. Für erste Tests reicht ein Setup mit einem Frontend und einem Host völlig aus, für produktive Umgebungen sind meist zwei oder mehr Hosts sinnvoll.
Wenn Sie noch auf der Suche nach der geeigneten Plattform sind, sollten Sie die Eigenschaften, Vor- und Nachteile im Vergleich zwischen OpenNebula und Proxmox, OpenNebula und OpenStack bzw. OpenNebula und CloudStack genau unter die Lupe nehmen. Die verschiedenen Lösungen unterscheiden sich vor allem in Komplexität und Einsatzbereich.
Als Betriebssystem sollte auf allen Servern eine Version von Ubuntu installiert sein; am besten eignet sich eine aktuelle Version des Betriebssystems wie Ubuntu 24.04. Wichtig ist außerdem, dass die Prozessoren Virtualisierung unterstützen (wie beispielsweise Intel VT-x oder AMD-V), da sonst keine virtuellen Maschinen gestartet werden können. In den meisten OpenNebula-Installationen kommt der Linux-Hypervisor KVM zum Einsatz, der diese Hardware-Virtualisierung benötigt. Diese Funktion ist bei modernen Servern normalerweise vorhanden und kann im BIOS aktiviert werden.
- Jederzeit vollständige Datenhoheit sowie Datenkontrolle
- Im Einklang mit allen gesetzlichen Regelungen in Deutschland
- Ohne Vendor Lock-in für höchste Flexibilität
Für ein kleines Testsystem empfehlen sich folgende Voraussetzungen:
- Frontend-Server: 4 CPU-Kerne und 8–16 GB RAM
- Host-Server: Dieser Server sollte etwas stärker sein, zum Beispiel 8 CPU-Kerne und mindestens 32 GB RAM, damit mehrere virtuelle Maschinen gleichzeitig laufen können.
- Netzwerkverbindung: Alle Server benötigen eine stabile Netzwerkverbindung untereinander.
- IP-Adresse: Jeder Server sollte eine feste IP-Adresse besitzen, damit OpenNebula die Systeme zuverlässig erreichen kann. Zusätzlich benötigen Sie einen IP-Adressbereich für virtuelle Maschinen. Beispielsweise könnten Sie im Netzwerk 192.168.1.0/24 die Adressen 192.168.1.200–192.168.1.220 für spätere VMs reservieren.
- Verbindung: Eine SSH-Verbindung auf alle Server ist nötig.
- Rechte: Ihr Benutzerkonto muss Root- oder sudo-Rechte besitzen. Ohne diese Rechte lässt sich die Installation nicht durchführen.
Wenn Sie nur experimentieren möchten, können auch kleinere Systeme funktionieren, allerdings ist die Leistung dann begrenzt. Für Einsteigerinnen und Einsteiger ist es darüber hinaus am einfachsten, zunächst mit lokalem Speicher auf jedem Host zu arbeiten. Dabei werden virtuelle Maschinen direkt auf dem jeweiligen Server gespeichert. Komplexere Speicherlösungen wie Netzwerkspeicher können später ergänzt werden.
Schritt 2: Geeignete Servertypen auswählen
Für den Betrieb einer OpenNebula-Private-Cloud eignen sich unterschiedliche Servertypen, je nach Einsatzzweck und Budget. Für erste Tests oder kleine Projekte können bereits einfache Systeme ausreichen, während produktive Umgebungen leistungsstärkere Hardware erfordern.
VPS (Virtual Private Server) eignen sich vor allem für Testinstallationen und erste Experimente mit OpenNebula. Sie sind kostengünstig und schnell verfügbar, haben jedoch häufig eingeschränkte oder deaktivierte Virtualisierungsfunktionen. Oft ist sogenannte „Nested Virtualization“ nicht verfügbar, sodass sich virtuelle Maschinen innerhalb von OpenNebula nicht oder nur eingeschränkt starten lassen. Für Installations- und Interface-Tests sind VPS-Systeme dennoch gut geeignet.
Dedizierte Server sind die beste Wahl für produktive Private Clouds. Sie bieten volle Kontrolle über Hardware, Netzwerk und Virtualisierung und ermöglichen stabile Performance auch bei vielen virtuellen Maschinen. Dedizierte Server sind besonders sinnvoll, wenn mehrere Nutzerinnen und Nutzer auf die Cloud zugreifen oder dauerhaft virtuelle Systeme betrieben werden sollen.
Schritt 3: Ubuntu vorbereiten und Server erreichbar machen
Installieren Sie zuerst Ubuntu auf allen Servern. Während der Installation sollten Sie feste IP-Adressen vergeben oder diese später in der Netzwerkkonfiguration einrichten. Nach der Installation melden Sie sich auf jedem Server an und aktualisieren das System mit folgenden Befehlen:
sudo apt update
sudo apt upgrade -ybashDiese Aktualisierung stellt sicher, dass alle Pakete auf dem neuesten Stand sind und spätere Installationsprobleme vermieden werden.
Schritt 4: SSH-Verbindung einrichten
OpenNebula benötigt außerdem eine funktionierende SSH-Verbindung zwischen den Servern. Der Frontend-Server muss sich ohne Passwort als root-User mit den Host-Servern verbinden können. Außerdem muss das Benutzerkonto, das das Playbook ausführt, auf dem Frontend per sudo Root-Zugriff erhalten können. Beides wird benötigt, damit OpenNebula später automatisch Software installieren und konfigurieren kann. Wechseln Sie auf den Frontend-Server und erstellen Sie einen SSH-Schlüssel:
sudo ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""bashDanach kopieren Sie den Schlüssel mit folgendem Befehl auf die Host-Server (ersetzen Sie die hier verwendeten Werte durch die tatsächlichen IP-Adressen Ihrer eigenen Server und Ihres Netzwerks):
sudo ssh-copy-id root@192.168.1.11bashTesten Sie anschließend die Verbindung:
sudo ssh root@192.168.1.11bashWenn Sie ohne Passwortabfrage angemeldet werden, funktioniert die Verbindung korrekt.
Schritt 5: OneDeploy installieren
OneDeploy eignet sich besonders für reproduzierbare Multi-Node-Installationen. Für einfache Testumgebungen stellt OpenNebula alternativ mit „miniONE“ bzw. einer vorkonfigurierten PoC-Appliance einen noch schnelleren Einstieg bereit.
Die einfachste Methode zur Installation ist eine Sammlung von Ansible-Playbooks namens OneDeploy, die die komplette Einrichtung automatisiert. Dadurch müssen Sie viele komplizierte Konfigurationsschritte nicht selbst durchführen. Installieren Sie zuerst die benötigten Programme auf dem Frontend-Server:
sudo apt install -y python3-pip pipx git makebashDanach laden Sie OneDeploy von Git herunter:
git clone https://github.com/OpenNebula/one-deploy.git
cd one-deploybashOneDeploy benötigt außerdem eine spezielle Python-Umgebung. Diese richten Sie mit folgenden Befehlen ein:
pipx install hatch
pipx ensurepath
source ~/.bashrcbashInstallieren Sie anschließend die benötigten Abhängigkeiten:
make requirementsbashZum Schluss wechseln Sie in die vorbereitete Umgebung:
hatch shellbashWenn der Befehl erfolgreich war, sehen Sie (one-deploy) am Anfang der Befehlszeile.
Schritt 6: Cloud-Konfiguration erstellen
Nun müssen Sie OpenNebula via Ansible-Inventory vorgeben, welche Server verwendet werden und wie das Netzwerk aufgebaut ist. Dazu erstellen Sie eine Konfigurationsdatei. Wechseln Sie hierzu zunächst in ein neues Verzeichnis:
mkdir ~/opennebula-config
cd ~/opennebula-configbashErstellen Sie eine Datei. Wir nutzen an dieser Stelle den Editor nano, Sie können aber jeden beliebigen Texteditor Ihrer Wahl verwenden.
nano example.ymlbashFügen Sie folgenden Beispielinhalt in die soeben erstellte example.yml ein:
---
all:
vars:
ansible_user: root
one_version: '7.2'
one_pass: opennebulapass
ensure_hosts: true
vn:
admin_net:
managed: true
template:
VN_MAD: bridge
PHYDEV: eth0
BRIDGE: br0
AR:
TYPE: IP4
IP: 172.20.0.100
SIZE: 48
NETWORK_ADDRESS: 172.20.0.0
NETWORK_MASK: 255.255.255.0
GATEWAY: 172.20.0.1
DNS: 1.1.1.1
frontend:
hosts:
f1: { ansible_host: 172.20.0.2 }
node:
hosts:
n1: { ansible_host: 172.20.0.3 }
n2: { ansible_host: 172.20.0.4 }yamlIm AR-Block, in dem der Adressbereich definiert wird, tragen Sie die IPs Ihrer Server anstelle der Beispieladressen ein. Besonders wichtig ist der Eintrag PHYDEV. Dort muss der Name Ihrer Netzwerkschnittstelle stehen. Häufig heißt sie zum Beispiel eth0, ens18 oder enp1s0. Für den Eintrag one_version ergänzen Sie die jeweilige Version von OpenNebula.
Den Namen Ihrer Netzwerkschnittstelle können Sie mit folgendem Befehl herausfinden:
ip abash
Erstellen Sie zusätzlich eine Datei ansible.cfg, in der grundlegende Einstellungen für die Ausführung von Ansible definiert werden. In der offiziellen Dokumentation wird folgende Konfiguration vorgeschlagen:
[defaults]
inventory=./example.yml
gathering=explicit
host_key_checking=false
display_skipped_hosts=true
retry_files_enabled=false
any_errors_fatal=true
stdout_callback=yaml
timeout=30
collections_paths=/home/user/one-deploy/ansible_collections
[ssh_connection]
pipelining=true
ssh_args=-q -o ControlMaster=auto -o ControlPersist=60s
[privilege_escalation]
become = true
become_user = roottxtDiese Konfigurationsdatei legt unter anderem fest, welche Inventory-Datei verwendet wird und wo sich die benötigten Ansible-Collections von OneDeploy befinden. Beachten Sie dabei, dass Sie den angegebenen Pfad von collections_paths durch den korrekten Pfad zu Ihrem OneDeploy-Verzeichnis ersetzen müssen. Andernfalls kann Ansible die benötigten Collections möglicherweise nicht finden und das Playbook nicht korrekt ausführen.
Schritt 7: OpenNebula installieren und starten
Jetzt können Sie die eigentliche Installation starten. Testen Sie hierzu zunächst die Verbindung zwischen den Servern mit dem folgenden Befehl:
ansible -i example.yml all -m ping -bbashWenn alle Hosts mit einem Pong antworten, ist die Verbindung korrekt eingerichtet. Starten Sie anschließend die Installation:
ansible-playbook -v opennebula.deploy.mainbashDie Installation dauert meist mehrere Minuten. Währenddessen werden Pakete installiert, Netzwerke eingerichtet und die Cloud konfiguriert. Wenn keine Fehlermeldungen erscheinen, ist OpenNebula bereit.
Testen Sie anschließend die Verbindung, um sicherzugehen, dass alles erfolgreich war:
onehost listbashWenn die Hosts angezeigt werden, funktioniert die Cloud korrekt.
Falls die Verbindung fehlschlägt, prüfen Sie insbesondere die SSH-Erreichbarkeit sowie die korrekte IP-Konfiguration der Server. Auch falsche Pfade in der ansible.cfg können zu Fehlern führen.
Schritt 8: Weboberfläche öffnen und erste VM starten
OpenNebula besitzt eine Weboberfläche, über die Sie die Cloud einfach und intuitiv bedienen können. Öffnen Sie diese im Browser über Port 2616:
http://IP-DES-FRONTEND-SERVERS:2616bashMelden Sie sich mit Ihren Zugangsdaten an:
- Benutzername:
oneadmin - Passwort: Das Passwort aus der Konfigurationsdatei (
one_pass)
Nach dem Login sehen Sie die Verwaltungsoberfläche. Dort können Sie Hosts, Netzwerke und virtuelle Maschinen verwalten. Zum Test können Sie ein fertiges Image aus dem Marketplace importieren und eine kleine virtuelle Maschine starten. Wenn die VM startet und eine IP-Adresse erhält, funktioniert Ihre private Cloud korrekt.

