# Eigene Images hochladen und nutzen

# Kyberio Secure Public Cloud – Kundenanleitung


# Überblick

Die Kyberio Secure Public Cloud stellt standardmäßig eine Auswahl an Betriebssystem-Images bereit. Darüber hinaus können Sie eigene Images hochladen, beispielsweise vorkonfigurierte Systeme, spezielle Linux-Distributionen oder eigene Appliances.

# Unterstützte Image-Formate

Format Dateiendung Beschreibung
QCOW2 .qcow2 Standard-Format (empfohlen), komprimiert
RAW .raw, .img Unkomprimiert, performant
VMDK .vmdk VMware-Format
VHD .vhd Hyper-V-Format
ISO .iso CD/DVD-Abbild (nur für spezielle Anwendungsfälle)

Empfehlung: Verwenden Sie nach Möglichkeit das QCOW2-Format, da es komprimiert ist und von der Plattform nativ unterstützt wird.


# 1. Image hochladen

# 1.1 Über das Horizon-Dashboard

  1. Navigieren Sie zu Projekt → Compute → Images.
  2. Klicken Sie auf „Image erstellen" (oben rechts).
  3. Füllen Sie das Formular aus:
Feld Beschreibung Beispiel
Name Eindeutiger Name für das Image custom-ubuntu-hardened-2404
Beschreibung Optionale Beschreibung Gehärtetes Ubuntu 24.04 mit CIS-Benchmark
Datei Die Image-Datei von Ihrem lokalen Rechner ubuntu-hardened.qcow2
Format Disk-Format des Images QCOW2
Mindest-Disk (GB) Minimale Disk-Größe für Instanzen 10
Mindest-RAM (MB) Minimaler Arbeitsspeicher 1024
Sichtbarkeit Nur für Ihr Projekt oder geteilt Privat
Geschützt Schutz vor versehentlichem Löschen Nein
  1. Klicken Sie auf „Image erstellen".
  2. Der Upload startet – abhängig von der Dateigröße und Ihrer Internetverbindung kann dies einige Minuten dauern.
  3. Warten Sie, bis der Status auf „Aktiv" wechselt.

# 1.2 Über die CLI

Standard-Upload:

openstack image create \
  --file /pfad/zu/ubuntu-hardened.qcow2 \
  --disk-format qcow2 \
  --container-format bare \
  --min-disk 10 \
  --min-ram 1024 \
  --private \
  --property os_type=linux \
  --property os_distro=ubuntu \
  --property os_version=24.04 \
  --property hw_qemu_guest_agent=yes \
  custom-ubuntu-hardened-2404

Upload mit Fortschrittsanzeige:

openstack image create \
  --file /pfad/zu/ubuntu-hardened.qcow2 \
  --disk-format qcow2 \
  --container-format bare \
  --min-disk 10 \
  --min-ram 1024 \
  --private \
  --progress \
  custom-ubuntu-hardened-2404

Status prüfen:

openstack image show custom-ubuntu-hardened-2404 -c status -c size -c disk_format

Erwartete Ausgabe:

+-------------+--------------------------+
| Field       | Value                    |
+-------------+--------------------------+
| disk_format | qcow2                    |
| size        | 1073741824               |
| status      | active                   |
+-------------+--------------------------+

# 2. Image-Eigenschaften (Properties) setzen

Zusätzliche Eigenschaften helfen der Plattform, das Image optimal zu nutzen:

# Wichtige Properties setzen
openstack image set \
  --property hw_disk_bus=virtio \
  --property hw_vif_model=virtio \
  --property hw_qemu_guest_agent=yes \
  --property os_type=linux \
  --property os_distro=ubuntu \
  --property os_version=24.04 \
  --property os_admin_user=ubuntu \
  custom-ubuntu-hardened-2404

# Nützliche Image-Properties

Property Beschreibung Beispielwert
hw_disk_bus Disk-Controller-Typ virtio (empfohlen)
hw_vif_model Netzwerk-Interface-Typ virtio (empfohlen)
hw_qemu_guest_agent QEMU Guest Agent aktivieren yes
os_type Betriebssystem-Typ linux, windows
os_distro Linux-Distribution ubuntu, centos, debian
os_version Betriebssystem-Version 24.04
os_admin_user Standard-Admin-Benutzer ubuntu, centos, root
hw_firmware_type Firmware-Typ uefi (für UEFI-Boot)

# 3. Image verwenden (Instanz erstellen)

# 3.1 Über das Horizon-Dashboard

  1. Navigieren Sie zu Projekt → Compute → Instanzen → „Instanz starten".
  2. Im Reiter „Quelle":
    • Boot-Quelle: Image
    • Wählen Sie Ihr eigenes Image aus der Liste.
  3. Fahren Sie mit der Konfiguration fort (Flavor, Netzwerk, etc.).

