Förbered en virtuell Oracle Linux-dator för Azure

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

Den här artikeln förutsätter att du redan har installerat ett Oracle Linux-operativsystem på en virtuell hårddisk. Det finns flera verktyg för att skapa VHD-filer, till exempel en virtualiseringslösning som Hyper-V. Anvisningar finns i Installera Hyper-V-rollen och Konfigurera en virtuell dator.

Installationsanmärkningar för Oracle Linux

  • Mer information om hur du förbereder Linux för Azure finns i Allmänna Linux-installationsanteckningar .
  • Hyper-V och Azure stöder Oracle Linux med antingen UEK (Unbreakable Enterprise Kernel) eller Red Hat Compatible Kernel.
  • Oracles UEK2 stöds inte på Hyper-V och Azure eftersom det inte innehåller de drivrutiner som krävs.
  • VHDX-formatet stöds inte i Azure, endast fast virtuell hårddisk. Du kan konvertera disken till VHD-format med Hjälp av Hyper-V Manager eller cmdleten convert-vhd.
  • Kernelstöd för montering av UDF-filsystem krävs. Vid första starten på Azure skickas etableringskonfigurationen till den virtuella Linux-datorn via UDF-formaterade medier som är anslutna till gästen. Azure Linux-agenten måste kunna montera UDF-filsystemet för att kunna läsa dess konfiguration och etablera den virtuella datorn.
  • När du installerar Linux-systemet rekommenderar vi att du använder standardpartitioner i stället för LVM (ofta standard för många installationer). Dessa standardpartitioner undviker LVM-namnkonflikter med klonade virtuella datorer, särskilt om en OS-disk någonsin behöver anslutas till en annan virtuell dator för felsökning. LVM eller RAID kan användas på datadiskar om så önskas.
  • Tidigare versioner av Linux-kernel än 2.6.37 stöder inte NUMA på Hyper-V med större VM-storlekar. Det här problemet påverkar främst äldre distributioner med den överordnade Red Hat 2.6.32-kerneln och har åtgärdats i Oracle Linux 6.6 och senare.
  • Konfigurera inte en växlingspartition på OS-disken.
  • 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 måste du se till att den råa diskstorleken är en multipel på 1 MB före konverteringen. Mer information finns i Installationsanteckningar för Linux.
  • Kontrollera att lagringsplatsen Addons är aktiverad. Redigera filen /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) eller /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7) och ändra raden enabled=0 till enabled=1 under [ol6_addons] eller [ol7_addons] i den här filen.

Oracle Linux 6.X

Viktigt!

Tänk på att Oracle Linux 6.x redan är EOL. Oracle Linux version 6.10 har tillgängligt ELS-stöd, som upphör den 7/2024.

Du måste utföra specifika konfigurationssteg i operativsystemet för att den virtuella datorn ska kunna köras i Azure.

  1. I den centrala rutan i Hyper-V Manager väljer du den virtuella datorn.

  2. Klicka på Anslut för att öppna fönstret för den virtuella datorn.

  3. Avinstallera NetworkManager genom att köra följande kommando:

    sudo rpm -e --nodeps NetworkManager
    

    Kommentar

    Om paketet inte redan är installerat misslyckas det här kommandot med ett felmeddelande. De här meddelandena förväntas.

  4. Skapa en fil med namnet network i katalogen /etc/sysconfig/ som innehåller följande text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Skapa en fil med namnet ifcfg-eth0 i katalogen /etc/sysconfig/network-scripts/ som innehåller följande text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Ändra udev-regler för att undvika att generera statiska regler för Ethernet-gränssnitten. Dessa regler kan orsaka problem vid kloning av en virtuell dator i Microsoft Azure eller Hyper-V:

    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
    
  7. Kontrollera att nätverkstjänsten startar vid starttiden genom att köra följande kommando:

    sudo chkconfig network on
    
  8. Installera python-pyasn1 genom att köra följande kommando:

    sudo yum install python-pyasn1
    
  9. Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra detta öppnar du "/boot/grub/menu.lst" i en textredigerare och ser till att kerneln innehåller följande parametrar:

    console=ttyS0 earlyprintk=ttyS0
    

    Den här inställningen säkerställer att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem.

    Utöver ovanstående rekommenderar vi att du tar bort följande parametrar:

    rhgb quiet crashkernel=auto
    

    Grafisk och tyst start är inte användbara i en molnmiljö där vi vill att alla loggar ska skickas till serieporten.

    Alternativet crashkernel kan lämnas konfigurerat om du vill, men observera att den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara problematiskt för de mindre VM-storlekarna.

  10. Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Detta är vanligtvis standardvärdet.

  11. Installera Azure Linux-agenten genom att köra följande kommando. Den senaste versionen är 2.0.15.

    sudo yum install WALinuxAgent
    

    Om du installerar WALinuxAgent-paketet tas paketen NetworkManager och NetworkManager-gnome bort om de inte redan har tagits bort enligt beskrivningen i steg 2.

  12. Skapa inte växlingsutrymme på OS-disken.

    Azure Linux-agenten kan automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisken som är ansluten till den virtuella datorn efter etableringen i Azure. Den lokala resursdisken är en tillfällig disk och kan tömmas när den virtuella datorn avetableras. När du har installerat Azure Linux-agenten (se föregående steg) ändrar du följande parametrar i /etc/waagent.conf på rätt sätt:

    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.
    
  13. Kör följande kommandon för att avetablera den virtuella datorn och förbereda den för etablering i Azure:

    sudo waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Klicka på Åtgärd –> Stäng av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.


