Förbereda en Red Hat-baserad virtuell dator för Azure
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️ ✔️ Enhetliga skalningsuppsättningar
I den här artikeln får du lära dig hur du förbereder en virtuell Dator med Red Hat Enterprise Linux (RHEL) för användning i Azure. De versioner av RHEL som beskrivs i den här artikeln är 6.X, 7.X och 8.X. Hypervisor-program för förberedelse som beskrivs i den här artikeln är Hyper-V, kernelbaserad virtuell dator (KVM) och VMware.
Mer information om behörighetskrav för att delta i Red Hats Cloud Access-program finns på Webbplatsen för Red Hat Cloud Access och Köra RHEL på Azure. Information om hur du automatiserar skapandet av RHEL-avbildningar finns i Azure Image Builder.
Kommentar
Tänk på versioner som är i slutet av livet (EOL) och som inte längre stöds av Red Hat. Uppladdade bilder som ligger på eller utanför EOL stöds på en rimlig affärsinsats. Mer information finns i Red Hat-produktens livscykel.
Hyper-V Manager
Det här avsnittet visar hur du förbereder en virtuell RHEL 6-, RHEL 7- eller RHEL 8-dator med hjälp av Hyper-V Manager.
Förutsättningar
Det här avsnittet förutsätter att du redan har hämtat en ISO-fil från Red Hat-webbplatsen och installerat RHEL-avbildningen på en virtuell hårddisk (VHD). Mer information om hur du använder Hyper-V Manager för att installera en operativsystemavbildning finns i Installera Hyper-V-rollen och konfigurera en virtuell dator.
RHEL-installationsanteckningar
- Azure stöder inte VHDX-formatet. Azure stöder endast fast virtuell hårddisk. Du kan använda Hyper-V Manager för att konvertera disken till VHD-format, eller så kan du använda cmdleten
convert-vhd
. Om du använder VirtualBox väljer du Fast storlek i stället för det dynamiskt allokerade standardalternativet när du skapar disken. - Azure stöder virtuella datorer med Gen1 (BIOS-start) och Gen2 (UEFI-start).
- Den maximala storleken som tillåts för den virtuella hårddisken är 1 023 GB.
- Modulen vfat kernel måste vara aktiverad i kerneln.
- Logical Volume Manager (LVM) stöds och kan användas på OS-disken eller datadiskarna på virtuella Azure-datorer. I allmänhet rekommenderar vi att du använder standardpartitioner på OS-disken i stället för LVM. Den här metoden undviker LVM-namnkonflikter med klonade virtuella datorer, särskilt om du någonsin behöver ansluta en operativsystemdisk till en annan identisk virtuell dator för felsökning. Mer information finns i LVM- och RAID-dokumentationen.
- Kernelstöd för montering av UDF-filsystem (Universal Disk Format) krävs. Vid första starten på Azure skickar det UDF-formaterade mediet som är kopplat till gästen etableringskonfigurationen till den virtuella Linux-datorn. Azure Linux-agenten måste kunna montera UDF-filsystemet för att kunna läsa dess konfiguration och etablera den virtuella datorn. Utan det här steget misslyckas etableringen.
- Konfigurera inte en växlingspartition på operativsystemdisken. Mer information finns i följande steg.
- 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 följande steg. Se även Installationsanteckningar för Linux.
Kommentar
Cloud-init >= 21.2 tar bort UDF-kravet. Men utan att UDF-modulen är aktiverad monteras inte CD-ROM under etableringen, vilket förhindrar att anpassade data tillämpas. En lösning är att tillämpa anpassade data med hjälp av användardata. Till skillnad från anpassade data krypteras inte användardata. Mer information finns i Användardataformat.
RHEL 6 med Hyper-V Manager
Viktigt!
Den 30 november 2020 nådde RHEL 6 slutet av underhållsfasen. Underhållsfasen följs av fasen Utökad livslängd. När RHEL 6 övergår från faserna Fullständigt/Underhåll rekommenderar vi starkt att du uppgraderar till RHEL 7, 8 eller 9. Om du måste stanna kvar på RHEL 6 rekommenderar vi att du lägger till tillägget för utökad rhel-livscykelsupport.
I Hyper-V Manager väljer du den virtuella datorn.
Välj Anslut för att öppna ett konsolfönster för den virtuella datorn.
I RHEL 6
NetworkManager
kan du störa Azure Linux-agenten. Avinstallera det här paketet:sudo rpm -e --nodeps NetworkManager
Skapa eller redigera
/etc/sysconfig/network
filen och lägg till följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
Skapa eller redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
filen och lägg till följande text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Flytta (eller ta bort) udev-reglerna för att undvika att generera statiska regler för Ethernet-gränssnittet. Dessa regler orsakar problem när du klonar en virtuell dator i Azure eller Hyper-V:
Varning
Många v5- och nyare VM-storlekar kräver accelererat nätverk. Om den inte är aktiverad tilldelar NetworkManager samma IP-adress till alla virtuella funktionsgränssnitt. Om du vill förhindra dubbletter av IP-adresser måste du inkludera den här udev-regeln när du migrerar till en senare storlek.
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
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparentlybonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo chkconfig network on
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
WALinuxAgent-paketet,
WALinuxAgent-<version>
, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra den här ändringen öppnar du
/boot/grub/menu.lst
i en textredigerare. Kontrollera att standardkärnan innehåller följande parametrar:console=ttyS0 earlyprintk=ttyS0
Den här åtgärden säkerställer också att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem.
Vi rekommenderar också att du tar bort följande parametrar:
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer. Den här konfigurationen kan vara ett problem för mindre VM-storlekar.Kontrollera att SSH-servern (Secure Shell) är installerad och konfigurerad att starta vid start, vilket vanligtvis är standardvärdet. Ändra
/etc/ssh/sshd_config
så att följande rad inkluderas:ClientAliveInterval 180
Installera Azure Linux-agenten:
sudo yum install WALinuxAgent sudo chkconfig waagent on
När du installerar WALinuxAgent-paketet tas paketen
NetworkManager
ochNetworkManager-gnome
bort om de inte redan har tagits bort i steg 3.Skapa inte växlingsutrymme på operativsystemdisken.
Azure Linux-agenten kan automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisk som är ansluten till den virtuella datorn när den virtuella datorn har etablerats i Azure. Den lokala resursdisken är en tillfällig disk och kan tömmas om den virtuella datorn avetableras. När du har installerat Azure Linux-agenten i föregående steg ändrar du följande parametrar på
/etc/waagent.conf
lämpligt sätt: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.
Avregistrera prenumerationen (om det behövs):
sudo subscription-manager unregister
Avetablera den virtuella datorn och förbered den för etablering i Azure:
Kommentar
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.
sudo waagent -force -deprovision sudo export HISTSIZE=0
Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.
RHEL 7 med Hyper-V Manager
I Hyper-V Manager väljer du den virtuella datorn.
Välj Anslut för att öppna ett konsolfönster för den virtuella datorn.
Skapa eller redigera
/etc/sysconfig/network
filen och lägg till följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
Skapa eller redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
filen och lägg till följande text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparentlybonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo systemctl enable network
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra den här ändringen öppnar
/etc/default/grub
du i en textredigerare och redigerar parameternGRUB_CMDLINE_LINUX
. Till exempel:GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 net.ifnames=0" GRUB_TERMINAL_OUTPUT="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" ENABLE_BLSCFG=true
Kommentar
Om ENABLE_BLSCFG=false finns i i
/etc/default/grub
stället för kanske verktyg som grubedit eller gubby, som förlitar sig på BLS (Boot Loader Specification) för hantering avENABLE_BLSCFG=true
startposter och konfigurationer, inte fungerar korrekt i RHEL 8 och 9. OmENABLE_BLSCFG
inte finns ärfalse
standardbeteendet .Den här ändringen säkerställer också att alla konsolmeddelanden skickas till den första serieporten och aktiverar interaktion med seriekonsolen, vilket kan hjälpa Azure-supporten med felsökningsproblem. Den här konfigurationen inaktiverar också de nya RHEL 7-namngivningskonventionerna för nätverkskort (NIC).
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.När du är klar med redigeringen
/etc/default/grub
kör du följande kommando för att återskapa grub-konfigurationen:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Kommentar
Om du laddar upp en UEFI-aktiverad virtuell dator är
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
kommandot för att uppdatera grub .Kontrollera att SSH-servern är installerad och konfigurerad för att starta vid start, vilket vanligtvis är standard. Ändra
/etc/ssh/sshd_config
så att följande rad inkluderas:ClientAliveInterval 180
WALinuxAgent-paketet,
WALinuxAgent-<version>
, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installera Azure Linux-agenten
cloud-init
och andra nödvändiga verktyg:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Konfigurera
cloud-init
för att hantera etableringen:Konfigurera
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
Kommentar
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning anger du
Provisioning.Agent=disabled
konfigurationen/etc/waagent.conf
.Konfigurera monteringar:
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
Konfigurera Azure-datakällan:
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
Om du har konfigurerat den tar du bort den befintliga växlingsfilen:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fi
Konfigurera
cloud-init
loggning:sudo echo "Add console log file" sudo 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
Växlingskonfiguration:
Skapa inte växlingsutrymme på operativsystemdisken.
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. Den här åtgärden hanteras nu av
cloud-init
. Du får inte använda Linux-agenten för att formatera resursdisken för att skapa växlingsfilen. Ändra följande parametrar på/etc/waagent.conf
lämpligt sätt:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Om du vill montera, formatera och skapa växlingen kan du antingen:
Skicka in den här koden som en
cloud-init
konfiguration varje gång du skapar en virtuell dator via anpassade data. Vi rekommenderar den här metoden.Använd ett
cloud-init
direktiv som bakas in i avbildningen som gör det här steget varje gång den virtuella datorn skapas.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/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Om du vill avregistrera prenumerationen kör du följande kommando:
sudo subscription-manager unregister
Avetablera den virtuella datorn och förbered den för etablering i Azure:
Varning
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget. Om du kör kommandot
waagent -force -deprovision+user
blir källdatorn oanvändbar. Det här steget är endast avsett att skapa en generaliserad avbildning.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
Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.
RHEL 8+ med Hyper-V Manager
I Hyper-V Manager väljer du den virtuella datorn.
Välj Anslut för att öppna ett konsolfönster för den virtuella datorn.
Se till att Network Manager-tjänsten startar vid starttiden:
sudo systemctl enable NetworkManager.service
Konfigurera nätverksgränssnittet så att det startas automatiskt och använd Dynamic Host Configuration Protocol:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparentlybonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ändra startraden för kernel i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure och aktivera seriekonsolen.
Ta bort aktuella GRUB-parametrar:
sudo grub2-editenv - unset kernelopts
Redigera
/etc/default/grub
i en textredigerare och lägg till följande parametrar:GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0" GRUB_TERMINAL_OUTPUT="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Den här ändringen säkerställer också att alla konsolmeddelanden skickas till den första serieporten och aktiverar interaktion med seriekonsolen, vilket kan hjälpa Azure-supporten med felsökningsproblem. Den här konfigurationen inaktiverar också de nya namngivningskonventionerna för nätverkskort.
Vi rekommenderar att du även tar bort följande parametrar:
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.När du är klar med redigeringen
/etc/default/grub
kör du följande kommando för att återskapa grub-konfigurationen:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Kör följande kommando för en UEFI-aktiverad virtuell dator:
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Kontrollera att SSH-servern är installerad och konfigurerad för att starta vid start, vilket vanligtvis är standard. Ändra
/etc/ssh/sshd_config
så att följande rad inkluderas:ClientAliveInterval 180
Installera Azure Linux-agenten
cloud-init
och andra nödvändiga verktyg:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Konfigurera
cloud-init
för att hantera etableringen:Konfigurera
waagent
förcloud-init
:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/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 migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning anger du
Provisioning.Agent=disabled
konfigurationen/etc/waagent.conf
.Konfigurera monteringar:
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
Konfigurera Azure-datakällan:
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
Om du har konfigurerat den tar du bort den befintliga växlingsfilen:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by defaul swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fi
Konfigurera
cloud-init
loggning:sudo echo "Add console log file" sudo 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
Växlingskonfiguration:
Skapa inte växlingsutrymme på operativsystemdisken.
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. Den här åtgärden hanteras nu av
cloud-init
. Du får inte använda Linux-agenten för att formatera resursdisken och skapa växlingsfilen. Ändra följande parametrar på/etc/waagent.conf
lämpligt sätt:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Skicka in den här koden som en
cloud-init
konfiguration varje gång du skapar en virtuell dator via anpassade data. Vi rekommenderar den här metoden.Använd ett
cloud-init
direktiv som bakas in i avbildningen som gör det här steget varje gång den virtuella datorn skapas.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/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"] EOF
Om du vill avregistrera prenumerationen kör du följande kommando:
sudo subscription-manager unregister
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 waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo sudo rm -f /var/log/waagent.log sudo export HISTSIZE=0
Varning
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget. Om du kör kommandot
waagent -force -deprovision+user
blir källdatorn oanvändbar. Det här steget är endast avsett att skapa en generaliserad avbildning.Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.
KVM
Det här avsnittet visar hur du använder KVM för att förbereda en RHEL 6 - eller RHEL 7-distribution för att ladda upp till Azure.
RHEL 6 med KVM
Viktigt!
Den 30 november 2020 nådde RHEL 6 slutet av underhållsfasen. Underhållsfasen följs av fasen Utökad livslängd. När RHEL 6 övergår från faserna Fullständigt/Underhåll rekommenderar vi starkt att du uppgraderar till RHEL 7, 8 eller 9. Om du måste stanna kvar på RHEL 6 rekommenderar vi att du lägger till tillägget för utökad rhel-livscykelsupport.
Ladda ned KVM-bilden av RHEL 6 från Red Hat-webbplatsen.
Ange ett rotlösenord.
Generera ett krypterat lösenord och kopiera utdata från kommandot:
sudo openssl passwd -1 changeme
Ange ett rotlösenord med guestfish:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Ändra det andra fältet för rotanvändaren från
!!
till det krypterade lösenordet.Skapa en virtuell dator i KVM från qcow2-avbildningen. Ange disktypen qcow2 och ange enhetsmodellen för det virtuella nätverksgränssnittet till virtio. Starta sedan den virtuella datorn och logga in som rot.
Skapa eller redigera
/etc/sysconfig/network
filen och lägg till följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
Skapa eller redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
filen och lägg till följande text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Flytta (eller ta bort) udev-reglerna för att undvika att generera statiska regler för Ethernet-gränssnittet. Dessa regler orsakar problem när du klonar en virtuell dator i 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
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparently bonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo chkconfig network on
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra den här konfigurationen öppnar
/boot/grub/menu.lst
du i en textredigerare. Kontrollera att standardkärnan innehåller följande parametrar:console=ttyS0 earlyprintk=ttyS0
Det här steget säkerställer också att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem.
Vi rekommenderar också att du tar bort följande parametrar:
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.Lägg till Hyper-V-moduler i initramfs:
Redigera
/etc/dracut.conf
och lägg till följande innehåll:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Återskapa initramfs:
sudo dracut -f -v
Avinstallera
cloud-init
:sudo yum remove cloud-init
Kontrollera att SSH-servern är installerad och konfigurerad för start vid start:
sudo chkconfig sshd on
Ändra
/etc/ssh/sshd_config
så att följande rader inkluderas:PasswordAuthentication yes ClientAliveInterval 180
WALinuxAgent-paketet,
WALinuxAgent-<version>
, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Installera Azure Linux-agenten:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Azure Linux-agenten kan automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisk som är ansluten till den virtuella datorn när den virtuella datorn har etablerats i Azure. Den lokala resursdisken är en tillfällig disk och kan tömmas om den virtuella datorn avetableras. När du har installerat Azure Linux-agenten i föregående steg ändrar du följande parametrar på
/etc/waagent.conf
lämpligt sätt: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.
Avregistrera prenumerationen (om det behövs):
sudo subscription-manager unregister
Kör följande kommandon för att avetablera den virtuella datorn och förbereda den för etablering i Azure.
Kommentar
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.
sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Stäng av den virtuella datorn i KVM.
Konvertera qcow2-avbildningen till VHD-formatet.
Kommentar
Det finns en känd bugg i qemu-img-versioner >=2.2.1 som resulterar i en felaktigt formaterad virtuell hårddisk. Problemet har åtgärdats i QEMU 2.6. Vi rekommenderar att du använder antingen qemu-img 2.2.0 eller lägre eller uppdaterar till 2,6 eller senare. Mer information finns på den här webbplatsen .
Konvertera först avbildningen till raw-format:
sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
Kontrollera att storleken på den råa avbildningen är justerad med 1 MB. Annars avrundar du storleken så att den överensstämmer med 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-6.9.raw $rounded_size
Konvertera rådisken till en virtuell hårddisk med fast storlek:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Eller, med qemu version 2.6+, inkludera alternativet
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 med KVM
Ladda ned KVM-bilden av RHEL 7 från Red Hat-webbplatsen. Den här proceduren använder RHEL 7 som exempel.
Ange ett rotlösenord.
Generera ett krypterat lösenord och kopiera utdata från kommandot:
sudo openssl passwd -1 changeme
Ange ett rotlösenord med guestfish:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Ändra det andra fältet för rotanvändaren från
!!
till det krypterade lösenordet.Skapa en virtuell dator i KVM från qcow2-avbildningen. Ange disktypen qcow2 och ange enhetsmodellen för det virtuella nätverksgränssnittet till virtio. Starta sedan den virtuella datorn och logga in som rot.
Skapa eller redigera
/etc/sysconfig/network
filen och lägg till följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
Skapa eller redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
filen och lägg till följande text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparentlybonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo systemctl enable network
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra den här konfigurationen öppnar
/etc/default/grub
du i en textredigerare och redigerar parameternGRUB_CMDLINE_LINUX
. Till exempel:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Det här kommandot ser också till att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem. Kommandot inaktiverar också de nya RHEL 7-namngivningskonventionerna för nätverkskort. Vi rekommenderar också att du tar bort följande parametrar:
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.När du är klar med redigeringen
/etc/default/grub
kör du följande kommando för att återskapa grub-konfigurationen:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Lägg till Hyper-V-moduler i initramfs.
Redigera
/etc/dracut.conf
och lägg till innehåll:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Återskapa initramfs:
sudo dracut -f -v
Avinstallera
cloud-init
:sudo yum remove cloud-init
Kontrollera att SSH-servern är installerad och konfigurerad för start vid start:
sudo systemctl enable sshd
Ändra
/etc/ssh/sshd_config
så att följande rader inkluderas:PasswordAuthentication yes ClientAliveInterval 180
WALinuxAgent-paketet,
WALinuxAgent-<version>
, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installera Azure Linux-agenten:
sudo yum install WALinuxAgent
waagent
Aktivera tjänsten:sudo systemctl enable waagent.service
Installera
cloud-init
.Följ stegen i "Förbered en virtuell RHEL 7-dator från Hyper-V Manager", steg 12, "Installera
cloud-init
för att hantera etableringen".Växlingskonfiguration:
- Skapa inte växlingsutrymme på operativsystemdisken.
- Följ stegen i "Förbered en virtuell RHEL 7-dator från Hyper-V Manager", steg 13, "Växlingskonfiguration".
Avregistrera prenumerationen (om det behövs):
sudo subscription-manager unregister
Avetablera genom att följa stegen i "Förbereda en virtuell RHEL 7-dator från Hyper-V Manager", steg 15, "Avetablering".
Stäng av den virtuella datorn i KVM.
Konvertera qcow2-avbildningen till VHD-formatet.
Kommentar
Det finns en känd bugg i qemu-img-versioner >=1.1.1 som resulterar i en felaktigt formaterad virtuell hårddisk. Problemet har åtgärdats i QEMU 1.6. Vi rekommenderar att du använder antingen qemu-img 1.1.0 eller lägre eller uppdaterar till 1,6 eller senare. Mer information finns på den här webbplatsen.
Konvertera först avbildningen till raw-format:
sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
Kontrollera att storleken på den råa avbildningen är justerad med 1 MB. Annars avrundar du storleken så att den överensstämmer med 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-7.4.raw $rounded_size
Konvertera rådisken till en virtuell hårddisk med fast storlek:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Eller, med qemu version 1.6+, inkludera alternativet
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
VMware
Det här avsnittet visar hur du förbereder en RHEL 6 - eller RHEL 7-distribution från VMware.
Förutsättningar
Det här avsnittet förutsätter att du redan har installerat en virtuell RHEL-dator i VMware. Information om hur du installerar ett operativsystem i VMware finns i installationsguiden för gästoperativsystem för VMware.
- När du installerar Linux-operativsystemet rekommenderar vi att du använder standardpartitioner i stället för LVM, vilket ofta är standard för många installationer. Med hjälp av partitioner undviks LVM-namnkonflikter med en klonad virtuell dator, särskilt om en operativsystemdisk någonsin behöver anslutas till en annan virtuell dator för felsökning. LVM eller RAID kan användas på datadiskar om du vill.
- Konfigurera inte en växlingspartition på operativsystemdisken. Du kan konfigurera Linux-agenten för att skapa en växlingsfil på den tillfälliga resursdisken. Mer information finns i följande steg.
- När du skapar den virtuella hårddisken väljer du Lagra virtuell disk som en enda fil.
RHEL 6 med VMware
Viktigt!
Den 30 november 2020 nådde RHEL 6 slutet av underhållsfasen. Underhållsfasen följs av fasen Utökad livslängd. När RHEL 6 övergår från faserna Fullständigt/Underhåll rekommenderar vi starkt att du uppgraderar till RHEL 7, 8 eller 9. Om du måste stanna kvar på RHEL 6 rekommenderar vi att du lägger till tillägget för utökad rhel-livscykelsupport.
I RHEL 6
NetworkManager
kan du störa Azure Linux-agenten. Avinstallera det här paketet:sudo rpm -e --nodeps NetworkManager
Skapa en fil med namnet network i katalogen
/etc/sysconfig/
som innehåller följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
Skapa eller redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
filen och lägg till följande text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Flytta (eller ta bort) udev-reglerna för att undvika att generera statiska regler för Ethernet-gränssnittet. Dessa regler orsakar problem när du klonar en virtuell dator i 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
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparently bonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo chkconfig network on
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
WALinuxAgent-paketet,
WALinuxAgent-<version>
, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra det här steget öppnar
/etc/default/grub
du i en textredigerare och redigerar parameternGRUB_CMDLINE_LINUX
. Till exempel:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
Det här steget säkerställer också att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem. Vi rekommenderar också att du tar bort följande parametrar:
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.Lägg till Hyper-V-moduler i initramfs:
Redigera
/etc/dracut.conf
och lägg till följande innehåll:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Återskapa initramfs:
sudo dracut -f -v
Kontrollera att SSH-servern är installerad och konfigurerad för att starta vid start, vilket vanligtvis är standard. Ändra
/etc/ssh/sshd_config
så att följande rad inkluderas:ClientAliveInterval 180
Installera Azure Linux-agenten:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Skapa inte ett växlingsutrymme på operativsystemdisken.
Azure Linux-agenten kan automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisk som är ansluten till den virtuella datorn när den virtuella datorn har etablerats i Azure. Den lokala resursdisken är en tillfällig disk och kan tömmas om den virtuella datorn avetableras. När du har installerat Azure Linux-agenten i föregående steg ändrar du följande parametrar på
/etc/waagent.conf
lämpligt sätt: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.
Avregistrera prenumerationen (om det behövs):
sudo subscription-manager unregister
Kör följande kommandon för att avetablera den virtuella datorn och förbereda den för etablering i Azure:
Kommentar
Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.
sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Stäng av den virtuella datorn och konvertera VMDK-filen till en VHD-fil.
Kommentar
Det finns en känd bugg i qemu-img-versioner >=2.2.1 som resulterar i en felaktigt formaterad virtuell hårddisk. Problemet har åtgärdats i QEMU 2.6. Vi rekommenderar att du använder antingen qemu-img 2.2.0 eller lägre eller uppdaterar till 2,6 eller senare. Mer information finns på den här webbplatsen.
Konvertera först avbildningen till raw-format:
sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
Kontrollera att storleken på den råa avbildningen är justerad med 1 MB. Annars avrundar du storleken så att den överensstämmer med 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-6.9.raw $rounded_size
Konvertera rådisken till en virtuell hårddisk med fast storlek:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Eller, med qemu version 2.6+, inkludera alternativet
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 med VMware
Skapa eller redigera
/etc/sysconfig/network
filen och lägg till följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
Skapa eller redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
filen och lägg till följande text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Kommentar
När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar
NetworkManager
från att tilldela samma IP-adress till den som det primära gränssnittet.Så här tillämpar du den:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparentlybonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo systemctl enable network
Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra den här ändringen öppnar
/etc/default/grub
du i en textredigerare och redigerar parameternGRUB_CMDLINE_LINUX
. Till exempel:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Den här konfigurationen säkerställer också att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem. Det inaktiverar också de nya RHEL 7-namngivningskonventionerna för nätverkskort. Dessutom rekommenderar vi att du tar bort följande parametrar:
rhgb quiet crashkernel=auto
Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet
crashkernel
konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.När du är klar med redigeringen
/etc/default/grub
kör du följande kommando för att återskapa grub-konfigurationen:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Lägg till Hyper-V-moduler i initramfs:
Redigera
/etc/dracut.conf
, lägg till innehåll:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Återskapa initramfs:
sudo dracut -f -v
Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen. Ändra
/etc/ssh/sshd_config
så att följande rad inkluderas:ClientAliveInterval 180
WALinuxAgent-paketet,
WALinuxAgent-<version>
, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installera Azure Linux-agenten:
sudo yum install WALinuxAgent sudo systemctl enable waagent.service
Installera
cloud-init
:Följ stegen i "Förbered en virtuell RHEL 7-dator från Hyper-V Manager", steg 12, "Installera
cloud-init
för att hantera etableringen".Växlingskonfiguration:
- Skapa inte växlingsutrymme på operativsystemdisken.
- Följ stegen i "Förbered en virtuell RHEL 7-dator från Hyper-V Manager", steg 13, "Växlingskonfiguration".
Om du vill avregistrera prenumerationen kör du följande kommando:
sudo subscription-manager unregister
Avetablera genom att följa stegen i "Förbereda en virtuell RHEL 7-dator från Hyper-V Manager", steg 15, "Avetablering".
Stäng av den virtuella datorn och konvertera VMDK-filen till VHD-formatet.
Kommentar
Det finns en känd bugg i qemu-img-versioner >=2.2.1 som resulterar i en felaktigt formaterad virtuell hårddisk. Problemet har åtgärdats i QEMU 2.6. Vi rekommenderar att du använder antingen qemu-img 2.2.0 eller lägre eller uppdaterar till 2,6 eller senare. Mer information finns på den här webbplatsen.
Konvertera först avbildningen till raw-format:
sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
Kontrollera att storleken på den råa avbildningen är justerad med 1 MB. Annars avrundar du storleken så att den överensstämmer med 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-7.4.raw $rounded_size
Konvertera rådisken till en virtuell hårddisk med fast storlek:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Eller, med qemu version 2.6+, inkludera alternativet
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
Kickstart-fil
Det här avsnittet visar hur du förbereder en RHEL 7-distribution från en ISO med hjälp av en kickstart-fil.
RHEL 7 från en kickstart-fil
Skapa en kickstart-fil som innehåller följande innehåll och spara filen. Mer information om kickstartsinstallation finns i installationsguiden för Kickstart.
# Kickstart for provisioning a RHEL 7 Azure VM # System authorization information auth --enableshadow --passalgo=sha512 # Use graphical install text # Don't run the Setup Agent on first boot firstboot --disable # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp # Root password rootpw --plaintext "to_be_disabled" # System services services --enabled="sshd,waagent,NetworkManager" # System timezone timezone Etc/UTC --isUtc --ntpservers 0.rhel.pool.ntp.org,1.rhel.pool.ntp.org,2.rhel.pool.ntp.org,3.rhel.pool.ntp.org # Partition clearing information clearpart --all --initlabel # Clear the MBR zerombr # Disk partitioning information part /boot --fstype="xfs" --size=500 part / --fstyp="xfs" --size=1 --grow --asprimary # System bootloader configuration bootloader --location=mbr # Firewall configuration firewall --disabled # Enable SELinux selinux --enforcing # Don't configure X skipx # Power down the machine after install poweroff %packages @base @console-internet chrony sudo parted -dracut-config-rescue %end %post --log=/var/log/anaconda/post-install.log #!/bin/bash # Register Red Hat Subscription subscription-manager register --username=XXX --password=XXX --auto-attach --force # Install latest repo update yum update -y # Enable extras repo subscription-manager repos --enable=rhel-7-server-extras-rpms # Install WALinuxAgent yum install -y WALinuxAgent # Unregister Red Hat subscription subscription-manager unregister # Enable waaagent at boot-up systemctl enable waagent # Install cloud-init yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons # Configure waagent for cloud-init sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf 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.conf echo "Adding mounts and disk_setup to init stage" sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg # Disable the root account usermod root -p '!!' # Configure swap using cloud-init 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.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"] EOF # Set the cmdline sed -i 's/^\(GRUB_CMDLINE_LINUX\)=".*"$/\1="console=tty1 console=ttyS0 earlyprintk=ttyS0"/g' /etc/default/grub # Enable SSH keepalive sed -i 's/^#\(ClientAliveInterval\).*$/\1 180/g' /etc/ssh/sshd_config # Build the grub cfg grub2-mkconfig -o /boot/grub2/grub.cfg # Configure network cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes EOF sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparentlybonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOF # Deprovision and prepare for Azure if you are creating a generalized image sudo cloud-init clean --logs --seed sudo rm -rf /var/lib/cloud/ sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user rm -f ~/.bash_history export HISTSIZE=0 %end
Placera kickstart-filen där installationssystemet kan komma åt den.
Skapa en ny virtuell dator i Hyper-V Manager. På sidan Anslut virtuell hårddisk väljer du Anslut en virtuell hårddisk senare och slutför guiden Ny virtuell dator .
Öppna inställningarna för den virtuella datorn:
Koppla en ny virtuell hårddisk till den virtuella datorn. Välj VHD-format och Fast storlek.
Koppla installations-ISO till DVD-enheten.
Ställ in BIOS att starta från CD.
Starta den virtuella datorn. När installationsguiden visas väljer du tabbnyckeln för att konfigurera startalternativen.
Ange
inst.ks=<the location of the kickstart file>
i slutet av startalternativen och välj returnyckeln.Vänta tills installationen är klar. När den är klar stängs den virtuella datorn av automatiskt. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.
Kända problem
Följande problem är känt.
Det gick inte att inkludera Hyper-V-drivrutinen i den första RAM-disken när du använder ett hypervisor-program som inte är Hyper-V
I vissa fall kanske Linux-installationsprogram inte innehåller drivrutinerna för Hyper-V i den första RAM-disken (initrd eller initramfs) såvida inte Linux upptäcker att det körs i en Hyper-V-miljö.
När du använder ett annat virtualiseringssystem (till exempel VirtualBox eller Xen) för att förbereda Linux-avbildningen kan du behöva återskapa initrd för att säkerställa att åtminstone hv_vmbus
kernelmodulerna och hv_storvsc
är tillgängliga på den första RAM-disken. Det här problemet är känt, åtminstone på system som baseras på den överordnade Red Hat-fördelningen.
Lös problemet genom att lägga till Hyper-V-moduler i initramfs och återskapa det:
Redigera /etc/dracut.conf
och lägg till följande innehåll:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Återskapa initramfs:
sudo dracut -f -v
Mer information finns i Återskapa initramfs.
Relaterat innehåll
- Nu är du redo att använda din virtuella RHEL-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.
- Mer information om de hypervisor-program som är certifierade för att köra RHEL finns på Red Hat-webbplatsen.
- Mer information om hur du använder produktionsklara RHEL BYOS-avbildningar finns på dokumentationssidan för Bring Your Own-prenumerationen.