Angepasstes Linux-Image erstellen

Sie können Ihr eigenes Linux benutzerdefiniertes Bild erstellen, um es in zu IBM Cloud® Virtual Private Cloud importieren. Anschließend können Sie das benutzerdefinierte Image verwenden, um einen virtuellen Server oder 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.
  • Liegen im Format qcow2 oder vhd vor.
  • Die Größe darf 250 GB nicht überschreiten.
  • Vergewissern Sie sich, dass cloud-init(Linux ) oder cloudbase-init(Windows) im qcow2 Image installiert und aktiv ist.
  • 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. Beachten Sie, dass Sie kein Image von einem verschlüsselten Startvolume erstellen können, das nicht mindestens 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. Zum Hochladen von Bildern, die größer als 200 MB sind, können Sie das Plug-in für die Hochgeschwindigkeitsübertragung Aspera verwenden. 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 zur Verwaltung Ihrer benutzerdefinierten Images verwenden möchten, müssen Sie dieses Image zunächst in importieren und anschließend das virtuelle IBM Cloud VPC Server-Image in einen privaten Katalog aufnehmen.

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.