IBM Cloud Docs
Angepasstes Linux-Image erstellen

Angepasstes Linux-Image erstellen

Sie können ein eigenes, auf Linuxbasierendes Image für den Import in IBM Cloud® Virtual Private Clouderstellen. Anschließend können Sie das angepasste Image verwenden, um einen virtuellen Server oder einen Bare-Metal-Server in der IBM Cloud® Virtual Private Cloud-Infrastruktur bereitzustellen.

Es bietet sich an, mit einer Imagevorlage aus der klassischen IBM Cloud-Infrastruktur zu beginnen. Weitere Informationen hierzu finden Sie unter Virtuellen Server aus klassischer Infrastruktur migrieren. Wussten Sie, dass Sie auch ein benutzerdefiniertes Image eines Boot-Volumes erstellen können, das zum Zeitpunkt des Imports an eine Instanz angeschlossen ist? Weitere Informationen finden Sie unter Informationen zum Erstellen eines Image von einem Datenträger.

Alle benutzerdefinierten Bilder müssen die folgenden Anforderungen erfüllen:

  • Sie müssen eine einzelne Datei oder einen Datenträger enthalten.
  • Sie müssen im Format qcow2 oder vhd vorliegen.
  • Muss Cloud-Init-fähig oder durch ESXi-Kickstart bootfähig sein.
  • Die Größe übersteigt nicht 250 GB.
  • Die Mindestgröße beträgt 10 GB. Für jedes Image, das kleiner als 10 GB ist, wird die Größe auf 10 GB aufgerundet.

Informationen zum Erstellen sicherer, ausführungsbasierter angepasster Images mithilfe der Option IBM Cloud Object Storage finden Sie unter Workload vorbereiten. Weitere Informationen zum Erstellen sicherer ausführungsbasierter Images finden Sie unter IBM Secure Execution for Linux.

Für Linux -Images kann der SSH-Schlüsseltyp Ed25519 nur verwendet werden, wenn der SSH-Server für das Betriebssystem diesen Schlüsseltyp unterstützt. Weitere Informationen finden Sie unter Einführung in SSH-Schlüssel.

Führen Sie die folgenden Schritte durch, um sicherzustellen, dass Sie Ihr eigenes angepasstes Linux-Image erfolgreich in der IBM Cloud VPC-Infrastrukturumgebung bereitstellen können. Denken Sie daran, dass Sie kein Image von einem verschlüsselten Boot-Volume (Image von einem Volume) erstellen können, das nicht 100 GB groß ist. Die Operation ist blockiert.

Schritt 1 - Mit einer einzigen Imagedatei im qcow2-Format oder im VHD-Format starten

Beginnen Sie beim Erstellen eines eigenen angepassten Linux-basierten Images mit einer einzelnen Imagedatei im qcow2-Format oder im VHD-Format. Es kann hilfreich sein, mit einem Image eines cloudfähigen Anbieters zu beginnen.

Kernelprotokolle sind beim Debugging von Bootproblemen wichtig. Um sicherzustellen, dass Kernelprotokolle auf der seriellen Konsole ausgegeben werden, verwenden Sie das Kernelbefehlszeilenargument console=ttyS0. Außerdem werden die Kernelparameter nomodeset und nofb verwendet, um anzeigenbezogene Probleme während des Bootprozesses für ältere Kernel zu beheben, die vor Mitte 2021 freigegeben wurden. Die neueren Kernel verwenden die Videomoduseinstellung im Kernel.

Schritt 2 - Prüfen Sie auf Virtio-Treiber

  1. Stellen Sie sicher, dass die virtio-Treiber zusammen mit dem von virtio benötigten Code auf Ihrem Betriebssystemimage installiert sind. Die Virtio-Netztreiber sind für den Netzbetrieb erforderlich. Prüfen Sie, ob Virtio-Treiber im Kernel installiert sind, indem Sie den folgenden Befehl ausführen:

    grep -i virtio /boot/config-$(uname -r)
    

    Suchen Sie in der Ausgabe nach VIRTIO_BLK und VIRTIO_NET. Wenn diese Zeilen nicht vorhanden sind, ist der Virtio-Treiber nicht im Kernel integriert.

  2. Wenn die Zeilen VIRTIO_BLK und VIRTIO_NET vorhanden sind, überprüfen Sie, ob die Treiber im temporären Root-Dateisystem vorhanden sind, indem Sie den folgenden Befehl ausführen:

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
    

    Verwenden Sie den folgenden Befehl, wenn Sie ein Debian-Betriebssystem verwenden:

    lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio
    

    Überprüfen Sie, ob der Treiber virtio blk und seine Abhängigkeiten virtio.ko, virtio_pci und virtio_ring vorhanden sind. Wenn die Virtio-Abhängigkeiten nicht vorhanden sind, müssen Sie das Root-Dateisystem wiederherstellen.

Schritt 3 - Die Netzwerkschnittstelle ist auf automatische Konfiguration eingestellt

Wenn im Gast-Image Netzwerkschnittstellen definiert sind, stellen Sie sicher, dass mindestens eine Netzwerkschnittstelle auf autokonfiguration eingestellt ist. Es können nicht alle Schnittstellen für die manuelle Konfiguration festgelegt werden. In der Regel wird bei der Schnittstelle die Verwendung von DHCP definiert. Weitere Informationen zum Konfigurieren von DHCP finden Sie in der Dokumentation für Ihre Linux-Distribution.

Schritt 4-Sicherstellen, dass das Image cloud-init-fähig ist

