Vorbereiten eines virtuellen SLES- oder openSUSE Leap-Computers für Azure
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen Gilt für: ✔️ Einheitliche Skalierungsgruppen
In diesem Artikel wird davon ausgegangen, dass Sie bereits ein SUSE- oder openSUSE Leap-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 zu SLES/openSUSE Leap
- Beachten Sie auch den Artikelabschnitt Allgemeine Linux-Systemanforderungen, in dem weitere Tipps zur Vorbereitung von Linux für Azure enthalten sind.
- 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.
- Beim Installieren des Linux-Systems wird empfohlen, anstelle von LVM (bei vielen Installationen oftmals voreingestellt) die Standardpartitionen zu verwenden. Dadurch lässt sich vermeiden, dass ein LVM-Namenskonflikt mit geklonten virtuellen Computern auftritt, besonders dann, wenn ein BS-Datenträger zu Fehlerbehebungszwecken mit einem anderen virtuellen Computer verbunden wird. LVM oder RAID können wahlweise auf Datenträgern verwendet werden.
- Konfigurieren Sie keine SWAP-Partition auf einem Betriebssystemdatenträger. Der Linux-Agent kann konfiguriert werden, eine Auslagerungsdatei auf dem temporären Ressourcendatenträger zu erstellen. Weitere Informationen dazu finden Sie in den folgenden Schritten.
- Alle VHDs in Azure benötigen eine virtuelle Größe, die auf 1 MB ausgerichtet ist. Beim Konvertieren von einem unformatierten Datenträger in VHD müssen Sie sicherstellen, dass die Größe des unformatierten Datenträgers ein Vielfaches von 1 MB vor der Konvertierung beträgt. Weitere Informationen finden Sie in den Linux-Installationshinweisen.
Verwenden von SUSE Studio
SUSE Studio können Sie Ihre SLES- und openSUSE Leap-Images für Azure und Hyper-V auf einfache Weise erstellen und verwalten. Diese Vorgehensweise wird zum Anpassen Ihrer eigenen SLES- und openSUSE Leap-Images empfohlen.
Als Alternative zum Erstellen einer eigenen VHD veröffentlicht SUSE auf VM Depotauch BYOS-Images (Bring Your Own Subscription) für SLES.
Vorbereiten von SUSE Linux Enterprise Server für Azure
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.
Registrieren Sie Ihr SUSE Linux Enterprise-System, um das Herunterladen von Updates und das Installieren von Paketen zu ermöglichen.
Aktualisieren Sie das System mit den neuesten Patches:
# sudo zypper updateInstallieren Sie den Azure Linux-Agent und cloud-init:
# SUSEConnect -p sle-module-public-cloud/15.2/x86_64 (SLES 15 SP2) # sudo zypper refresh # sudo zypper install python-azure-agent # sudo zypper install cloud-initAktivieren des Startens von waagent und cloud-init beim Systemstart
# sudo chkconfig waagent on # systemctl enable cloud-init-local.service # systemctl enable cloud-init.service # systemctl enable cloud-config.service # systemctl enable cloud-final.service # systemctl daemon-reload # cloud-init cleanAktualisieren Sie die Konfiguration von waagent und cloud-init:
# sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf # sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf # sudo sh -c 'printf "datasource:\n Azure:" > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg' # sudo sh -c 'printf "reporting:\n logging:\n type: log\n telemetry:\n type: hyperv" > /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg'Bearbeiten Sie die Datei „/etc/default/grub“, um sicherzustellen, dass Konsolenprotokolle an den seriellen Port gesendet werden, und aktualisieren Sie anschließend die Hauptkonfigurationsdatei mit „grub2-mkconfig -o /boot/grub2/grub.cfg“:
console=ttyS0 earlyprintk=ttyS0Dadurch wird sichergestellt, dass alle Konsolennachrichten zum ersten seriellen Port gesendet werden. Dieser kann Azure bei der Behebung von Fehlern unterstützen.
Stellen Sie sicher, dass von der Datei „/etc/fstab“ per UUID (by-uuid) auf den Datenträger verwiesen wird.
Ä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.rulesEs wird empfohlen, die Datei "/etc/sysconfig/network/dhcp" zu bearbeiten und den Parameter
DHCLIENT_SET_HOSTNAMEwie folgt zu ändern:DHCLIENT_SET_HOSTNAME="no"Kommentieren Sie in „/etc/sudoers“ die folgenden Zeilen aus, sofern sie vorhanden sind, oder entfernen Sie sie:
Defaults targetpw # ask for the password of the target user i.e. root ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!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.
Auslagerungskonfiguration
Erstellen Sie auf dem Betriebssystem-Datenträ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 ist. Dies wird jetzt jedoch von cloud-init behandelt. Sie dürfen nicht den Linux-Agent zum Erstellen des Ressourcendatenträgers verwenden. Erstellen Sie die Auslagerungsdatei, und ändern Sie die folgenden Parameter in
/etc/waagent.confentsprechend:# sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf # sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confBeim Einbinden, Formatieren und Erstellen einer Auslagerung können Sie eine der folgenden Aktionen ausführen:
Übergeben Sie dies bei jeder VM-Erstellung als cloud-init-Konfiguration.
Verwenden Sie eine im Image integrierte cloud-init-Anweisung, die dies bei jeder VM-Erstellung 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"] - ["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 rm -rf /var/lib/waagent/ # sudo rm -f /var/log/waagent.log # waagent -force -deprovision+user # rm -f ~/.bash_history # export HISTSIZE=0 # logoutKlicken Sie im Hyper-V-Manager auf Aktion -> Herunterfahren. Ihre Linux-VHD kann nun in Azure hochgeladen werden.
Vorbereiten von openSUSE 15.2 oder höher
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.
Führen Sie in der Shell den Befehl "
zypper lr" aus. Wenn dieser Befehl den folgenden ähnelnde Ausgaben zurückgibt, sind Repositorys erwartungsgemäß konfiguriert, und es sind keine Anpassungen erforderlich (Versionsnummern können abweichen):# Alias Name Aktiviert Aktualisieren 1 Cloud:Tools_15.2 Cloud:Tools_15.2 Ja Ja 2 openSUSE_15.2_OSS openSUSE_15.2_OSS Ja Ja 3 openSUSE_15.2_Updates openSUSE_15.2_Updates Ja Ja Wenn der Befehl „No repositories defined...“ zurückgibt, verwenden Sie die folgenden Befehle zum Hinzufügen dieser Repositorys:
# sudo zypper ar -f http://download.opensuse.org/repositories/Cloud:Tools/openSUSE_15.2 Cloud:Tools_15.2 # sudo zypper ar -f https://download.opensuse.org/distribution/15.2/repo/oss openSUSE_15.2_OSS # sudo zypper ar -f http://download.opensuse.org/update/15.2 openSUSE_15.2_UpdatesSie können dann überprüfen, ob die Repositorys hinzugefügt wurden, indem Sie den Befehl "
zypper lr" erneut ausführen. Falls eines der relevanten Update-Repositorys nicht aktiviert ist, können Sie es mit dem folgenden Befehl aktivieren:# sudo zypper mr -e [NUMBER OF REPOSITORY]Aktualisieren Sie den Kernel auf die neueste verfügbare Version:
# sudo zypper up kernel-defaultOder aktualisieren Sie das System mit allen neuen Patches:
# sudo zypper updateInstallieren des Azure Linux Agent:
# sudo zypper install WALinuxAgentModifizieren Sie die Boot-Zeile des Kernels in Ihrer Grub-Konfiguration, um zusätzliche Kernel-Parameter für Azure einzubinden. Öffnen Sie dafür "/boot/grub/menu.lst" in einem Text-Editor. Stellen Sie sicher, dass der Standardkernel die folgenden Parameter enthält:
console=ttyS0 earlyprintk=ttyS0Dadurch wird sichergestellt, dass alle Konsolennachrichten zum ersten seriellen Port gesendet werden. Dieser kann Azure bei der Behebung von Fehlern unterstützen. Entfernen Sie außerdem die folgenden Parameter aus der Kernel-Boot-Zeile, sofern diese vorhanden sind:
libata.atapi_enabled=0 reserve=0x1f0,0x8Es wird empfohlen, die Datei "/etc/sysconfig/network/dhcp" zu bearbeiten und den Parameter
DHCLIENT_SET_HOSTNAMEwie folgt zu ändern:DHCLIENT_SET_HOSTNAME="no"Wichtig: Kommentieren Sie in „/etc/sudoers“ die folgenden Zeilen aus, sofern sie vorhanden sind, oder entfernen Sie sie:
Defaults targetpw # ask for the password of the target user i.e. root ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!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.
Richten Sie keinen SWAP-Raum auf dem BS-Datenträger ein.
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. Beachten Sie, dass der lokale Ressourcendatenträger ein temporärer Datenträger ist und geleert werden kann, 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/resource 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 # export HISTSIZE=0 # logoutStellen Sie sicher, dass der Azure Linux Agent beim Start ausgeführt wird:
# sudo systemctl enable waagent.serviceKlicken Sie im Hyper-V-Manager auf Aktion -> Herunterfahren. Ihre Linux-VHD kann nun in Azure hochgeladen werden.
Nächste Schritte
Sie können jetzt mit Ihrer SUSE-Linux-VHD-Datei neue virtuelle Azure-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.