Vorbereiten eines CentOS-basierten virtuellen Computers für Azure
Achtung
Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, die sich dem EOL-Status (End-of-Life-Status, Dienstende) nähert. Sie sollten sich Ihre Nutzung dieser Distribution ansehen und entsprechend planen. Weitere Informationen finden Sie im End-of-Life-Leitfaden für CentOS.
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
Erfahren Sie, wie Sie eine virtuelle Azure-Festplatte (Virtual Hard Disk, VHD) erstellen und hochladen, die ein CentOS-basiertes Linux-Betriebssystem enthält. Weitere Informationen finden Sie unter:
Voraussetzungen
In diesem Artikel wird davon ausgegangen, dass Sie bereits ein CentOS-Linux-Betriebssystem (oder eine ähnliche Ableitung) auf einer VHD installiert haben. Zum Erstellen von VHD-Dateien stehen mehrere verschiedene Tools bereit. Ein Beispiel ist eine Virtualisierungslösung wie Hyper-V. Anweisungen hierzu finden Sie unter Installieren der Hyper-V-Rolle und Konfigurieren einer VM.
Installationshinweise zu CentOS
- Weitere Tipps zur Vorbereitung von Linux für Azure finden Sie unter Allgemeine Installationshinweise für Linux.
- Das VHDX-Format wird in Azure nicht unterstützt, dafür jedoch virtuelle Festplatten mit fester Größe. Sie können den Datenträger mit dem Hyper-V-Manager oder dem
convert-vhd
-Cmdlet in das VHD-Format konvertieren. Wählen Sie bei Verwendung von VirtualBox die Option Feste Größe und nicht die Standardoption, die beim Erstellen des Datenträgers dynamisch zugeordnet wird. - Das vfat-Kernelmodul muss im Kernel aktiviert sein.
- Beim Installieren des Linux-Systems wird empfohlen, anstelle von LVM (Logical Volume Manager, logische Volumeverwaltung) – bei vielen Installationen oftmals voreingestellt – die Standardpartitionen zu verwenden. Durch die Verwendung von Partitionen lässt sich vermeiden, dass ein LVM-Namenskonflikt mit geklonten VMs auftritt, insbesondere dann, wenn ein BS-Datenträger zu Fehlerbehebungszwecken mit einer anderen identischen VM verbunden wird. LVM oder RAID können ebenfalls auf Datenträgern verwendet werden.
- Zum Einbinden von UDF-Dateisystemen (User-Defined Functions, benutzerdefinierte Funktionen) ist Kernelunterstützung erforderlich. Beim ersten Start in Azure wird die Bereitstellungskonfiguration mithilfe von UDF-formatierten Medien, die an den Gast angefügt sind, an die Linux-VM übergeben. Der Azure Linux-Agent oder
cloud-init
muss das UDF-Dateisystem einbinden, um die Konfiguration zu lesen und die VM bereitzustellen. - Linux-Kernelversionen unter 2.6.37 unterstützen keinen NUMA in Hyper-V mit größeren VM-Größen. Dieses Problem betrifft in erster Linie ältere Distributionen, die den vorgeschalteten Centos 2.6.32-Kernel verwenden, und wurde in Centos 6.6 (kernel-2.6.32-504) behoben. Systeme, auf denen benutzerdefinierte Kernel ausgeführt werden, die älter als 2.6.37 sind, bzw. RHEL-basierte (Red Hat Enterprise Linux) Kernel, die älter als 2.6.32-504 sind, müssen in grub.conf in der Kernelbefehlszeile den Startparameter
numa=off
festlegen. Weitere Informationen finden Sie unter Red Hat KB 436883. - Konfigurieren Sie keine Auslagerungspartition auf dem Betriebssystemdatenträger.
- Alle VHDs in Azure benötigen eine virtuelle Größe, die auf 1 MB ausgerichtet ist. Stellen Sie beim Konvertieren von einem RAW-Datenträger in VHD sicher, dass die Größe des RAW-Datenträgers vor der Konvertierung ein Vielfaches von 1 MB beträgt. Weitere Informationen finden Sie in den Linux-Installationshinweisen.
Hinweis
Cloud-init >= 21.2 entfernt die UDF-Anforderung. Aber ohne das aktivierte UDF-Modul wird die CD-ROM während der Bereitstellung nicht eingebunden, was verhindert, dass die benutzerdefinierten Daten angewendet werden. Eine Problemumgehung hierfür besteht darin, benutzerdefinierte Daten mithilfe von Benutzerdaten anzuwenden. Im Gegensatz zu benutzerdefinierten Daten werden Benutzerdaten jedoch nicht verschlüsselt. Weitere Informationen finden Sie unter Benutzerdatenformate.
CentOS 6.x
Wichtig
CentOS 6 hat das Dienstende (End Of Life, EOL) erreicht und wird nicht mehr von der CentOS-Community unterstützt. Für diese Version werden keine weiteren Updates oder Sicherheitspatches veröffentlicht, sodass sie anfällig für potenzielle Sicherheitsrisiken wird. Es wird dringend empfohlen, ein Upgrade auf eine neuere Version von CentOS durchzuführen, um die Sicherheit und Stabilität Ihres Systems zu gewährleisten. Wenden Sie sich an Ihre IT-Abteilung oder Ihren Systemadministrator, um weitere Unterstützung zu erhalten.
Wählen Sie im Hyper-V-Manager den virtuellen Computer aus.
Wählen Sie Verbinden aus, um ein Konsolenfenster für den virtuellen Computer zu öffnen.
In CentOS 6 kann
NetworkManager
den Azure Linux-Agent beeinträchtigen. Deinstallieren Sie dieses Paket:sudo rpm -e --nodeps NetworkManager
Erstellen oder bearbeiten Sie die Datei
/etc/sysconfig/network
, und fügen Sie ihr den folgenden Text hinzu:NETWORKING=yes HOSTNAME=localhost.localdomain
Erstellen oder bearbeiten Sie die Datei
/etc/sysconfig/network-scripts/ifcfg-eth0
, und fügen Sie ihr den folgenden Text hinzu:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Ändern Sie die udev-Regeln, um eine Generierung statischer Regeln für die Ethernet-Schnittstellen zu vermeiden. Diese Regeln können beim Klonen einer VM unter Azure oder Hyper-V zu Problemen führen:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
Stellen Sie sicher, dass der Netzwerkdienst zur Startzeit gestartet wird:
sudo chkconfig network on
Wenn Sie die in Azure-Rechenzentren gehosteten OpenLogic-Datenspiegel verwenden möchten, ersetzen Sie die Datei
/etc/yum.repos.d/CentOS-Base.repo
durch die folgenden Repositorys. Durch diese Aktion wird auch das Repository „[openlogic]“ hinzugefügt, das zusätzliche Pakete wie den Azure Linux-Agent enthält:[openlogic] name=CentOS-$releasever - openlogic packages for $basearch baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/ enabled=1 gpgcheck=0 [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that might be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Hinweis
Im Rest dieses Artikels wird davon ausgegangen, dass Sie mindestens das Repository
[openlogic]
verwenden, das zum Installieren des Azure Linux-Agents verwendet wird.Fügen Sie folgende Zeile zu
/etc/yum.conf
hinzu:http_caching=packages
Löschen Sie die aktuellen yum-Metadaten, und aktualisieren Sie das System mit den neuesten Paketen:
sudo yum clean all
Sofern Sie kein Image für eine ältere CentOS-Version erstellen, wird empfohlen, alle Pakete auf die neueste Version zu aktualisieren:
sudo yum -y update
Nach dem Ausführen dieses Befehls ist unter Umständen ein Neustart erforderlich.
Optional: Installieren Sie die Treiber für Linux Integration Services (LIS).
Wichtig
Dieser Schritt ist für CentOS 6.3 und früher erforderlich, für spätere Versionen ist er optional.
sudo rpm -e hypervkvpd ## (might return an error if not installed, that's OK) sudo yum install microsoft-hyper-v
Alternativ können Sie auch die Anweisungen für die manuelle Installation auf der Downloadseite von LIS ausführen, um das RPM auf Ihrem virtuellen Computer zu installieren.
Installieren Sie den Azure Linux-Agent und die Abhängigkeiten. Starten und aktivieren Sie den
waagent
-Dienst:sudo yum install python-pyasn1 WALinuxAgent sudo service waagent start sudo chkconfig waagent on
Das WALinuxAgent-Paket entfernt die
NetworkManager
- undNetworkManager-gnome
-Pakete, wenn sie noch nicht wie in Schritt 3 beschrieben entfernt wurden.Ändern Sie die Bootzeile des Kernels in Ihrer GRUB-Konfiguration, um weitere Kernel-Parameter für Azure einzubinden. Öffnen Sie für diesen Schritt
/boot/grub/menu.lst
in einem Text-Editor, und stellen Sie sicher, dass der Standardkernel die folgenden Parameter enthält:console=ttyS0 earlyprintk=ttyS0 rootdelay=300
Durch diese Änderung wird zudem sichergestellt, dass alle Konsolennachrichten zum ersten seriellen Port gesendet werden. Dies kann den Azure-Support beim Debuggen von Fehlern unterstützen.
Es wird auch empfohlen, die folgenden Parameter zu entfernen:
rhgb quiet crashkernel=auto
Weder grafische Startvorgänge noch Startvorgänge im stillen Modus sind in einer Cloudumgebung nützlich, in der alle Protokolle an den seriellen Port gesendet werden sollen. Sie können die Option
crashkernel
bei Bedarf konfiguriert lassen. Dieser Parameter reduziert den verfügbaren Arbeitsspeicher der VM jedoch um mindestens 128 MB. Dies kann bei kleineren VMs Probleme verursachen.Wichtig
CentOS 6.5 und früher muss auch den Kernelparameter
numa=off
festlegen. Weitere Informationen finden Sie unter Red Hat KB 436883.Stellen Sie sicher, dass der Secure Shell-Server installiert und so konfiguriert ist, dass er beim Booten gestartet wird. Dies ist normalerweise die Standardeinstellung.
Erstellen Sie keinen Auslagerungsbereich auf dem Betriebssystemdatenträger.
Der Azure Linux-Agent kann den Auslagerungsbereich automatisch mit dem lokalen Ressourcendatenträger konfigurieren, der nach der Bereitstellung der VM in Azure mit der VM verknüpft wird. Der lokale Ressourcendatenträger ist ein temporärer Datenträger und kann geleert werden, wenn die Bereitstellung des virtuellen Computers aufgehoben wird. Passen Sie nach dem Installieren des Azure Linux-Agents (siehe vorheriger Schritt) die folgenden Parameter in
/etc/waagent.conf
entsprechend an:ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Machen Sie die Bereitstellung der VM rückgängig, und bereiten Sie sie für die Bereitstellung in Azure vor:
sudo waagent -force -deprovision+user sudo export HISTSIZE=0
Hinweis
Wenn Sie eine bestimmte VM migrieren und kein generalisiertes Image erstellen möchten, überspringen Sie den Schritt zum Aufheben der Bereitstellung.
Wählen Sie im Hyper-V-Manager Aktion>Herunterfahren aus. Ihre virtuelle Linux-Festplatte kann nun in Azure hochgeladen werden.
CentOS 7.0+
Führen Sie die Schritte in den nächsten Abschnitten aus, wenn Sie CentOS 7.0+ verwenden.
Änderungen in CentOS 7 (und ähnlichen Ableitungen)
Die Vorbereitung einer CentOS 7-VM für Azure ähnelt der Vorgehensweise für CentOS 6. Es gibt einige wichtige Unterschiede:
Das
NetworkManager
-Paket führt nicht mehr zu Konflikten mit dem Azure Linux Agent. Dieses Paket ist standardmäßig installiert, und Sie sollten es nicht entfernen.GRUB2 wird nun als standardmäßiger Bootloader verwendet. Daher hat sich die Prozedur für das Bearbeiten der Kernelparameter geändert. (Siehe Abschnitt „Konfigurationsschritte“)
XFS ist nun das Standarddateisystem. Das EXT4-Dateisystem kann bei Bedarf weiterhin verwendet werden.
Da CentOS 8 Stream und neuere Versionen
network.service
nicht mehr standardmäßig enthalten, muss eine manuelle Installation erfolgen:sudo yum install network-scripts sudo systemctl enable network.service
Konfigurationsschritte
Wählen Sie im Hyper-V-Manager den virtuellen Computer aus.
Wählen Sie Verbinden aus, um ein Konsolenfenster für den virtuellen Computer zu öffnen.
Erstellen oder bearbeiten Sie die Datei
/etc/sysconfig/network
, und fügen Sie ihr den folgenden Text hinzu:NETWORKING=yes HOSTNAME=localhost.localdomain
Erstellen oder bearbeiten Sie die Datei
/etc/sysconfig/network-scripts/ifcfg-eth0
, und fügen Sie ihr den folgenden Text hinzu:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no NM_CONTROLLED=no
Ändern Sie die udev-Regeln, um eine Generierung statischer Regeln für die Ethernet-Schnittstellen zu vermeiden. Diese Regeln können beim Klonen einer VM unter Azure oder Hyper-V zu Problemen führen:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
Wenn Sie die in Azure-Rechenzentren gehosteten
OpenLogic
-Datenspiegel verwenden möchten, ersetzen Sie die Datei /etc/yum.repos.d/CentOS-Base.repo durch die folgenden Repositorys. Dadurch wird auch das Repository „[openlogic]“ hinzugefügt, das Pakete für den Azure Linux-Agent enthält:[openlogic] name=CentOS-$releasever - openlogic packages for $basearch baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/ enabled=1 gpgcheck=0 [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that might be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Hinweis
Im Rest dieses Artikels wird davon ausgegangen, dass Sie mindestens das Repository
[openlogic]
verwenden, das zum Installieren des Azure Linux-Agents verwendet wird.Löschen Sie die aktuellen yum-Metadaten, und installieren Sie Updates:
sudo yum clean all
Sofern Sie kein Image für eine ältere CentOS-Version erstellen, wird empfohlen, alle Pakete auf die neueste Version zu aktualisieren:
sudo yum -y update
Nach dem Ausführen dieses Befehls ist unter Umständen ein Neustart erforderlich.
Ändern Sie die Bootzeile des Kernels in Ihrer GRUB-Konfiguration, um weitere Kernel-Parameter für Azure einzubinden. Öffnen Sie für diesen Schritt
/etc/default/grub
in einem Text-Editor, und bearbeiten Sie den ParameterGRUB_CMDLINE_LINUX
. Zum Beispiel:GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Durch diese Änderung wird zudem sichergestellt, dass alle Konsolennachrichten zum ersten seriellen Port gesendet werden. Dies kann den Azure-Support beim Debuggen von Fehlern unterstützen. Außerdem werden die neuen CentOS 7-Benennungskonventionen für Netzwerkadapter deaktiviert. Es wird auch empfohlen, die folgenden Parameter zu entfernen:
rhgb quiet crashkernel=auto
Weder grafische Startvorgänge noch Startvorgänge im stillen Modus sind in einer Cloudumgebung nützlich, in der alle Protokolle an den seriellen Port gesendet werden sollen. Sie können die Option
crashkernel
bei Bedarf konfiguriert lassen. Dieser Parameter reduziert den verfügbaren Arbeitsspeicher der VM jedoch um mindestens 128 MB. Dies kann bei kleineren VMs Probleme verursachen.Nachdem Sie die Bearbeitung von
/etc/default/grub
abgeschlossen haben, erstellen Sie die GRUB-Konfiguration neu:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Hinweis
Beim Hochladen einer UEFI-fähigen VM lautet der Befehl zum Aktualisieren von GRUB
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
. Außerdem muss das vfat-Kernelmodul im Kernel aktiviert sein. Andernfalls tritt bei der Bereitstellung ein Fehler auf.Stellen Sie sicher, dass das udf-Modul aktiviert ist. Durch das Entfernen oder Deaktivieren wird ein Bereitstellungs- oder Startfehler verursacht. (_Cloud-init >= 21.2 setzt die UDF-Anforderung außer Kraft. Weitere Informationen finden Sie oben im Dokument.)
Stellen Sie beim Erstellen eines Images über VMware, VirtualBox oder KVM sicher, dass die Hyper-V-Treiber in „initramfs“ enthalten sind:
Bearbeiten Sie
/etc/dracut.conf
, und fügen Sie Inhalt hinzu:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Erstellen Sie initramfs neu:
sudo dracut -f -v
Installieren Sie den Azure Linux-Agent und die Abhängigkeiten für Azure-VM-Erweiterungen:
sudo yum install python-pyasn1 WALinuxAgent sudo systemctl enable waagent
Installieren Sie
cloud-init
für die Verarbeitung der Bereitstellung:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
- Konfigurieren von
waagent
fürcloud-init
:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF if [[ -f /mnt/swapfile ]]; then echo Removing swapfile - RHEL uses a swapfile by default swapoff /mnt/swapfile rm /mnt/swapfile -f fi echo "Add console log file" cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
- Konfigurieren von
Auslagerungskonfiguration:
Erstellen Sie keinen Auslagerungsbereich auf dem Betriebssystemdatenträger.
Zuvor wurde der Azure Linux-Agent verwendet, um Auslagerungsbereiche automatisch mithilfe des lokalen Ressourcendatenträgers zu konfigurieren, der an die VM angefügt ist, nachdem die VM in Azure bereitgestellt wurde. Dieser Schritt wird nun jedoch von
cloud-init
behandelt. Sie dürfen den Linux-Agent nicht zum Formatieren des Ressourcendatenträgers verwenden, um die Auslagerungsdatei zu erstellen. Ändern Sie die folgenden Parameter in/etc/waagent.conf
entsprechend:sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
Wenn Sie die Auslagerungsdatei einbinden, formatieren und erstellen möchten, können Sie eine der folgenden Aktionen ausführen:
Übergeben Sie diesen Befehl jedes Mal als
cloud-init
-Konfiguration, wenn Sie eine VM erstellen.Verwenden Sie eine in das Image eingebundene
cloud-init
-Direktive, die diesen Schritt jedes Mal ausführt, wenn die VM erstellt wird.sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Führen Sie die folgenden Befehle aus, um die Bereitstellung der VM aufzuheben und sie für die Bereitstellung in Azure vorzubereiten.
Hinweis
Wenn Sie eine bestimmte VM migrieren und kein generalisiertes Image erstellen möchten, überspringen Sie den Schritt zum Aufheben der Bereitstellung.
sudo rm -f /var/log/waagent.log sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Wählen Sie im Hyper-V-Manager Aktion>Herunterfahren aus. Ihre Linux-VHD kann nun in Azure hochgeladen werden.
Zugehöriger Inhalt
Sie können jetzt Ihre CentOS Linux-VHD verwenden, um neue VMs in Azure zu erstellen. Wenn Sie zum ersten Mal die VHD-Datei in Azure hochladen, lesen Sie den Artikel Erstellen eines virtuellen Linux-Computers aus einem benutzerdefinierten Datenträger mithilfe der Azure CLI 2.0.