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
-
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
undVIRTIO_NET
. Wenn diese Zeilen nicht vorhanden sind, ist der Virtio-Treiber nicht im Kernel integriert. -
Wenn die Zeilen
VIRTIO_BLK
undVIRTIO_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ängigkeitenvirtio.ko
,virtio_pci
undvirtio_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.
-
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-init
aus. - Führen Sie für CentOS oder Red Hatden Befehl
yum install cloud-init
aus.
- Führen Sie für Ubuntu oder Debianden Befehl
-
Wenn die Eigenschaft
datasources_list
in /etc/cloud/cloud.cfgvorhanden ist, stellen Sie sicher, dass sie nurNoCloud
enthält, oder entfernen Sie die Eigenschaftdatasources_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.
-
Überprüfen Sie in der Datei /etc/cloud/cloud.cfg, ob der Abschnitt
cloud_final_modules
das Modulscripts-vendor
enthä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-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
, undrpm
. Stellen Sie außerdem sicher, dass diese Services aktiviert sind:cloud-init-local.service
,cloud-init.service
,cloud-config.service
undcloud-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. 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.