Oracle Linux 7.0 och senare

Ändringar i Oracle Linux 7

Att förbereda en virtuell Oracle Linux 7-dator för Azure liknar Oracle Linux 6, men det finns flera betydande skillnader som är värda att notera:

  • Azure stöder Oracle Linux med antingen UEK (Unbreakable Enterprise Kernel) eller Red Hat Compatible Kernel. Oracle Linux med UEK rekommenderas.
  • NetworkManager-paketet står inte längre i konflikt med Azure Linux-agenten. Det här paketet installeras som standard och vi rekommenderar att det inte tas bort.
  • GRUB2 används nu som standardstartläsare, så proceduren för redigering av kernelparametrar har ändrats (se nedan).
  • XFS är nu standardfilsystemet. Ext4-filsystemet kan fortfarande användas om du vill.

Konfigurationssteg

  1. I Hyper-V Manager väljer du den virtuella datorn.

  2. Klicka på Anslut för att öppna ett konsolfönster för den virtuella datorn.

  3. Skapa en fil med namnet network i katalogen /etc/sysconfig/ som innehåller följande text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Skapa en fil med namnet ifcfg-eth0 i katalogen /etc/sysconfig/network-scripts/ som innehåller följande text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Ändra udev-regler för att undvika att generera statiska regler för Ethernet-gränssnitten. Dessa regler kan orsaka problem vid kloning av en virtuell dator i Microsoft Azure eller Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Kontrollera att nätverkstjänsten startar vid starttiden genom att köra följande kommando:

    sudo chkconfig network on
    
  7. Installera python-pyasn1-paketet genom att köra följande kommando:

    sudo yum install python3-pyasn1
    
  8. Kör följande kommando för att rensa aktuella yum-metadata och installera eventuella uppdateringar:

    sudo yum clean all
    sudo yum -y update
    
  9. Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra detta öppnar du "/etc/default/grub" i en textredigerare och redigerar parametern GRUB_CMDLINE_LINUX , till exempel:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    Detta säkerställer också att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem. Den inaktiverar även namngivningskonventionerna för nätverkskort i Oracle Linux 7 med Den okrossbara enterprise-kerneln. Utöver ovanstående rekommenderar vi att du tar bort följande parametrar:

       rhgb quiet crashkernel=auto
    

    Grafisk och tyst start är inte användbara i en molnmiljö där vi vill att alla loggar ska skickas till serieporten.

    Alternativet crashkernel kan lämnas konfigurerat om du vill, men observera att den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara problematiskt för de mindre VM-storlekarna.

  10. När du har redigerat "/etc/default/grub" ovan kör du följande kommando för att återskapa grub-konfigurationen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Detta är vanligtvis standardvärdet.

  12. Installera Azure Linux-agenten och beroenden:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Installera cloud-init för att hantera etableringen

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Konfigurera 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
    
  15. Växlingskonfiguration. Skapa inte växlingsutrymme på operativsystemdisken.

    Tidigare användes Azure Linux-agenten automatiskt för att konfigurera växlingsutrymme med hjälp av den lokala resursdisk som är ansluten till den virtuella datorn efter att den virtuella datorn har etablerats i Azure. Men detta hanteras nu av cloud-init, du får inte använda Linux-agenten för att formatera resursdisken skapa växlingsfilen, ändra följande parametrar på /etc/waagent.conf lämpligt sätt:

    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
    

    Om du vill montera, formatera och skapa växling kan du antingen:

    • Skicka in detta som en cloud-init-konfiguration varje gång du skapar en virtuell dator
    • Använd ett cloud-init-direktiv som bakas in i avbildningen som gör detta varje gång den virtuella datorn skapas:
    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
    
  16. Kör följande kommandon för att avetablera den virtuella datorn och förbereda den för etablering i Azure:

    sudo cloud-init clean
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    

    Kommentar

    Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.

  17. Klicka på Åtgärd –> Stäng av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.

Nästa steg

Nu är du redo att använda din Oracle Linux .vhd 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.