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
-
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_BLKundVIRTIO_NET. Wenn diese Zeilen nicht vorhanden sind, ist der Virtio-Treiber nicht im Kernel integriert. -
Wenn die Zeilen
VIRTIO_BLKundVIRTIO_NETvorhanden 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 virtioVerwenden 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 blkund seine Abhängigkeitenvirtio.ko,virtio_pciundvirtio_ringvorhanden 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.
-
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
-
Installieren Sie cloud-init mit dem geeigneten Befehl.
- Führen Sie für Ubuntu oder Debianden Befehl
apt-get install cloud-initaus. - Führen Sie für CentOS oder Red Hatden Befehl
yum install cloud-initaus.
- Führen Sie für Ubuntu oder Debianden Befehl
-
Wenn die Eigenschaft
datasources_listin /etc/cloud/cloud.cfgvorhanden ist, stellen Sie sicher, dass sie nurNoCloudenthält, oder entfernen Sie die Eigenschaftdatasources_listvollständig.ConfigDrivewird 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.
-
Überprüfen Sie in der Datei /etc/cloud/cloud.cfg, ob der Abschnitt
cloud_final_modulesdas Modulscripts-vendorenthält, und vergewissern Sie sich, dass das Modul aktiviert ist. Standardmäßig ist das Modulscripts-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 Modulscripts-vendoraktivieren, 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, undrpm. Stellen Sie außerdem sicher, dass diese Services aktiviert sind:cloud-init-local.service,cloud-init.service,cloud-config.serviceundcloud-final.service. -
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.