# 3.2 Über die CLI

# Verfügbare eigene Images anzeigen
openstack image list --private

# Instanz aus eigenem Image erstellen
openstack server create \
  --image custom-ubuntu-hardened-2404 \
  --flavor m1.medium \
  --network projekt-netz-01 \
  --security-group default \
  --key-name mein-schluessel \
  --boot-from-volume 50 \
  secure-webserver-01

# 4. Images verwalten

# Images auflisten

# Alle eigenen (privaten) Images
openstack image list --private

# Alle öffentlichen Images
openstack image list --public

# Alle Images (privat + öffentlich)
openstack image list

# Image-Details anzeigen

openstack image show custom-ubuntu-hardened-2404

# Image umbenennen

openstack image set --name "custom-ubuntu-hardened-2404-v2" custom-ubuntu-hardened-2404

# Image vor Löschung schützen

# Schutz aktivieren
openstack image set --protected custom-ubuntu-hardened-2404

# Schutz wieder aufheben
openstack image set --unprotected custom-ubuntu-hardened-2404

# Image löschen

# Schutz ggf. vorher aufheben
openstack image set --unprotected custom-ubuntu-hardened-2404

# Image löschen
openstack image delete custom-ubuntu-hardened-2404

# 5. Image aus bestehender Instanz erstellen (Snapshot als Image)

Wenn Sie eine bestehende, konfigurierte Instanz als Vorlage für weitere Instanzen verwenden möchten:

# Horizon-Dashboard

  1. Navigieren Sie zu Projekt → Compute → Instanzen.
  2. Klicken Sie im Dropdown-Menü (▾) auf „Snapshot erstellen".
  3. Vergeben Sie einen Namen (z. B. template-webserver-v1).
  4. Der Snapshot erscheint unter Projekt → Compute → Images.

# CLI

# Instanz-Snapshot erstellen (wird als Image gespeichert)
openstack server image create \
  --name template-webserver-v1 \
  webserver-prod-01

# Snapshot/Image anzeigen
openstack image show template-webserver-v1

# 6. Tipps zur Image-Vorbereitung

Bevor Sie ein eigenes Image hochladen, sollten Sie es für den Cloud-Einsatz vorbereiten:

# Cloud-Init installieren

Cloud-Init ermöglicht die automatische Konfiguration beim ersten Start (Hostname, SSH-Keys, Netzwerk):

# Innerhalb des Images / der VM
sudo apt install cloud-init    # Ubuntu/Debian
sudo yum install cloud-init    # CentOS/RHEL

# Image bereinigen (vor dem Export)

# SSH-Host-Keys entfernen (werden beim Start neu generiert)
sudo rm -f /etc/ssh/ssh_host_*

# Machine-ID zurücksetzen
sudo truncate -s 0 /etc/machine-id

# Temporäre Dateien aufräumen
sudo apt clean
sudo rm -rf /tmp/*
sudo rm -f /var/log/*.log

# Bash-History löschen
history -c

# Konvertierung in QCOW2

Falls Ihr Image in einem anderen Format vorliegt:

# VMDK → QCOW2
qemu-img convert -f vmdk -O qcow2 image.vmdk image.qcow2

# RAW → QCOW2 (mit Komprimierung)
qemu-img convert -f raw -O qcow2 -c image.raw image.qcow2

# VHD → QCOW2
qemu-img convert -f vpc -O qcow2 image.vhd image.qcow2

# Häufige Fragen

Wie groß darf ein Image maximal sein? Die maximale Image-Größe hängt von Ihrem Projekt-Quota ab. Über die CLI können Sie sehr große Images hochladen. Über das Dashboard kann die Upload-Größe durch Browser-Limits eingeschränkt sein (typisch: 5–10 GB). Nutzen Sie für größere Images die CLI.

Kann ich Windows-Images hochladen? Ja. Beachten Sie, dass Windows-Images die VirtIO-Treiber benötigen. Setzen Sie außerdem --property os_type=windows.

Kann ich ein Image mit anderen Projekten teilen? Ja. Sie können die Sichtbarkeit des Images anpassen:

# Image für ein anderes Projekt freigeben (Projekt-ID benötigt)
openstack image add project custom-ubuntu-hardened-2404 <projekt-b-id>

# Image als „shared" markieren
openstack image set --shared custom-ubuntu-hardened-2404

# Im Zielprojekt: Freigabe akzeptieren
openstack image set --accept custom-ubuntu-hardened-2404

Mein Image-Upload bricht ab – was kann ich tun? Prüfen Sie Ihre Internetverbindung und versuchen Sie den Upload erneut über die CLI. Die CLI ist robuster bei großen Dateien als das Dashboard.


Kyberio Secure Public Cloud – Dokumentation