Förbereda en virtuell SLES- eller openSUSE Leap-dator för Azure
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️ gäller för: ✔️ Enhetliga skalningsuppsättningar
I vissa fall kanske du vill använda anpassad SUSE Linux Enterprise Server (SLES) eller openSUSE Leap Linux virtual machines (VM) i Din Azure-miljö och kunna skapa dessa typer av virtuella datorer via automatisering. Den här artikeln visar hur du skapar och laddar upp en anpassad virtuell Azure-hårddisk (VHD) som innehåller ett SUSE Linux-operativsystem.
Förutsättningar
Den här artikeln förutsätter att du redan har installerat ett SLES- eller openSUSE Leap Linux-operativsystem på en virtuell hårddisk. Det finns flera verktyg för att skapa VHD-filer. Du kan till exempel använda en virtualiseringslösning som Hyper-V. Anvisningar finns i Installera Hyper-V och skapa en virtuell dator.
Installationsanteckningar för SLES/openSUSE Leap
- Fler tips om hur du förbereder Linux-avbildningar för Azure finns i Allmänna linux-installationsanteckningar.
- Azure stöder inte Windows-hårddiskbildfiler (.vhdx). Endast VHD-filer (.vhd) stöds utanför virtuella datorer. Du kan konvertera disken till VHD-format med hjälp av Hyper-V Manager eller cmdleten
Convert-VHD
. - Azure stöder virtuella datorer med Gen1 (BIOS-start) och Gen2 (UEFI-start).
- Kernelmodulen för virtuell filallokeringstabell (VFAT) måste vara aktiverad i kerneln.
- Konfigurera inte en växlingspartition på OS-disken. Du kan konfigurera Linux-agenten för att skapa en växlingsfil på den tillfälliga resursdisken. Steg senare i den här artikeln ger mer information om hur du konfigurerar växlingsutrymme.
- Alla virtuella hårddiskar i Azure måste ha en virtuell storlek som är justerad till 1 MB. När du konverterar från en rådisk till en virtuell hårddisk kontrollerar du att den råa diskstorleken är en multipel på 1 MB före konverteringen. Mer information finns i Allmänna linux-installationsanteckningar.
Kommentar
Cloud-init version 21.2 eller senare tar bort kravet på användardefinierad funktion (UDF). Men utan att modulen udf
är aktiverad monteras inte CD-ROM under etableringen, vilket förhindrar att anpassade data tillämpas. En lösning är att tillämpa användardata. Men till skillnad från anpassade data krypteras inte användardata. Mer information finns i Användardataformat i dokumentationen för cloud-init.
Använda SUSE Studio
SUSE Studio kan enkelt skapa och hantera dina SLES- och openSUSE Leap-avbildningar för Azure och Hyper-V. SUSE Studio är den rekommenderade metoden för att anpassa dina egna SLES- och openSUSE Leap-bilder.
Som ett alternativ till att skapa en egen virtuell hårddisk publicerar SUSE även BYOS-avbildningar (bring your own subscription) för SLES på VM Depot.
Förbereda SLES för Azure
Konfigurera Azure- och Hyper-V-modulerna om det behövs.
Om programhypervisor-programmet inte är Hyper-V måste andra moduler läggas till i den första RAM-disken (initramfs) för att kunna starta i Azure.
Redigera filen /etc/dracut.conf och lägg till följande rad i filen:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
dracut
Kör kommandot för att återskapa initramfs-filen:sudo dracut --verbose --force
Konfigurera seriekonsolen.
Om du vill arbeta med seriekonsolen måste du konfigurera flera variabler i filen /etc/defaults/grub och återskapa GRUB på servern:
# Add console=ttyS0 and earlyprintk=ttS0 to the variable. # Remove "splash=silent" and "quiet" options. GRUB_CMDLINE_LINUX_DEFAULT="audit=1 no-scroll fbcon=scrollback:0 mitigations=auto security=apparmor crashkernel=228M,high crashkernel=72M,low console=ttyS0 earlyprintk=ttyS0" # Add "console serial" to GRUB_TERMINAL. GRUB_TERMINAL="console serial" # Set the GRUB_SERIAL_COMMAND variable. GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
Registrera ditt SUSE Linux Enterprise-system så att det kan ladda ned uppdateringar och installera paket.
Uppdatera systemet med de senaste korrigeringarna:
sudo zypper update
Installera Azure Linux VM Agent (
waagent
) och cloud-init:sudo 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-init
Aktivera
waagent
och cloud-init för att starta vid start:sudo systemctl enable waagent sudo systemctl enable cloud-init-local.service sudo systemctl enable cloud-init.service sudo systemctl enable cloud-config.service sudo systemctl enable cloud-final.service sudo systemctl daemon-reload sudo cloud-init clean
Uppdatera cloud-init-konfigurationen:
cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF
sudo cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/05_logging.cfg # 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 # Make sure mounts and disk_setup are in the init stage: 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
Om du vill montera, formatera och skapa en växlingspartition är ett alternativ att skicka in en cloud-init-konfiguration varje gång du skapar en virtuell dator.
Ett annat alternativ är att använda ett cloud-init-direktiv i avbildningen för att konfigurera växlingsutrymme varje gång den virtuella datorn skapas:
cat <<EOF | sudo tee -a /etc/systemd/system.conf 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' EOF cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg #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
Tidigare användes Azure Linux-agenten för att automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisken som är ansluten till den virtuella datorn efter att den virtuella datorn har etablerats i Azure. Eftersom cloud-init nu hanterar det här steget får du inte använda Azure Linux-agenten för att formatera resursdisken eller skapa växlingsfilen. Använd dessa kommandon för att ändra /etc/waagent.conf på rätt sätt:
sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=auto/g' /etc/waagent.conf sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/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
Kommentar
Om du använder en tidigare version av cloud-init än 21.2 kontrollerar du att modulen
udf
är aktiverad. Om du tar bort eller inaktiverar det orsakas ett etablerings- eller startfel. Cloud-init version 21.2 eller senare tar bort UDF-kravet.Kontrollera att filen /etc/fstab refererar till disken med hjälp av dess UUID (
by-uuid
).Ta bort udev-regler och konfigurationsfiler för nätverkskort för att undvika att generera statiska regler för Ethernet-gränssnitten. Dessa regler kan orsaka problem när du klonar en virtuell dator i Microsoft Azure eller Hyper-V.
sudo rm -f /etc/udev/rules.d/70-persistent-net.rules sudo rm -f /etc/udev/rules.d/85-persistent-net-cloud-init.rules sudo rm -f /etc/sysconfig/network/ifcfg-eth*
Vi rekommenderar att du redigerar filen /etc/sysconfig/network/dhcp och ändrar parametern
DHCLIENT_SET_HOSTNAME
till följande:DHCLIENT_SET_HOSTNAME="no"
I filen /etc/sudoers kommenterar du ut eller tar bort följande rader om de finns:
Defaults targetpw # Ask for the password of the target user i.e. root ALL ALL=(ALL) ALL # WARNING! Only use this setting together with 'Defaults targetpw'!
Kontrollera att SSH-servern (Secure Shell) är installerad och konfigurerad för start:
sudo systemctl enable sshd
Rensa moln-init-fasen:
sudo cloud-init clean --seed --logs
Kör följande kommandon för att avetablera den virtuella datorn och förbereda den för etablering i Azure.
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.
sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo export HISTSIZE=0 sudo rm -f ~/.bash_history
Förbered openSUSE 15.4+
I mittenfönstret i Hyper-V Manager väljer du den virtuella datorn.
Välj Anslut för att öppna fönstret för den virtuella datorn.
Kör kommandot
zypper lr
i en terminal . Om det här kommandot returnerar utdata som liknar följande exempel konfigureras lagringsplatserna som förväntat och inga justeringar krävs. (Versionsnummer kan variera.)# Alias Name Aktiverat GPG-kontroll Uppdatera 1 Cloud:Tools_15.4 Cloud:Tools-> Ja (r ) Ja Ja 2 openSUSE_stable_OSS openSUSE_st-> Ja (r ) Ja Ja 3 openSUSE_stable_Updates openSUSE_st-> Ja (r ) Ja Ja Om meddelandet "Inga definierade lagringsplatser" visas från
zypper lr
lagringsplatserna måste läggas till manuellt.Nedan visas exempel på kommandon för att lägga till dessa lagringsplatser (versioner och länkar kan variera):
sudo zypper ar -f https://download.opensuse.org/update/openSUSE-stable openSUSE_stable_Updates sudo zypper ar -f https://download.opensuse.org/repositories/Cloud:/Tools/15.4 Cloud:Tools_15.4 sudo zypper ar -f https://download.opensuse.org/distribution/openSUSE-stable/repo/oss openSUSE_stable_OSS
Du kan sedan kontrollera att lagringsplatserna har lagts till genom att köra kommandot
zypper lr
igen. Om någon av de relevanta uppdateringslagringsplatserna inte är aktiverad aktiverar du den med hjälp av följande kommando:sudo zypper mr -e [NUMBER OF REPOSITORY]
Uppdatera kerneln till den senaste tillgängliga versionen:
sudo zypper up kernel-default
Eller uppdatera operativsystemet med alla de senaste korrigeringarna:
sudo zypper update
Installera Azure Linux-agenten:
sudo zypper install WALinuxAgent
Ändra startraden för kernel i GRUB-konfigurationen så att den innehåller andra kernelparametrar för Azure. Det gör du genom att öppna /boot/grub/menu.lst i en textredigerare och se till att standardkärnan innehåller följande parametrar:
console=ttyS0 earlyprintk=ttyS0
Det här alternativet säkerställer att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem. Ta dessutom bort följande parametrar från kernel-startraden om de finns:
libata.atapi_enabled=0 reserve=0x1f0,0x8
Vi rekommenderar att du redigerar filen /etc/sysconfig/network/dhcp och ändrar parametern
DHCLIENT_SET_HOSTNAME
till följande inställning:DHCLIENT_SET_HOSTNAME="no"
I filen /etc/sudoers kommenterar du ut eller tar bort följande rader om de finns. Det här är ett viktigt steg.
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'!
Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start.
Skapa inte växlingsutrymme på OS-disken.
Azure Linux-agenten kan automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisk som är ansluten till den virtuella datorn efter etableringen i Azure. Den lokala resursdisken är en tillfällig disk och töms när den virtuella datorn avetableras.
När du har installerat Azure Linux-agenten ändrar du parametrarna i /etc/waagent.conf på följande sätt:
ResourceDisk.Format=n ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=n ResourceDisk.SwapSizeMB=2048 ## NOTE: set the size to whatever you need it to be.
Se till att Azure Linux-agenten körs vid start:
sudo systemctl enable waagent.service
Kör följande kommandon för att avetablera den virtuella datorn och förbereda den för etablering i Azure.
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.
sudo rm -f ~/.bash_history # Remove current user history sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history # Remove root user history sudo export HISTSIZE=0
Välj Åtgärden>stängs av i Hyper-V Manager.
Nästa steg
Nu är du redo att använda din virtuella SUSE Linux-hårddisk för att skapa nya virtuella datorer i Azure. Om det är första gången du laddar upp VHD-filen till Azure läser du Skapa en virtuell Linux-dator från en anpassad disk.