Back openDesk Edu for a sovereign, open-source education â every vote counts.
Vote nowSave products you love by clicking the heart icon.
A practical guide to deploying SCS Cloud in a Box (CIAB) â a single-node OpenStack+Kubernetes cloud infrastructure built on European open-source standards for digital sovereignty.
OSISM (Open Source Infrastructure as a Service Manager) ist die Deployment- und Operations-Plattform hinter dem Sovereign Cloud Stack (SCS) â Europas Antwort auf den Lock-in-Effekt von Hyperscalern. Es orchestriert den vollstĂ€ndigen Lebenszyklus einer Private Cloud, die auf OpenStack, Ceph und Kubernetes basiert, und wird ĂŒber eine einzige, Ansible-gesteuerte Control Plane verwaltet. OSISM 10, veröffentlicht im MĂ€rz 2026, bietet Multi-Version-Support fĂŒr sowohl OpenStack (2025.1 und 2025.2) als auch Ceph, wodurch der Release-Zyklus von OSISM zum ersten Mal von den Versionen der einzelnen Komponenten entkoppelt wird.
Dieser Artikel beschreibt, was OSISM ist, wie seine Komponenten zusammenpassen und die schrittweise Installationsroutine vom Bare-Metal-Server bis zum laufenden Cloud Pod.
Jedes OSISM-Deployment wird als Cloud Pod bezeichnet â eine eigenstĂ€ndige Private-Cloud-Umgebung mit eigenen Compute-, Storage-, Networking- und Management-Ebenen. Die Architektur ist geschichtet aufgebaut:
| Ebene | Technologie | Rolle |
|---|---|---|
| Hardware | x86_64 Server, SONiC Switches | Physisches Fundament |
| OS | Ubuntu 24.04 LTS | Betriebssystem der Nodes |
| OSISM | Ansible Playbooks, containerisierte Control Plane | Deployment- und Lifecycle-Management |
| OpenStack | Nova, Neutron, Cinder, Glance, Keystone | Virtueller Compute, Networking, Block Storage, Identity |
| Ceph | RBD, RGW, CephFS | Verteilter Block-, Object- und File-Storage |
| Kubernetes | K3s, Gardener, Cluster API | Container-Orchestrierung und Cluster-Lifecycle |
| SCS Standards | SCS-OpenStack, SCS-K8s, Keycloak | Compliance, Identity Federation, Audit |
| Zugriff | Horizon Dashboard, OpenStack CLI, Terraform | BenutzeroberflÀchen |
Der Cloud Pod ist kein Hypervisor-Produkt. Er ist ein Integrations-Framework, das bewĂ€hrte Open-Source-Projekte nimmt und sie zu einer kohĂ€renten, prĂŒfbaren und upgradefĂ€higen Plattform verknĂŒpft. Jede KonfigurationsĂ€nderung erfolgt ĂŒber ein einziges Git-Repository â es gibt keine "Click-Ops"-Konsole fĂŒr den Operator.
Der Manager ist der zentrale Control Node und der einzige Einstiegspunkt fĂŒr den Operator. Jede Aufgabe â das Deployment von OpenStack-Services, das Upgrade von Ceph, das Bootstrapping von Nodes, das AusfĂŒhren von Health-Checks â wird ĂŒber ihn via osism CLI gesteuert.
Intern lÀuft der Manager als Set von Containern, die auf dem Manager-Node durch Docker Compose orchestriert werden. Die Architektur besteht aus:
osismclient / python-osism â Der Container, der die osism CLI bereitstellt. Alle Interaktionen des Operators erfolgen ĂŒber diesen Befehl. Die zugrunde liegende Python-Bibliothek ist python-osism, welche zudem eine programmatische API exponiert.
Celery + Redis Job-Queues â Der Manager nutzt Celery, unterstĂŒtzt durch eine Redis-Instanz (manager-redis), um Ansible-Tasks asynchron zu verteilen. Dieselbe Redis-Instanz dient gleichzeitig als Ansible-Facts-Cache, sodass alle Ansible-Container die gesammelten Host-Facts teilen. FĂŒnf dedizierte Queues laufen parallel:
| Queue | Workload |
|---|---|
kolla-ansible | OpenStack Service Lifecycle |
ceph-ansible | Ceph Deployment und Management |
osism-ansible | Infrastructure-Level Playbooks |
osism-kubernetes | Kubernetes Operations |
reconciler | Inventory Reconciliation |
Parallele Queues bedeuten, dass ein OpenStack-Deployment und ein Ceph-Rolling-Upgrade gleichzeitig laufen können, ohne sich gegenseitig zu blockieren.
Ansible-Container â Jeder Workload-Typ hat sein eigenes Container-Image, das den relevanten Ansible-Code und die AbhĂ€ngigkeiten enthĂ€lt:
inventory-reconciler â Der einzige Container, der in das gemeinsame /ansible/inventory Volume schreibt. Er fĂŒhrt das Konfigurations-Repository mit NetBox-Daten (falls verwendet) zu einem einzigen, konsolidierten Inventory zusammen. Alle Ansible-Container mounten dieses Volume schreibgeschĂŒtzt, wodurch garantiert wird, dass jeder Workload dieselbe konsistente Sicht auf Hosts und Variablen hat.
Konfigurations-Volume (/opt/configuration) â Wird schreibgeschĂŒtzt in jeden Ansible-Container gemountet. Dies ist das Git-Konfigurations-Repository â die "Single Source of Truth" fĂŒr Inventory, Gruppenvariablen, Host-Variablen und Secrets.
Die MetalBox ist ein Hardware-Provisioning-Toolkit, das auf OpenStack Ironic basiert. Sie provisioniert Bare-Metal-Server und Switches und bĂŒndelt alle Komponenten, die fĂŒr das Offline-Bootstrapping eines Cloud Pods benötigt werden:
| MetalBox Komponente | Zweck |
|---|---|
| NetBox | Hardware-Inventory, IPAM, Verkabelungstopologie |
| OSISM Manager | Gleiche Control Plane wie ein regulÀrer Cloud Pod |
| Ironic | Bare-Metal-Provisioning via Virtual Media und Redfish |
| HTTPd | Stellt IPA-Boot-Images und Deployment-Images bereit |
| Docker Registry | Container-Images fĂŒr Offline-/Air-Gapped-Umgebungen |
| APT Repository | Ubuntu-Pakete fĂŒr Offline-Umgebungen |
| dnsmasq + Chrony | DHCP, DNS, NTP fĂŒr das Provisioning |
Die MetalBox ĂŒbernimmt zudem das SONiC ZTP (Zero Touch Provisioning) fĂŒr Netzwerk-Switches. Switches mit ONIE booten in den Installationsmodus, finden die MetalBox via DHCP, laden ihr spezifisches SONiC-Image und die Konfiguration, installieren beides und booten in ein vollstĂ€ndig konfiguriertes Netzwerk-Betriebssystem neu â ohne dass eine Interaktion ĂŒber die Konsole erforderlich ist.
Das Git-Konfigurations-Repository ist die Single Source of Truth fĂŒr die gesamte Umgebung. Es enthĂ€lt:
Das Repository wird aus einem Cookiecutter-Template auf einer lokalen Workstation oder einer dedizierten VM (dem sogenannten Seed Node) erstellt und anschlieĂend auf den Manager ĂŒbertragen. Nach dem initialen Deployment erfolgen Updates ĂŒber osism apply configuration.
NetBox stellt die DCIM-Schicht (Data Centre Infrastructure Management) bereit â Hardware-Inventory, IP-Adressmanagement (IPAM), Verkabelung, Rack-Positionen, VLANs und benutzerdefinierte Felder. Die lokale NetBox-Instanz wird aus dem Konfigurations-Repository befĂŒllt und dient als autoritative Datenquelle sowohl fĂŒr den Manager als auch fĂŒr die MetalBox.
Ceph stellt das vereinheitlichte Storage-Backend bereit â Block Storage (RBD) fĂŒr Cinder, Object Storage (RGW) mit S3-kompatiblen APIs und File Storage (CephFS). In OSISM 10 ist ceph-ansible zugunsten von cephadm fĂŒr neue Deployments veraltet; bestehende Cluster können via cephadm adopt in-place migriert werden.
Die Netzwerkebene nutzt SONiC (Software for Open Networking in the Cloud) auf Leaf-Spine-Switches mit BGP-unnumbered host-based Routing. Traditionelle Konzepte wie MLAG, Spanning Tree und Bonding werden durch BFD, BGP und ECMP ersetzt. Das virtuelle Networking innerhalb des Pods wird durch OVN (Open Virtual Network) gehandhabt, welches Overlay-Netzwerke zur Mandantentrennung bereitstellt.
OSISM folgt einem strikten sequenziellen Deployment-Prozess. Jeder Schritt baut auf dem vorherigen auf, und der Seed Node wird verworfen, sobald der Manager betriebsbereit ist.
Der Ausgangspunkt ist kein Server â es ist ein Git-Repository. Erstellen Sie auf einer lokalen Workstation (dem Seed Node) das Konfigurations-Repository aus dem Cookiecutter-Template:
pip install cookiecutter
cookiecutter https://github.com/osism/cookiecutter-configuration.git
cd output/configuration
git init && git add -A && git commit -m "init: configuration repository"
Bevor das Repository verwendbar ist, mĂŒssen sechs Dinge angepasst werden:
environments/manager/files/certificates/environments/manager/configuration.ymlenvironments/manager/configuration.ymlnode01 durch Ihre tatsĂ€chlichen Hostnamen in environments/manager/hostsmanager in environments/manager/hosts hinzusecrets/ enthĂ€lt den SSH-Deploy-Key fĂŒr das RepositoryPushen Sie das Repository zu GitHub, GitLab oder Ihrem internen Git-Server.
Der Seed-Knoten ist eine temporĂ€re VM (oder Ihre Workstation), die das initiale Bootstrap des Managers durchfĂŒhrt. Er benötigt Docker oder Podman, SSH-Zugriff auf den zukĂŒnftigen Manager-Knoten und einen Klon des Konfigurations-Repositorys.
cd environments/manager
Alle nachfolgenden Befehle werden aus diesem Verzeichnis ausgefĂŒhrt. Das Skript run.sh erkennt die Container-Engine automatisch und pullt den registry.osism.tech/osism/seed:latest Container, sofern verfĂŒgbar.
Dies ist der aufwendigste Schritt, der in fĂŒnf Teilschritte unterteilt ist:
3a â Operator-Benutzer erstellen
Der Operator-Benutzer dragon wird auf jedem Knoten erstellt. Alle OSISM-Container laufen unter diesem Benutzer, und Ansible nutzt ihn fĂŒr den SSH-Zugriff.
ANSIBLE_BECOME_ASK_PASS=True \
ANSIBLE_ASK_VAULT_PASS=True \
ANSIBLE_ASK_PASS=True \
ANSIBLE_USER=osism \
./run.sh operator
ANSIBLE_USER ist der initiale Provisioning-Benutzer (z. B. osism im Knoten-Image oder ubuntu bei manuellen Installationen). Nach diesem Schritt werden fĂŒr alle weiteren Befehle dragon verwendet.
3b â Netzwerkkonfiguration anwenden
./run.sh network
Sichern Sie bestehende Netzwerkkonfigurationen, bevor Sie dies ausfĂŒhren. Die Netzwerk-Role wendet die Konfiguration aus environments/manager/configuration.yml an. Danach ist ein Neustart erforderlich, um sicherzustellen, dass die Konfiguration nach einem Reboot erhalten bleibt.
3c â Bootstrap des Manager-Knotens
./run.sh bootstrap
./run.sh reboot
Dies installiert Docker, die OSISM-Container-Images und bereitet den Knoten fĂŒr den Manager-Dienst vor.
3d â Deployment des Manager-Dienstes
./run.sh configuration # Transfer the config repo
./run.sh traefik # Optional: reverse proxy
./run.sh netbox # Optional: DCIM inventory
./run.sh manager # Deploy the Manager containers
3e â Vault-Passwort setzen
ssh -i id_rsa.operator dragon@YOUR_MANAGER_NODE
osism set vault password
Nach diesem Schritt wird der Seed-Knoten nicht mehr benötigt.
Bei Verwendung der MetalBox werden Bare-Metal-Server ĂŒber Ironic mittels virtueller Medien und Redfish provisioniert. Der Provisionierungs-Flow:
In Umgebungen ohne MetalBox werden Knoten manuell provisioniert (Ubuntu 24.04 LTS Installation) und dem Inventory des Konfigurations-Repositorys hinzugefĂŒgt.
Sobald die Knoten ĂŒber ein Betriebssystem und Netzwerkzugriff verfĂŒgen, bootstrappen Sie diese vom Manager aus:
ssh dragon@YOUR_MANAGER_NODE
osism apply bootstrap
osism apply network
osism reboot
Dienste werden in einer strikten Reihenfolge bereitgestellt. Jeder Befehl kann optional zuerst die Container-Images vorab pullen:
osism pull <service-list>
osism apply <service-list>
Die empfohlene Deployment-Reihenfolge:
Validieren Sie vor dem Deployment die Netzwerkverbindung:
osism validate kolla-connectivity
osism validate ceph-connectivity # if using Ceph
FĂŒr Evaluation, Entwicklung und Training bietet OSISM Cloud in a Box (CIAB) an â ein Single-Node-Deployment, das eine vollstĂ€ndige Kubernetes-Cloud (oder einen kompletten OpenStack + Ceph + K8s Stack) von einem bootfĂ€higen USB-Image aus installiert.
| CIAB-Typ | Enthaltene Komponenten | Anwendungsfall |
|---|---|---|
sandbox | VollstÀndiges OpenStack + Ceph + K8s | Komplette Cloud-Evaluation |
edge | OpenStack (reduziertes Ceph), zentrales Logging | Remote-Standorte mit begrenztem Speicher |
kubernetes | Nur K8s, kein OpenStack | Fokus auf Container-Orchestrierung |
Mindestanforderungen an die Hardware: 4 Kerne, 32 GB RAM, 1 TB Festplatte (bei /dev/sda oder /dev/nvme0n1), eine Netzwerkkarte (NIC) mit DHCP-Internetzugang.
Automatisierte Installation:
ubuntu-autoinstall-cloud-in-a-box-1.iso (oder -2.iso fĂŒr NVMe)dddragon / passwordDie CIAB stellt eine WireGuard-VPN-Konfiguration unter /home/dragon/wireguard-client.conf bereit, um einen sicheren Zugriff auf alle Web-Interfaces (Horizon, Grafana, NetBox, Netdata, ARA, Ceph Dashboard) zu ermöglichen.
GitOps standardmĂ€Ăig. Jede KonfigurationsĂ€nderung ist ein Git-Commit. Der Manager liest aus dem gemounteten Repository, nicht aus Ad-hoc-Konsolenbefehlen. Dies macht Audits, Rollbacks und Disaster Recovery unkompliziert â Repository klonen, den Manager darauf ausrichten und erneut anwenden.
Containerisiertes Ansible. Anstatt Ansible direkt auf dem Manager-Node auszufĂŒhren, lĂ€uft jeder Workload-Typ in seinem eigenen Container mit fixierten Versionen. Der Befehl osism apply steuert ĂŒber Celery den korrekten Container an. Diese Isolation ermöglicht es, dass kolla-ansible und ceph-ansible gleichzeitig unterschiedliche Ansible-Versionen nutzen können.
Multi-Versions-Support (OSISM 10+). Ein OSISM 10 Deployment kann OpenStack 2025.1 oder 2025.2 sowie Ceph Quincy, Reef oder Squid betreiben. Die Version wird im Konfigurations-Repository ausgewĂ€hlt und ist nicht an das OSISM-Release gebunden. Dies ist eine signifikante Ănderung gegenĂŒber frĂŒheren Versionen, bei denen der gesamte Stack an einen einzigen OpenStack-Release-Train gebunden war.
Operator-Benutzermodell. Der Benutzer dragon ist sowohl der SSH-Benutzer fĂŒr Ansible als auch der Runtime-Benutzer fĂŒr alle Container. Dies vereinfacht die Berechtigungen â es gibt keine Vermischung von Root- und Non-Root-Kontexten, und das SSH-SchlĂŒsselpaar (id_rsa.operator) bietet konsistenten Zugriff ĂŒber alle Nodes hinweg.