Vergewissern Sie sich, dass Ihr Image die Cloud-Initialisierung (cloud-init) unterstützt. Eine cloud-init-Version ab 0.7.9 ist erforderlich.

  1. Um festzustellen, ob cloud-init installiert ist, führen Sie den folgenden Befehl aus: cloud-init --version

    • Auch wenn cloud-init installiert ist, fehlt cloud-init möglicherweise in der Umgebungsvariablen PATH.
    • Mit dem folgenden Befehl können Sie den Pfad für 'cloud-init' für 'ExecStart' ermitteln: systemctl cat cloud-init
  2. Installieren Sie cloud-init mit dem geeigneten Befehl.

    • Führen Sie für Ubuntu oder Debianden Befehl apt-get install cloud-init aus.
    • Führen Sie für CentOS oder Red Hatden Befehl yum install cloud-init aus.
  3. Wenn die Eigenschaft datasources_list in /etc/cloud/cloud.cfgvorhanden ist, stellen Sie sicher, dass sie nur NoCloud enthält, oder entfernen Sie die Eigenschaft datasources_list vollständig. ConfigDrive wird nicht unterstützt. Weitere Informationen zu Datenquellen finden Sie unter Datenquellen. IBM Cloud cloud-init-Images werden für die Umgebung mithilfe der Datenquelle NoCloud erstellt, um die Metadaten bereitzustellen.

    Eine Blockeinrichtung ist vorgesehen. Beispiel:

    blkid
    /dev/vdb: UUID="2023-03-15-16-50-02-00" LABEL="cidata" TYPE="iso9660"
    

    Diese Blockeinheit wird von cloud-init gefunden und enthält die folgenden Dateien.

    • Metadateninstanz-ID: INSTANCE_ID local-hostname: NAME
    • user-data Optionale Benutzerdaten, die bei der Erstellung der Instanz bereitgestellt wurden. Weitere Informationen finden Sie unter Benutzerdaten.
    • vendor-data Eine Datei im MIME-Format, die die SSH-Berechtigung für die Cloudkonfiguration enthält, die von den SSH-Schlüsseln abgeleitet wurde, die bei der Erstellung der Instanz bereitgestellt wurden, sowie zusätzliche Initialisierungsinformationen.
  4. Überprüfen Sie in der Datei /etc/cloud/cloud.cfg, ob der Abschnitt cloud_final_modules das Modul scripts-vendor enthält, und vergewissern Sie sich, dass das Modul aktiviert ist. Standardmäßig ist das Modul scripts-vendor, das für die Bereitstellung von Instanzen in der IBM Cloud VPC-Infrastruktur erforderlich ist, bei Red Hat Enterprise Linux und CentOS nicht enthalten. Sie müssen das Modul scripts-vendor aktivieren, um eine virtuelle IBM Cloud VPC-Serverinstanz mit dem angepassten Linux-Image bereitzustellen.

    Bei Red Hat Enterprise Linux (RHEL)-Abbildern sind die folgenden Pakete standardmäßig Teil des Basisabbilds und werden benötigt, damit cloud-init erfolgreich ausgeführt werden kann: subscription-manager, ethtool, und rpm. Stellen Sie außerdem sicher, dass diese Services aktiviert sind: cloud-init-local.service, cloud-init.service, cloud-config.serviceund cloud-final.service.

  5. Stellen Sie sicher, dass Sie Ihr Image so konfigurieren, dass Sie SSH für die Anmeldung bei Ihrem virtuellen Server verwenden.

Der Standardbenutzer für ein RHEL-basiertes benutzerdefiniertes Image ist cloud-user. Weitere Informationen zur Aktivierung von cloud-init finden Sie unter Einrichten von cloud-init.

Schritt 5 - Größe der Startdiskette

Vergewissern Sie sich, dass das Image eine Boot-Diskettengröße von 10 - 250 GB hat. Bilder, die weniger als 10 GB groß sind, werden auf 10 GB aufgerundet.

Wenn Sie einen virtuellen Server für die Migration aus der Classic-Infrastruktur anpassen, kehren Sie zu Migration eines virtuellen Servers aus der Classic-Infrastruktur zurück und fahren Sie mit den Migrationsschritten fort.

Schritt 6-Bild in IBM Cloud Object Storage hochladen

Laden Sie Ihr Image in IBM Cloud Object Storage hoch. Klicken Sie auf der Seite Objekte in Ihrem IBM Cloud® Object Storage Bucket auf Hochladen. Sie können das Aspera Plug-in für Hochgeschwindigkeitsübertragungen verwenden, um Bilder hochzuladen, die größer als 200 MB sind. Weitere Informationen zum Hochladen in IBM Cloud Object Storage finden Sie unter Daten hochladen.

Nächste Schritte

Wenn Ihr angepasstes Linux-Image erstellt und in IBM Cloud Object Storageverfügbar ist, können Sie das angepasste Image in VPC importieren und ein virtuelles Server-Image für VPC integrieren. Stellen Sie sicher, dass Sie Zugriff auf IBM Cloud Object Storage erteilt haben, um Images zu importieren.

Wenn Sie einen privaten Katalog für die Verwaltung Ihrer angepassten Images verwenden möchten, dann müssen Sie dieses Image zuerst in IBM Cloud VPCimportieren und anschließend das Image des virtuellen Servers in einen privaten Katalog integrieren.

Nachdem das angepasste Image importiert wurde, können Sie das angepasste Image verwenden, um einen virtuellen Server in der IBM Cloud® Virtual Private Cloud-Infrastruktur zu implementieren.