Vorbereiten eines virtuellen Oracle Linux-Computers für Azure
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel wird davon ausgegangen, dass Sie bereits ein Oracle Linux-Betriebssystem auf einer virtuellen Festplatte installiert haben. Sie können VHD-Dateien mit unterschiedlichen Tools erstellen, beispielsweise mit einer Virtualisierungslösung wie Hyper-V. Anweisungen hierzu finden Sie unter Installieren der Hyper-V-Rolle und Konfigurieren eines virtuellen Computers.
Installationshinweise für Oracle Linux
- Beachten Sie auch den Artikelabschnitt Allgemeine Linux-Systemanforderungen mit weiteren Tipps zur Vorbereitung von Linux für Azure.
- Hyper-V und Azure unterstützen Oracle Linux entweder mit dem Unbreakable Enterprise Kernel (UEK) oder dem Red Hat Compatible Kernel.
- Der UEK2 von Oracle wird in Hyper-V und Azure nicht unterstützt, da er nicht die erforderlichen Treiber enthält.
- Das VHDX-Format wird in Azure noch 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.
- Kernel-Unterstützung für bereitgestellte UDF-Dateisysteme ist erforderlich. Beim ersten Start in Azure wird die Bereitstellungskonfiguration über UDF-formatierte Medien, die an den Gast angefügt sind, an die Linux-VM übergeben. Der Azure-Linux-Agent muss das UDF-Dateisystem bereitstellen können, um dessen Konfiguration zu lesen und die VM bereitzustellen.
- Beim Installieren des Linux-Systems wird empfohlen, anstelle von LVM (bei vielen Installationen oftmals voreingestellt) die Standardpartitionen zu verwenden. Diese Standardpartitionen vermeiden, dass ein LVM-Namenskonflikt mit geklonten VMs auftritt, insbesondere dann, wenn ein BS-Datenträger zu Fehlerbehebungszwecken mit einer anderen VM verbunden wird. LVM oder RAID können wahlweise auf Datenträgern verwendet werden.
- Linux-Kernelversionen vor Version 2.6.37 unterstützen keinen NUMA (Non-Uniform Memory Access, nicht einheitlicher Speicherzugriff) auf Hyper-V mit größeren VM-Größen. Dieses Problem betrifft in erster Linie ältere Distributionen, die den Red Hat 2.6.32-Upstream-Kernel verwenden, und wurde in Oracle Linux 6.6 und höher behoben.
- 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.
- Stellen Sie sicher, dass das
Addons
-Repository aktiviert ist. Bearbeiten Sie die Datei/etc/yum.repos.d/public-yum-ol6.repo
(Oracle Linux 6) oder/etc/yum.repos.d/public-yum-ol7.repo
(Oracle Linux 7), und ändern Sie in dieser Datei unter [ol6_addons] oder [ol7_addons] die Zeileenabled=0
inenabled=1
.
Oracle Linux 6.x
Wichtig
Beachten Sie, dass Oracle Linux 6.x bereits EOL ist. Oracle Linux-Version 6.10 weist verfügbaren ELS-Support auf, der im Juli 2024 endet.
Sie müssen die spezifischen Konfigurationsschritte im Betriebssystem für den virtuellen Computer abschließen, welcher unter Azure ausgeführt werden soll.
Wählen Sie den virtuellen Computer im mittleren Fensterbereich des Hyper-V-Managers.
Klicken Sie auf Verbinden , um das Fenster für den virtuellen Computer zu öffnen.
Deinstallieren Sie den NetworkManager, indem Sie den folgenden Befehl ausführen:
sudo rpm -e --nodeps NetworkManager
Hinweis
Wenn das Paket noch nicht installiert ist, schlägt dieser Befehl mit einer Fehlermeldung fehl. Diese Meldungen werden erwartet.
Erstellen Sie im Verzeichnis
/etc/sysconfig/
eine Datei mit dem Namen network und folgendem Text:NETWORKING=yes HOSTNAME=localhost.localdomain
Erstellen Sie im Verzeichnis
/etc/sysconfig/network-scripts/
eine Datei mit dem Namenifcfg-eth0 und folgendem Text: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-Schnittstelle(n) zu vermeiden. Diese Regeln können beim Klonen eines virtuellen Computers unter Microsoft 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 zum Bootzeitpunkt gestartet wird, indem Sie den folgenden Befehl ausführen:
sudo chkconfig network on
Installieren Sie python-pyasn1, indem Sie den folgenden Befehl ausführen:
sudo yum install python-pyasn1
Ändern Sie die Bootzeile des Kernels in Ihrer Grub-Konfiguration, um weitere Kernel-Parameter für Azure einzubinden. Öffnen Sie dafür „/boot/grub/menu.lst“ in einem Text-Editor. Stellen Sie sicher, dass der Kernel die folgenden Parameter enthält:
console=ttyS0 earlyprintk=ttyS0
Durch diese Einstellung wird sichergestellt, dass alle Konsolennachrichten an den ersten seriellen Port gesendet werden. Dies kann den Azure-Support beim Debuggen von Fehlern unterstützen.
Neben den oben erwähnten Punkten wird 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.
Die Option
crashkernel
kann bei Bedarf konfiguriert bleiben. Beachten Sie jedoch, dass dieser Parameter die Menge an verfügbarem Arbeitsspeicher in der VM um 128 MB oder mehr reduziert, was bei kleineren VM-Größen problematisch sein kann.Stellen Sie sicher, dass der SSH-Server installiert und konfiguriert ist, damit er beim Booten hochfährt. Dies ist für gewöhnlich die Standardeinstellung.
Installieren Sie den Azure Linux-Agent, indem Sie den folgenden Befehl ausführen: Die neueste Version ist 2.0.15.
sudo yum install WALinuxAgent
Durch eine Installation des WALinuxAgent-Pakets werden die NetworkManager- und NetworkManager-gnome-Pakete entfernt, sofern sie nicht bereits (wie in Schritt 2 beschrieben) entfernt wurden.
Erstellen Sie keinen Auslagerungsbereich auf dem Betriebssystemdatenträger.
Der Azure Linux Agent kann SWAP-Raum automatisch mit dem lokalen Ressourcendatenträger konfigurieren, der nach der Bereitstellung in Azure mit dem virtuellen Computer verknüpft ist. Der lokale Ressourcendatenträger ist ein temporärer Datenträger und kann geleert werden, wenn die Bereitstellung des virtuellen Computers aufgehoben wird. Modifizieren Sie nach dem Installieren des Azure Linux Agent (siehe vorheriger Schritt) die folgenden Parameter in /etc/waagent.conf entsprechend:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Führen Sie die folgenden Befehle aus, um den virtuellen Computer zurückzusetzen und ihn für die Bereitstellung in Azure vorzubereiten:
sudo waagent -force -deprovision sudo export HISTSIZE=0 sudo logout
Klicken Sie im Hyper-V-Manager auf Aktion -> Herunterfahren. Ihre Linux-VHD kann nun in Azure hochgeladen werden.
Oracle Linux 7.0 und höher
Änderungen in Oracle Linux 7
Die Vorbereitung eines virtuellen Oracle Linux 7-Computers für Azure entspricht in etwa der Vorbereitung für Oracle Linux 6. Es gibt jedoch einige wichtige Unterschiede, die beachtet werden sollten:
- Azure unterstützt Oracle Linux entweder mit dem Unbreakable Enterprise Kernel Release (UEK) oder dem Red Hat Compatible Kernel. Oracle Linux mit UEK wird empfohlen.
- Das NetworkManager-Paket führt nicht mehr zu Konflikten mit dem Azure Linux Agent. Dieses Paket wird 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 unten).
- XFS ist nun das Standarddateisystem. Das EXT4-Dateisystem kann bei Bedarf weiterhin verwendet werden.
Konfigurationsschritte
Wählen Sie im Hyper-V-Manager den virtuellen Computer aus.
Klicken Sie auf Verbinden , um ein Konsolenfenster für den virtuellen Computer zu öffnen.
Erstellen Sie im Verzeichnis
/etc/sysconfig/
eine Datei mit dem Namen network und folgendem Text:NETWORKING=yes HOSTNAME=localhost.localdomain
Erstellen Sie im Verzeichnis
/etc/sysconfig/network-scripts/
eine Datei mit dem Namenifcfg-eth0 und folgendem Text: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-Schnittstelle(n) zu vermeiden. Diese Regeln können beim Klonen eines virtuellen Computers unter Microsoft Azure oder Hyper-V zu Problemen führen:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
Stellen Sie sicher, dass der Netzwerkdienst zum Bootzeitpunkt gestartet wird, indem Sie den folgenden Befehl ausführen:
sudo chkconfig network on
Installieren Sie das Paket python-pyasn1, indem Sie den folgenden Befehl ausführen:
sudo yum install python3-pyasn1
Führen Sie den folgenden Befehl aus, um die aktuellen yum-Metadaten zu löschen und um Updates zu installieren.
sudo yum clean all sudo yum -y update
Ändern Sie die Bootzeile des Kernels in Ihrer Grub-Konfiguration, um weitere Kernel-Parameter für Azure einzubinden. Öffnen Sie dazu „/etc/default/grub“ in einem Text-Editor, und bearbeiten Sie den Parameter
GRUB_CMDLINE_LINUX
. Beispiel:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Dadurch wird zudem sichergestellt, dass alle Konsolennachrichten zum ersten seriellen Port gesendet werden. Dieser kann Azure bei der Behebung von Fehlern unterstützen. Außerdem werden die Benennungskonventionen für NICs in Oracle Linux 7 mit dem Unbreakable Enterprise Kernel deaktiviert. Neben den oben erwähnten Punkten wird es 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.
Die Option
crashkernel
kann bei Bedarf konfiguriert bleiben. Beachten Sie jedoch, dass dieser Parameter die Menge an verfügbarem Arbeitsspeicher in der VM um 128 MB oder mehr reduziert, was bei kleineren VM-Größen problematisch sein kann.Sobald Sie die oben beschriebene Bearbeitung von „/etc/default/grub“ abgeschlossen haben, führen Sie den folgenden Befehl zum erneuten Erstellen der Grub-Konfiguration aus:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Stellen Sie sicher, dass der SSH-Server installiert und konfiguriert ist, damit er beim Booten hochfährt. Dies ist für gewöhnlich die Standardeinstellung.
Installieren Sie den Azure Linux-Agent und die Abhängigkeiten:
sudo yum install WALinuxAgent sudo systemctl enable waagent
Installieren von cloud-init zum Behandeln der Bereitstellung
sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
Konfigurieren von waagent für cloud-init
sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=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
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/resource/swapfile ]]; then echo Removing swapfile - Oracle Linux 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
Auslagerungskonfiguration. Erstellen Sie auf dem Betriebssystemdatenträger keinen Auslagerungsbereich.
Früher wurde der Azure Linux-Agent zum automatischen Konfigurieren des Auslagerungsbereichs mit dem lokalen Ressourcendatenträger verwendet, der nach der Bereitstellung der VM in Azure an die VM angefügt wird. Dies wird jetzt jedoch von cloud-init verarbeitet. Der Linux-Agent darf nicht zum Formatieren des Ressourcendatenträgers und Erstellen der Auslagerungsdatei verwendet werden. Ä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
Beim Einbinden, Formatieren und Erstellen einer Auslagerung können Sie eine der folgenden Aktionen ausführen:
- Übergeben Sie dies bei jedem Erstellen einer VM als cloud-init-Konfiguration.
- Verwenden Sie eine im Image integrierte cloud-init-Anweisung, die dies bei jeder Erstellung der VM durchführt:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf 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/resource"] - ["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 den virtuellen Computer zurückzusetzen und ihn für die Bereitstellung in Azure vorzubereiten:
sudo cloud-init clean sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision sudo rm -f ~/.bash_history 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.
Klicken Sie im Hyper-V-Manager auf Aktion -> Herunterfahren. Ihre Linux-VHD kann nun in Azure hochgeladen werden.
Nächste Schritte
Nun können Sie mit Ihrer Oracle Linux-VHD-Datei neue virtuelle Computer in Azure 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.