Przygotowywanie maszyny wirtualnej bazującej na systemie Red Hat dla platformy AzurePrepare a Red Hat-based virtual machine for Azure

W tym artykule dowiesz się, jak przygotować maszynę wirtualną Red Hat Enterprise Linux (RHEL) do użycia na platformie Azure.In this article, you will learn how to prepare a Red Hat Enterprise Linux (RHEL) virtual machine for use in Azure. Wersje RHEL omówione w tym artykule to 6.7 + i 7.1 +.The versions of RHEL that are covered in this article are 6.7+ and 7.1+. Funkcja hypervisor dla przygotowania, która jest omówiona w tym artykule, to funkcja Hyper-V, maszyna wirtualna oparta na jądrze (KVM) i oprogramowanie VMware.The hypervisors for preparation that are covered in this article are Hyper-V, kernel-based virtual machine (KVM), and VMware. Aby uzyskać więcej informacji na temat wymagań dotyczących uprawnień dla uczestnictwa w programie w ramach programu dostępu do chmury Red Hat, zobacz witrynę sieci Web dostępu do chmury w systemie Red Hat i RHEL na platformie Azure.For more information about eligibility requirements for participating in Red Hat's Cloud Access program, see Red Hat's Cloud Access website and Running RHEL on Azure. Aby poznać sposoby automatyzowania tworzenia obrazów RHEL, zobacz Azure Image Builder.For ways to automate building RHEL images see the Azure Image Builder.

Przygotowywanie maszyny wirtualnej z systemem Red Hat z poziomu Menedżera funkcji Hyper-VPrepare a Red Hat-based virtual machine from Hyper-V Manager

Wymagania wstępnePrerequisites

W tej sekcji założono, że plik ISO został już pobrany z witryny sieci Web firmy Red Hat i został zainstalowany obraz RHEL na wirtualnym dysku twardym (VHD).This section assumes that you have already obtained an ISO file from the Red Hat website and installed the RHEL image to a virtual hard disk (VHD). Aby uzyskać więcej informacji na temat sposobu instalowania obrazu systemu operacyjnego za pomocą Menedżera funkcji Hyper-V, zobacz Instalowanie roli funkcji Hyper-v i Konfigurowanie maszyny wirtualnej.For more details about how to use Hyper-V Manager to install an operating system image, see Install the Hyper-V Role and Configure a Virtual Machine.

RHEL uwagi dotyczące instalacjiRHEL installation notes

  • Platforma Azure nie obsługuje formatu VHDX.Azure does not support the VHDX format. Platforma Azure obsługuje tylko stały dysk VHD.Azure supports only fixed VHD. Można użyć Menedżera funkcji Hyper-V do przekonwertowania dysku na format VHD lub można użyć polecenia cmdlet Convert-VHD.You can use Hyper-V Manager to convert the disk to VHD format, or you can use the convert-vhd cmdlet. Jeśli używasz VirtualBox, wybierz ustalony rozmiar w przeciwieństwie do domyślnej opcji przydzielanej dynamicznie podczas tworzenia dysku.If you use VirtualBox, select Fixed size as opposed to the default dynamically allocated option when you create the disk.
  • Platforma Azure obsługuje Gen1 (BIOS Boot) & Gen2 (UEFI boot) maszyn wirtualnych.Azure supports Gen1 (BIOS boot) & Gen2 (UEFI boot) Virtual machines.
  • Maksymalny rozmiar dozwolony dla wirtualnego dysku twardego to 1 023 GB.The maximum size that's allowed for the VHD is 1,023 GB.
  • Menedżer woluminów logicznych (LVM) jest obsługiwany i może być używany na dysku systemu operacyjnego lub dyskach z danymi w usłudze Azure Virtual Machines.Logical Volume Manager (LVM) is supported and may be used on the OS disk or data disks in Azure virtual machines. Jednak ogólnie zaleca się używanie partycji standardowych na dysku systemu operacyjnego, a nie LVM.However, in general it is recommended to use standard partitions on the OS disk rather than LVM. Ta metoda pozwala uniknąć konfliktów nazw LVM z sklonowanymi maszynami wirtualnymi, szczególnie jeśli kiedykolwiek konieczna jest dołączenie dysku systemu operacyjnego do innej identycznej maszyny wirtualnej w celu rozwiązywania problemów.This practice will avoid LVM name conflicts with cloned virtual machines, particularly if you ever need to attach an operating system disk to another identical virtual machine for troubleshooting. Zobacz również dokumentację LVM i macierz RAID .See also LVM and RAID documentation.
  • Wymagana jest obsługa jądra na potrzeby instalowania systemów plików (UDF) w formacie dysków uniwersalnych.Kernel support for mounting Universal Disk Format (UDF) file systems is required. Podczas pierwszego rozruchu na platformie Azure nośnik sformatowany w formacie UDF, który jest dołączony do gościa, przekazuje konfigurację aprowizacji do maszyny wirtualnej z systemem Linux.At first boot on Azure, the UDF-formatted media that is attached to the guest passes the provisioning configuration to the Linux virtual machine. Agent systemu Azure Linux musi być w stanie zainstalować system plików UDF, aby odczytać jego konfigurację i zainicjować obsługę administracyjną maszyny wirtualnej.The Azure Linux Agent must be able to mount the UDF file system to read its configuration and provision the virtual machine.
  • Nie należy konfigurować partycji wymiany na dysku systemu operacyjnego.Do not configure a swap partition on the operating system disk. Agenta systemu Linux można skonfigurować tak, aby utworzył plik wymiany na tymczasowym dysku zasobów.The Linux Agent can be configured to create a swap file on the temporary resource disk. Więcej informacji na ten temat można znaleźć w poniższych krokach.More information about this can be found in the following steps.
  • Wszystkie wirtualne dyski twarde na platformie Azure muszą mieć rozmiar wirtualny wyrównany do 1 MB.All VHDs on Azure must have a virtual size aligned to 1MB. Podczas konwertowania z dysku surowego na dysk VHD należy upewnić się, że rozmiar dysku surowego jest wielokrotnością 1 MB przed konwersją.When converting from a raw disk to VHD you must ensure that the raw disk size is a multiple of 1MB before conversion. Więcej szczegółów można znaleźć w poniższych krokach.More details can be found in the steps below. Aby uzyskać więcej informacji, zobacz także uwagi dotyczące instalacji systemu Linux .See also Linux Installation Notes for more information.

Przygotowywanie maszyny wirtualnej z systemem RHEL 6 z poziomu Menedżera funkcji Hyper-VPrepare a RHEL 6 virtual machine from Hyper-V Manager

  1. W Menedżerze funkcji Hyper-V wybierz maszynę wirtualną.In Hyper-V Manager, select the virtual machine.

  2. Kliknij przycisk Połącz , aby otworzyć okno konsoli dla maszyny wirtualnej.Click Connect to open a console window for the virtual machine.

  3. W RHEL 6, usługa NetworkManager może zakłócać działanie Agenta platformy Azure w systemie Linux.In RHEL 6, NetworkManager can interfere with the Azure Linux agent. Odinstaluj ten pakiet, uruchamiając następujące polecenie:Uninstall this package by running the following command:

     # sudo rpm -e --nodeps NetworkManager
    
  4. Utwórz lub Edytuj /etc/sysconfig/network plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  5. Utwórz lub Edytuj /etc/sysconfig/network-scripts/ifcfg-eth0 plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

     DEVICE=eth0
     ONBOOT=yes
     BOOTPROTO=dhcp
     TYPE=Ethernet
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
    
  6. Przenieś (lub Usuń) reguły udev, aby uniknąć generowania reguł statycznych dla interfejsu Ethernet.Move (or remove) the udev rules to avoid generating static rules for the Ethernet interface. Te reguły powodują problemy podczas klonowania maszyny wirtualnej w Microsoft Azure lub funkcji Hyper-V:These rules cause problems when you clone a virtual machine in Microsoft Azure or 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. Upewnij się, że usługa sieciowa zacznie działać przy rozruchu, uruchamiając następujące polecenie:Ensure that the network service will start at boot time by running the following command:

     # sudo chkconfig network on
    
  8. Zarejestruj swoją subskrypcję Red Hat, aby włączyć instalację pakietów z repozytorium RHEL, uruchamiając następujące polecenie:Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

     # sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  9. Pakiet WALinuxAgent-<version>WALinuxAgent został wypychany do repozytorium rozszerzeń Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Włącz repozytorium dodatków, uruchamiając następujące polecenie:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  10. Zmodyfikuj wiersz rozruchowy jądra w konfiguracji grub, aby uwzględnić dodatkowe parametry jądra platformy Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Aby to zrobić, Otwórz /boot/grub/menu.lst w edytorze tekstów i upewnij się, że domyślne jądro zawiera następujące parametry:To do this modification, open /boot/grub/menu.lst in a text editor, and ensure that the default kernel includes the following parameters:

     console=ttyS0 earlyprintk=ttyS0 rootdelay=300
    

    Zapewni to również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc w pomocy technicznej platformy Azure z problemami z debugowaniem.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

    Ponadto zalecamy usunięcie następujących parametrów:In addition, we recommended that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie są przydatne w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. W crashkernel razie potrzeby można pozostawić opcję skonfigurowaną.You can leave the crashkernel option configured if desired. Należy zauważyć, że ten parametr zmniejsza ilość dostępnej pamięci w maszynie wirtualnej o 128 MB lub więcej.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more. Ta konfiguracja może być przyczyną problemów w mniejszych rozmiarach maszyn wirtualnych.This configuration might be problematic on smaller virtual machine sizes.

  11. Upewnij się, że serwer Secure Shell (SSH) jest zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu, co zazwyczaj jest ustawieniem domyślnym.Ensure that the secure shell (SSH) server is installed and configured to start at boot time, which is usually the default. Zmodyfikuj sshd_config/etc/ssh/w taki sposób, aby obejmował następujący wiersz:Modify /etc/ssh/sshd_config to include the following line:

     ClientAliveInterval 180
    
  12. Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie:Install the Azure Linux Agent by running the following command:

     # sudo yum install WALinuxAgent
    
     # sudo chkconfig waagent on
    

    Zainstalowanie pakietu WALinuxAgent powoduje usunięcie pakietów i WorkManager-GNOME, jeśli nie zostały one jeszcze usunięte w kroku 3.Installing the WALinuxAgent package removes the NetworkManager and NetworkManager-gnome packages if they were not already removed in step 3.

  13. Nie należy tworzyć obszaru wymiany na dysku systemu operacyjnego.Do not create swap space on the operating system disk.

    Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Należy pamiętać, że lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony w przypadku anulowania aprowizacji maszyny wirtualnej.Note that the local resource disk is a temporary disk and that it might be emptied if the virtual machine is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure w poprzednim kroku zmodyfikuj odpowiednio następujące parametry w/etc/waagent.conf:After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

     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.
    
  14. Wyrejestruj subskrypcję (w razie potrzeby), uruchamiając następujące polecenie:Unregister the subscription (if necessary) by running the following command:

     # sudo subscription-manager unregister
    
  15. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej i przygotować ją do aprowizacji na platformie Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

     # Note: if you are migrating a specific virtual machine and do not wish to create a generalized image,
     # skip the deprovision step
     # sudo waagent -force -deprovision
    
     # export HISTSIZE=0
    
     # logout
    
  16. Kliknij pozycję Akcja > Zamknij w Menedżerze funkcji Hyper-V.Click Action > Shut Down in Hyper-V Manager. Wirtualny dysk twardy z systemem Linux jest teraz gotowy do przekazania na platformę Azure.Your Linux VHD is now ready to be uploaded to Azure.

Przygotowywanie maszyny wirtualnej z systemem RHEL 7 z poziomu Menedżera funkcji Hyper-VPrepare a RHEL 7 virtual machine from Hyper-V Manager

  1. W Menedżerze funkcji Hyper-V wybierz maszynę wirtualną.In Hyper-V Manager, select the virtual machine.

  2. Kliknij przycisk Połącz , aby otworzyć okno konsoli dla maszyny wirtualnej.Click Connect to open a console window for the virtual machine.

  3. Utwórz lub Edytuj /etc/sysconfig/network plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  4. Utwórz lub Edytuj /etc/sysconfig/network-scripts/ifcfg-eth0 plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

     DEVICE=eth0
     ONBOOT=yes
     BOOTPROTO=dhcp
     TYPE=Ethernet
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
    

    PERSISTENT_DHCLIENT = tak NM_CONTROLLED = takPERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes

  5. Upewnij się, że usługa sieciowa zacznie działać przy rozruchu, uruchamiając następujące polecenie:Ensure that the network service will start at boot time by running the following command:

     # sudo systemctl enable network
    
  6. Zarejestruj swoją subskrypcję Red Hat, aby włączyć instalację pakietów z repozytorium RHEL, uruchamiając następujące polecenie:Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

     # sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Zmodyfikuj wiersz rozruchowy jądra w konfiguracji grub, aby uwzględnić dodatkowe parametry jądra platformy Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Aby to zrobić, Otwórz /etc/default/grub w edytorze tekstów i edytuj GRUB_CMDLINE_LINUX parametr.To do this modification, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Przykład:For example:

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

    Zapewni to również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc w pomocy technicznej platformy Azure z problemami z debugowaniem.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Ta konfiguracja wyłącza również nowe konwencje nazewnictwa RHEL 7 dla kart sieciowych.This configuration also turns off the new RHEL 7 naming conventions for NICs. Ponadto zalecamy usunięcie następujących parametrów:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie są przydatne w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. W crashkernel razie potrzeby można pozostawić opcję skonfigurowaną.You can leave the crashkernel option configured if desired. Należy zauważyć, że ten parametr zmniejsza ilość dostępnej pamięci w maszynie wirtualnej o 128 MB lub więcej, co może być przyczyną problemów w mniejszych rozmiarach maszyn wirtualnych.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes.

  8. Po zakończeniu edycji /etc/default/grubUruchom następujące polecenie, aby ponownie skompilować konfigurację grub:After you are done editing /etc/default/grub, run the following command to rebuild the grub configuration:

     # sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  9. Upewnij się, że serwer SSH został zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu, co jest zazwyczaj ustawieniem domyślnym.Ensure that the SSH server is installed and configured to start at boot time, which is usually the default. Zmodyfikuj /etc/ssh/sshd_config , aby uwzględnić następujący wiersz:Modify /etc/ssh/sshd_config to include the following line:

     ClientAliveInterval 180
    
  10. Pakiet WALinuxAgent-<version>WALinuxAgent został wypychany do repozytorium rozszerzeń Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Włącz repozytorium dodatków, uruchamiając następujące polecenie:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie:Install the Azure Linux Agent by running the following command:

     # sudo yum install WALinuxAgent
    
     # sudo systemctl enable waagent.service
    
  12. Nie należy tworzyć obszaru wymiany na dysku systemu operacyjnego.Do not create swap space on the operating system disk.

    Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Należy pamiętać, że lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony, jeśli maszyna wirtualna zostanie anulowana.Note that the local resource disk is a temporary disk, and it might be emptied if the virtual machine is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure w poprzednim kroku zmodyfikuj /etc/waagent.conf odpowiednio następujące parametry:After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

     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.
    
  13. Jeśli chcesz wyrejestrować subskrypcję, uruchom następujące polecenie:If you want to unregister the subscription, run the following command:

     # sudo subscription-manager unregister
    
  14. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej i przygotować ją do aprowizacji na platformie Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

     # Note: if you are migrating a specific virtual machine and do not wish to create a generalized image,
     # skip the deprovision step
     # sudo waagent -force -deprovision
    
     # export HISTSIZE=0
    
     # logout
    
  15. Kliknij pozycję Akcja > Zamknij w Menedżerze funkcji Hyper-V.Click Action > Shut Down in Hyper-V Manager. Wirtualny dysk twardy z systemem Linux jest teraz gotowy do przekazania na platformę Azure.Your Linux VHD is now ready to be uploaded to Azure.

Przygotowywanie maszyny wirtualnej z systemem Red Hat przy użyciu przełącznika KVMPrepare a Red Hat-based virtual machine from KVM

Przygotuj maszynę wirtualną z systemem RHEL 6 przy użyciu przełącznika KVMPrepare a RHEL 6 virtual machine from KVM

  1. Pobierz obraz KVM RHEL 6 z witryny Red Hat.Download the KVM image of RHEL 6 from the Red Hat website.

  2. Ustaw hasło główne.Set a root password.

    Wygeneruj zaszyfrowane hasło i skopiuj dane wyjściowe polecenia:Generate an encrypted password, and copy the output of the command:

     # openssl passwd -1 changeme
    

    Ustaw hasło główne za pomocą guestfish:Set a root password with guestfish:

     # guestfish --rw -a <image-name>
     > <fs> run
     > <fs> list-filesystems
     > <fs> mount /dev/sda1 /
     > <fs> vi /etc/shadow
     > <fs> exit
    

    Zmień drugie pole użytkownika root z "!!"Change the second field of the root user from "!!" na zaszyfrowane hasło.to the encrypted password.

  3. Utwórz maszynę wirtualną w programie KVM z obrazu QCOW2.Create a virtual machine in KVM from the qcow2 image. Ustaw typ dysku na QCOW2, a następnie ustaw model urządzenia wirtualnego interfejsu sieciowego na VirtIO.Set the disk type to qcow2, and set the virtual network interface device model to virtio. Następnie uruchom maszynę wirtualną i zaloguj się jako element główny.Then, start the virtual machine, and sign in as root.

  4. Utwórz lub Edytuj /etc/sysconfig/network plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  5. Utwórz lub Edytuj /etc/sysconfig/network-scripts/ifcfg-eth0 plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

     DEVICE=eth0
     ONBOOT=yes
     BOOTPROTO=dhcp
     TYPE=Ethernet
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
    
  6. Przenieś (lub Usuń) reguły udev, aby uniknąć generowania reguł statycznych dla interfejsu Ethernet.Move (or remove) the udev rules to avoid generating static rules for the Ethernet interface. Te reguły powodują problemy podczas klonowania maszyny wirtualnej na platformie Azure lub funkcji Hyper-V:These rules cause problems when you clone a virtual machine in Azure or 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. Upewnij się, że usługa sieciowa zacznie działać przy rozruchu, uruchamiając następujące polecenie:Ensure that the network service will start at boot time by running the following command:

     # chkconfig network on
    
  8. Zarejestruj swoją subskrypcję Red Hat, aby włączyć instalację pakietów z repozytorium RHEL, uruchamiając następujące polecenie:Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

     # subscription-manager register --auto-attach --username=XXX --password=XXX
    
  9. Zmodyfikuj wiersz rozruchowy jądra w konfiguracji grub, aby uwzględnić dodatkowe parametry jądra platformy Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Aby wykonać tę konfigurację, Otwórz /boot/grub/menu.lst w edytorze tekstów i upewnij się, że domyślne jądro zawiera następujące parametry:To do this configuration, open /boot/grub/menu.lst in a text editor, and ensure that the default kernel includes the following parameters:

     console=ttyS0 earlyprintk=ttyS0 rootdelay=300
    

    Zapewni to również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc w pomocy technicznej platformy Azure z problemami z debugowaniem.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

    Ponadto zalecamy usunięcie następujących parametrów:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie są przydatne w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. W crashkernel razie potrzeby można pozostawić opcję skonfigurowaną.You can leave the crashkernel option configured if desired. Należy zauważyć, że ten parametr zmniejsza ilość dostępnej pamięci w maszynie wirtualnej o 128 MB lub więcej, co może być przyczyną problemów w mniejszych rozmiarach maszyn wirtualnych.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes.

  10. Dodawanie modułów funkcji Hyper-V do initramfs:Add Hyper-V modules to initramfs:

    Edytuj /etc/dracut.confi Dodaj następującą zawartość:Edit /etc/dracut.conf, and add the following content:

     add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs ponownego kompilowania:Rebuild initramfs:

     # dracut -f -v
    
  11. Odinstalowywanie usługi Cloud-init:Uninstall cloud-init:

     # yum remove cloud-init
    
  12. Upewnij się, że serwer SSH został zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu:Ensure that the SSH server is installed and configured to start at boot time:

     # chkconfig sshd on
    

    Zmodyfikuj sshd_config/etc/ssh/, aby uwzględnić następujące wiersze:Modify /etc/ssh/sshd_config to include the following lines:

     PasswordAuthentication yes
     ClientAliveInterval 180
    
  13. Pakiet WALinuxAgent-<version>WALinuxAgent został wypychany do repozytorium rozszerzeń Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Włącz repozytorium dodatków, uruchamiając następujące polecenie:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  14. Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie:Install the Azure Linux Agent by running the following command:

     # yum install WALinuxAgent
    
     # chkconfig waagent on
    
  15. Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Należy pamiętać, że lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony, jeśli maszyna wirtualna zostanie anulowana.Note that the local resource disk is a temporary disk, and it might be emptied if the virtual machine is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure w poprzednim kroku zmodyfikuj odpowiednio następujące parametry w /etc/waagent.conf :After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

     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.
    
  16. Wyrejestruj subskrypcję (w razie potrzeby), uruchamiając następujące polecenie:Unregister the subscription (if necessary) by running the following command:

     # subscription-manager unregister
    
  17. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej i przygotować ją do aprowizacji na platformie Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

     # Note: if you are migrating a specific virtual machine and do not wish to create a generalized image,
     # skip the deprovision step
     # waagent -force -deprovision
    
     # export HISTSIZE=0
    
     # logout
    
  18. Zamknij maszynę wirtualną w programie KVM.Shut down the virtual machine in KVM.

  19. Przekonwertuj obraz QCOW2 na format VHD.Convert the qcow2 image to the VHD format.

Uwaga

W wersjach QEMU-IMG występuje znany błąd >= 2.2.1, który powoduje niewłaściwie sformatowany dysk VHD.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Problem został rozwiązany w QEMU 2,6.The issue has been fixed in QEMU 2.6. Zaleca się użycie opcji QEMU-IMG 2.2.0 lub Lower lub aktualizację do wersji 2,6 lub nowszej.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Odwołanie: https://bugs.launchpad.net/qemu/+bug/1490611.Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

First convert the image to raw format:

    # qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw

Make sure that the size of the raw image is aligned with 1 MB. Otherwise, round up the size to align with 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))
    # qemu-img resize rhel-6.9.raw $rounded_size

Convert the raw disk to a fixed-sized VHD:

    # qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd

Or, with qemu version **2.6+** include the `force_size` option:

    # qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd

    

Przygotuj maszynę wirtualną z systemem RHEL 7 przy użyciu przełącznika KVMPrepare a RHEL 7 virtual machine from KVM

  1. Pobierz obraz KVM RHEL 7 z witryny Red Hat.Download the KVM image of RHEL 7 from the Red Hat website. Ta procedura powoduje użycie RHEL 7 jako przykładu.This procedure uses RHEL 7 as the example.

  2. Ustaw hasło główne.Set a root password.

    Wygeneruj zaszyfrowane hasło i skopiuj dane wyjściowe polecenia:Generate an encrypted password, and copy the output of the command:

     # openssl passwd -1 changeme
    

    Ustaw hasło główne za pomocą guestfish:Set a root password with guestfish:

     # guestfish --rw -a <image-name>
     > <fs> run
     > <fs> list-filesystems
     > <fs> mount /dev/sda1 /
     > <fs> vi /etc/shadow
     > <fs> exit
    

    Zmień drugie pole użytkownika root z "!!"Change the second field of root user from "!!" na zaszyfrowane hasło.to the encrypted password.

  3. Utwórz maszynę wirtualną w programie KVM z obrazu QCOW2.Create a virtual machine in KVM from the qcow2 image. Ustaw typ dysku na QCOW2, a następnie ustaw model urządzenia wirtualnego interfejsu sieciowego na VirtIO.Set the disk type to qcow2, and set the virtual network interface device model to virtio. Następnie uruchom maszynę wirtualną i zaloguj się jako element główny.Then, start the virtual machine, and sign in as root.

  4. Utwórz lub Edytuj /etc/sysconfig/network plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  5. Utwórz lub Edytuj /etc/sysconfig/network-scripts/ifcfg-eth0 plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

     DEVICE=eth0
     ONBOOT=yes
     BOOTPROTO=dhcp
     TYPE=Ethernet
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
    

    PERSISTENT_DHCLIENT = tak NM_CONTROLLED = takPERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes

  6. Upewnij się, że usługa sieciowa zacznie działać przy rozruchu, uruchamiając następujące polecenie:Ensure that the network service will start at boot time by running the following command:

     # sudo systemctl enable network
    
  7. Zarejestruj swoją subskrypcję Red Hat, aby włączyć instalację pakietów z repozytorium RHEL, uruchamiając następujące polecenie:Register your Red Hat subscription to enable installation of packages from the RHEL repository by running the following command:

     # subscription-manager register --auto-attach --username=XXX --password=XXX
    
  8. Zmodyfikuj wiersz rozruchowy jądra w konfiguracji grub, aby uwzględnić dodatkowe parametry jądra platformy Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Aby wykonać tę konfigurację, Otwórz /etc/default/grub w edytorze tekstów i edytuj GRUB_CMDLINE_LINUX parametr.To do this configuration, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Przykład:For example:

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

    To polecenie gwarantuje również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc w pomocy technicznej platformy Azure z problemami z debugowaniem.This command also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Polecenie wyłącza również nowe konwencje nazewnictwa RHEL 7 dla kart sieciowych.The command also turns off the new RHEL 7 naming conventions for NICs. Ponadto zalecamy usunięcie następujących parametrów:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie są przydatne w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. W crashkernel razie potrzeby można pozostawić opcję skonfigurowaną.You can leave the crashkernel option configured if desired. Należy zauważyć, że ten parametr zmniejsza ilość dostępnej pamięci w maszynie wirtualnej o 128 MB lub więcej, co może być przyczyną problemów w mniejszych rozmiarach maszyn wirtualnych.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes.

  9. Po zakończeniu edycji /etc/default/grubUruchom następujące polecenie, aby ponownie skompilować konfigurację grub:After you are done editing /etc/default/grub, run the following command to rebuild the grub configuration:

     # grub2-mkconfig -o /boot/grub2/grub.cfg
    
  10. Dodawanie modułów funkcji Hyper-V do initramfs.Add Hyper-V modules into initramfs.

    Edytuj /etc/dracut.conf i Dodaj zawartość:Edit /etc/dracut.conf and add content:

     add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs ponownego kompilowania:Rebuild initramfs:

     # dracut -f -v
    
  11. Odinstalowywanie usługi Cloud-init:Uninstall cloud-init:

     # yum remove cloud-init
    
  12. Upewnij się, że serwer SSH został zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu:Ensure that the SSH server is installed and configured to start at boot time:

     # systemctl enable sshd
    

    Zmodyfikuj sshd_config/etc/ssh/, aby uwzględnić następujące wiersze:Modify /etc/ssh/sshd_config to include the following lines:

     PasswordAuthentication yes
     ClientAliveInterval 180
    
  13. Pakiet WALinuxAgent-<version>WALinuxAgent został wypychany do repozytorium rozszerzeń Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Włącz repozytorium dodatków, uruchamiając następujące polecenie:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  14. Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie:Install the Azure Linux Agent by running the following command:

     # yum install WALinuxAgent
    

    Włącz usługę waagent:Enable the waagent service:

     # systemctl enable waagent.service
    
  15. Nie należy tworzyć obszaru wymiany na dysku systemu operacyjnego.Do not create swap space on the operating system disk.

    Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Należy pamiętać, że lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony, jeśli maszyna wirtualna zostanie anulowana.Note that the local resource disk is a temporary disk, and it might be emptied if the virtual machine is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure w poprzednim kroku zmodyfikuj /etc/waagent.conf odpowiednio następujące parametry:After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

     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.
    
  16. Wyrejestruj subskrypcję (w razie potrzeby), uruchamiając następujące polecenie:Unregister the subscription (if necessary) by running the following command:

     # subscription-manager unregister
    
  17. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej i przygotować ją do aprowizacji na platformie Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

     # Note: if you are migrating a specific virtual machine and do not wish to create a generalized image,
     # skip the deprovision step
     # sudo waagent -force -deprovision
    
     # export HISTSIZE=0
    
     # logout
    
  18. Zamknij maszynę wirtualną w programie KVM.Shut down the virtual machine in KVM.

  19. Przekonwertuj obraz QCOW2 na format VHD.Convert the qcow2 image to the VHD format.

Uwaga

W wersjach QEMU-IMG występuje znany błąd >= 2.2.1, który powoduje niewłaściwie sformatowany dysk VHD.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Problem został rozwiązany w QEMU 2,6.The issue has been fixed in QEMU 2.6. Zaleca się użycie opcji QEMU-IMG 2.2.0 lub Lower lub aktualizację do wersji 2,6 lub nowszej.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Odwołanie: https://bugs.launchpad.net/qemu/+bug/1490611.Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

First convert the image to raw format:

    # qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw

Make sure that the size of the raw image is aligned with 1 MB. Otherwise, round up the size to align with 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))
    # qemu-img resize rhel-7.4.raw $rounded_size

Convert the raw disk to a fixed-sized VHD:

    # qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd

Or, with qemu version **2.6+** include the `force_size` option:

    # qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd

Przygotowywanie maszyny wirtualnej z systemem Red Hat przy użyciu oprogramowania VMwarePrepare a Red Hat-based virtual machine from VMware

Wymagania wstępnePrerequisites

W tej sekcji założono, że zainstalowano już maszynę wirtualną RHEL w oprogramowaniu VMware.This section assumes that you have already installed a RHEL virtual machine in VMware. Aby uzyskać szczegółowe informacje na temat sposobu instalowania systemu operacyjnego w oprogramowaniu VMware, zobacz Przewodnik instalacji systemu operacyjnego gościa programu VMware.For details about how to install an operating system in VMware, see VMware Guest Operating System Installation Guide.

  • W przypadku instalowania systemu operacyjnego Linux zaleca się używanie partycji standardowych zamiast LVM, co jest często domyślne dla wielu instalacji.When you install the Linux operating system, we recommend that you use standard partitions rather than LVM, which is often the default for many installations. Pozwoli to uniknąć konfliktów nazw LVM z sklonowaną maszyną wirtualną, szczególnie jeśli dysk systemu operacyjnego kiedykolwiek trzeba dołączyć do innej maszyny wirtualnej w celu rozwiązywania problemów.This will avoid LVM name conflicts with cloned virtual machine, particularly if an operating system disk ever needs to be attached to another virtual machine for troubleshooting. LVM lub RAID można używać na dyskach danych, jeśli są preferowane.LVM or RAID can be used on data disks if preferred.
  • Nie należy konfigurować partycji wymiany na dysku systemu operacyjnego.Do not configure a swap partition on the operating system disk. Agenta systemu Linux można skonfigurować w taki sposób, aby utworzyć plik wymiany na tymczasowym dysku zasobów.You can configure the Linux agent to create a swap file on the temporary resource disk. Więcej informacji na ten temat można znaleźć w kolejnych krokach.You can find more information about this in the steps that follow.
  • Podczas tworzenia wirtualnego dysku twardego wybierz opcję przechowuj dysk wirtualny jako pojedynczy plik.When you create the virtual hard disk, select Store virtual disk as a single file.

Przygotuj maszynę wirtualną z systemem RHEL 6 z programu VMwarePrepare a RHEL 6 virtual machine from VMware

  1. W RHEL 6, usługa NetworkManager może zakłócać działanie Agenta platformy Azure w systemie Linux.In RHEL 6, NetworkManager can interfere with the Azure Linux agent. Odinstaluj ten pakiet, uruchamiając następujące polecenie:Uninstall this package by running the following command:

     # sudo rpm -e --nodeps NetworkManager
    
  2. Utwórz plik o nazwie Network w katalogu/etc/sysconfig/, który zawiera następujący tekst:Create a file named network in the /etc/sysconfig/ directory that contains the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  3. Utwórz lub Edytuj /etc/sysconfig/network-scripts/ifcfg-eth0 plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

     DEVICE=eth0
     ONBOOT=yes
     BOOTPROTO=dhcp
     TYPE=Ethernet
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
    
  4. Przenieś (lub Usuń) reguły udev, aby uniknąć generowania reguł statycznych dla interfejsu Ethernet.Move (or remove) the udev rules to avoid generating static rules for the Ethernet interface. Te reguły powodują problemy podczas klonowania maszyny wirtualnej na platformie Azure lub funkcji Hyper-V:These rules cause problems when you clone a virtual machine in Azure or 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
    
  5. Upewnij się, że usługa sieciowa zacznie działać przy rozruchu, uruchamiając następujące polecenie:Ensure that the network service will start at boot time by running the following command:

     # sudo chkconfig network on
    
  6. Zarejestruj swoją subskrypcję Red Hat, aby włączyć instalację pakietów z repozytorium RHEL, uruchamiając następujące polecenie:Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

     # sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Pakiet WALinuxAgent-<version>WALinuxAgent został wypychany do repozytorium rozszerzeń Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Włącz repozytorium dodatków, uruchamiając następujące polecenie:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  8. Zmodyfikuj wiersz rozruchowy jądra w konfiguracji grub, aby uwzględnić dodatkowe parametry jądra platformy Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Aby to zrobić, Otwórz /etc/default/grub w edytorze tekstów i edytuj GRUB_CMDLINE_LINUX parametr.To do this, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Przykład:For example:

     GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0"
    

    Zapewni to również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc w pomocy technicznej platformy Azure z problemami z debugowaniem.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Ponadto zalecamy usunięcie następujących parametrów:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie są przydatne w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. W crashkernel razie potrzeby można pozostawić opcję skonfigurowaną.You can leave the crashkernel option configured if desired. Należy zauważyć, że ten parametr zmniejsza ilość dostępnej pamięci w maszynie wirtualnej o 128 MB lub więcej, co może być przyczyną problemów w mniejszych rozmiarach maszyn wirtualnych.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes.

  9. Dodawanie modułów funkcji Hyper-V do initramfs:Add Hyper-V modules to initramfs:

    Edytuj /etc/dracut.confi Dodaj następującą zawartość:Edit /etc/dracut.conf, and add the following content:

     add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs ponownego kompilowania:Rebuild initramfs:

     # dracut -f -v
    
  10. Upewnij się, że serwer SSH został zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu, co jest zazwyczaj ustawieniem domyślnym.Ensure that the SSH server is installed and configured to start at boot time, which is usually the default. Zmodyfikuj /etc/ssh/sshd_config , aby uwzględnić następujący wiersz:Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180ClientAliveInterval 180

  11. Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie:Install the Azure Linux Agent by running the following command:

     # sudo yum install WALinuxAgent
    
     # sudo chkconfig waagent on
    
  12. Nie należy tworzyć obszaru wymiany na dysku systemu operacyjnego.Do not create swap space on the operating system disk.

    Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Należy pamiętać, że lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony, jeśli maszyna wirtualna zostanie anulowana.Note that the local resource disk is a temporary disk, and it might be emptied if the virtual machine is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure w poprzednim kroku zmodyfikuj /etc/waagent.conf odpowiednio następujące parametry:After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

     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.
    
  13. Wyrejestruj subskrypcję (w razie potrzeby), uruchamiając następujące polecenie:Unregister the subscription (if necessary) by running the following command:

     # sudo subscription-manager unregister
    
  14. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej i przygotować ją do aprowizacji na platformie Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

     # Note: if you are migrating a specific virtual machine and do not wish to create a generalized image,
     # skip the deprovision step
     # sudo waagent -force -deprovision
    
     # export HISTSIZE=0
    
     # logout
    
  15. Zamknij maszynę wirtualną i przekonwertuj plik VMDK na plik VHD.Shut down the virtual machine, and convert the VMDK file to a .vhd file.

Uwaga

W wersjach QEMU-IMG występuje znany błąd >= 2.2.1, który powoduje niewłaściwie sformatowany dysk VHD.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Problem został rozwiązany w QEMU 2,6.The issue has been fixed in QEMU 2.6. Zaleca się użycie opcji QEMU-IMG 2.2.0 lub Lower lub aktualizację do wersji 2,6 lub nowszej.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Odwołanie: https://bugs.launchpad.net/qemu/+bug/1490611.Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

First convert the image to raw format:

    # qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw

Make sure that the size of the raw image is aligned with 1 MB. Otherwise, round up the size to align with 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))
    # qemu-img resize rhel-6.9.raw $rounded_size

Convert the raw disk to a fixed-sized VHD:

    # qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd

Or, with qemu version **2.6+** include the `force_size` option:

    # qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd

Przygotuj maszynę wirtualną z systemem RHEL 7 z programu VMwarePrepare a RHEL 7 virtual machine from VMware

  1. Utwórz lub Edytuj /etc/sysconfig/network plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  2. Utwórz lub Edytuj /etc/sysconfig/network-scripts/ifcfg-eth0 plik i Dodaj następujący tekst:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

     DEVICE=eth0
     ONBOOT=yes
     BOOTPROTO=dhcp
     TYPE=Ethernet
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
    

    PERSISTENT_DHCLIENT = tak NM_CONTROLLED = takPERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes

  3. Upewnij się, że usługa sieciowa zacznie działać przy rozruchu, uruchamiając następujące polecenie:Ensure that the network service will start at boot time by running the following command:

     # sudo systemctl enable network
    
  4. Zarejestruj swoją subskrypcję Red Hat, aby włączyć instalację pakietów z repozytorium RHEL, uruchamiając następujące polecenie:Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

     # sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  5. Zmodyfikuj wiersz rozruchowy jądra w konfiguracji grub, aby uwzględnić dodatkowe parametry jądra platformy Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Aby to zrobić, Otwórz /etc/default/grub w edytorze tekstów i edytuj GRUB_CMDLINE_LINUX parametr.To do this modification, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Przykład:For example:

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

    Ta konfiguracja zapewnia również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc w pomocy technicznej platformy Azure z problemami z debugowaniem.This configuration also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Wyłącza również nowe konwencje nazewnictwa RHEL 7 dla kart sieciowych.It also turns off the new RHEL 7 naming conventions for NICs. Ponadto zalecamy usunięcie następujących parametrów:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie są przydatne w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. W crashkernel razie potrzeby można pozostawić opcję skonfigurowaną.You can leave the crashkernel option configured if desired. Należy zauważyć, że ten parametr zmniejsza ilość dostępnej pamięci w maszynie wirtualnej o 128 MB lub więcej, co może być przyczyną problemów w mniejszych rozmiarach maszyn wirtualnych.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes.

  6. Po zakończeniu edycji /etc/default/grubUruchom następujące polecenie, aby ponownie skompilować konfigurację grub:After you are done editing /etc/default/grub, run the following command to rebuild the grub configuration:

     # sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  7. Dodaj moduły funkcji Hyper-V do initramfs.Add Hyper-V modules to initramfs.

    Edytuj /etc/dracut.conf, Dodaj zawartość:Edit /etc/dracut.conf, add content:

     add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs ponownego kompilowania:Rebuild initramfs:

     # dracut -f -v
    
  8. Upewnij się, że serwer SSH został zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu.Ensure that the SSH server is installed and configured to start at boot time. To ustawienie jest zwykle domyślnie.This setting is usually the default. Zmodyfikuj /etc/ssh/sshd_config , aby uwzględnić następujący wiersz:Modify /etc/ssh/sshd_config to include the following line:

     ClientAliveInterval 180
    
  9. Pakiet WALinuxAgent-<version>WALinuxAgent został wypychany do repozytorium rozszerzeń Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Włącz repozytorium dodatków, uruchamiając następujące polecenie:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  10. Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie:Install the Azure Linux Agent by running the following command:

     # sudo yum install WALinuxAgent
    
     # sudo systemctl enable waagent.service
    
  11. Nie należy tworzyć obszaru wymiany na dysku systemu operacyjnego.Do not create swap space on the operating system disk.

    Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Należy pamiętać, że lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony, jeśli maszyna wirtualna zostanie anulowana.Note that the local resource disk is a temporary disk, and it might be emptied if the virtual machine is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure w poprzednim kroku zmodyfikuj /etc/waagent.conf odpowiednio następujące parametry:After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

     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.
    
  12. Jeśli chcesz wyrejestrować subskrypcję, uruchom następujące polecenie:If you want to unregister the subscription, run the following command:

     # sudo subscription-manager unregister
    
  13. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej i przygotować ją do aprowizacji na platformie Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

     # Note: if you are migrating a specific virtual machine and do not wish to create a generalized image,
     # skip the deprovision step
     # sudo waagent -force -deprovision
    
     # export HISTSIZE=0
    
     # logout
    
  14. Zamknij maszynę wirtualną i przekonwertuj plik VMDK na format VHD.Shut down the virtual machine, and convert the VMDK file to the VHD format.

Uwaga

W wersjach QEMU-IMG występuje znany błąd >= 2.2.1, który powoduje niewłaściwie sformatowany dysk VHD.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Problem został rozwiązany w QEMU 2,6.The issue has been fixed in QEMU 2.6. Zaleca się użycie opcji QEMU-IMG 2.2.0 lub Lower lub aktualizację do wersji 2,6 lub nowszej.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Odwołanie: https://bugs.launchpad.net/qemu/+bug/1490611.Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

First convert the image to raw format:

    # qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw

Make sure that the size of the raw image is aligned with 1 MB. Otherwise, round up the size to align with 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))
    # qemu-img resize rhel-7.4.raw $rounded_size

Convert the raw disk to a fixed-sized VHD:

    # qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd

Or, with qemu version **2.6+** include the `force_size` option:

    # qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd

Przygotuj maszynę wirtualną z systemem Red Hat z poziomu obrazu ISO przy użyciu pliku Stwórz automatyczniePrepare a Red Hat-based virtual machine from an ISO by using a kickstart file automatically

Przygotuj maszynę wirtualną z systemem RHEL 7 z pliku StwórzPrepare a RHEL 7 virtual machine from a kickstart file

  1. Utwórz plik Stwórz zawierający poniższą zawartość i Zapisz plik.Create a kickstart file that includes the following content, and save the file. Szczegółowe informacje o instalacji Stwórz można znaleźć w podręczniku instalacji Stwórz.For details about kickstart installation, see the Kickstart Installation Guide.

    # Kickstart for provisioning a RHEL 7 Azure VM
    
    # System authorization information
      auth --enableshadow --passalgo=sha512
    
    # Use graphical install
    text
    
    # Do not 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
    
    # Disable the root account
    usermod root -p '!!'
    
    # Configure swap in WALinuxAgent
    sed -i 's/^\(ResourceDisk\.EnableSwap\)=[Nn]$/\1=y/g' /etc/waagent.conf
    sed -i 's/^\(ResourceDisk\.SwapSizeMB\)=[0-9]*$/\1=2048/g' /etc/waagent.conf
    
    # Set the cmdline
    sed -i 's/^\(GRUB_CMDLINE_LINUX\)=".*"$/\1="console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"/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 EOFPERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes EOF

    # Deprovision and prepare for Azure if you are creating a generalized image
    waagent -force -deprovision
    
    %end
    
  2. Umieść plik Stwórz, do którego system instalacyjny może uzyskać do niego dostęp.Place the kickstart file where the installation system can access it.

  3. W Menedżerze funkcji Hyper-V Utwórz nową maszynę wirtualną.In Hyper-V Manager, create a new virtual machine. Na stronie Podłączanie wirtualnego dysku twardego wybierz pozycję Dołącz wirtualny dysk twardy późnieji Ukończ pracę Kreatora nowej maszyny wirtualnej.On the Connect Virtual Hard Disk page, select Attach a virtual hard disk later, and complete the New Virtual Machine Wizard.

  4. Otwórz ustawienia maszyny wirtualnej:Open the virtual machine settings:

    a.a. Dołącz nowy wirtualny dysk twardy do maszyny wirtualnej.Attach a new virtual hard disk to the virtual machine. Upewnij się, że wybrano format VHD i ustalony rozmiar.Make sure to select VHD Format and Fixed Size.

    b.b. Dołącz instalację ISO do stacji dysków DVD.Attach the installation ISO to the DVD drive.

    c.c. Ustaw rozruch systemu BIOS z dysku CD.Set the BIOS to boot from CD.

  5. Uruchom maszynę wirtualną.Start the virtual machine. Po wyświetleniu przewodnika instalacji naciśnij klawisz Tab , aby skonfigurować opcje rozruchu.When the installation guide appears, press Tab to configure the boot options.

  6. Wprowadź inst.ks=<the location of the kickstart file> na końcu opcji rozruchu i naciśnij klawisz Enter.Enter inst.ks=<the location of the kickstart file> at the end of the boot options, and press Enter.

  7. Poczekaj na zakończenie instalacji.Wait for the installation to finish. Po zakończeniu maszyna wirtualna zostanie automatycznie wyłączona.When it's finished, the virtual machine will be shut down automatically. Wirtualny dysk twardy z systemem Linux jest teraz gotowy do przekazania na platformę Azure.Your Linux VHD is now ready to be uploaded to Azure.

Znane problemyKnown issues

Nie można uwzględnić sterownika funkcji Hyper-V na początkowym dysku RAM w przypadku korzystania z funkcji hypervisor innej niż Hyper-VThe Hyper-V driver could not be included in the initial RAM disk when using a non-Hyper-V hypervisor

W niektórych przypadkach Instalatorzy systemu Linux mogą nie uwzględniać sterowników funkcji Hyper-V na początkowym dysku RAM (oryginalnych initrd lub initramfs), chyba że system Linux wykryje, że jest uruchomiony w środowisku funkcji Hyper-V.In some cases, Linux installers might not include the drivers for Hyper-V in the initial RAM disk (initrd or initramfs) unless Linux detects that it is running in a Hyper-V environment.

W przypadku korzystania z innego systemu wirtualizacji (czyli VirtualBox, Xen itp.) w celu przygotowania obrazu systemu Linux może być konieczne odbudowanie oryginalnych initrd w celu upewnienia się, że na początkowym dysku RAM są dostępne co najmniej hv_vmbus i hv_storvsc modułów jądra.When you're using a different virtualization system (that is, VirtualBox, Xen, etc.) to prepare your Linux image, you might need to rebuild initrd to ensure that at least the hv_vmbus and hv_storvsc kernel modules are available on the initial RAM disk. Jest to znany problem co najmniej w systemach opartych na systemie z rozkładem Red Hat.This is a known issue at least on systems that are based on the upstream Red Hat distribution.

Aby rozwiązać ten problem, Dodaj moduły funkcji Hyper-V do initramfs i Skompiluj ponownie:To resolve this issue, add Hyper-V modules to initramfs and rebuild it:

Edytuj /etc/dracut.confi Dodaj następującą zawartość:Edit /etc/dracut.conf, and add the following content:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "

Initramfs ponownego kompilowania:Rebuild initramfs:

    # dracut -f -v

Aby uzyskać więcej informacji, zobacz informacje o odbudowywaniu initramfs.For more details, see the information about rebuilding initramfs.

Następne krokiNext steps

  • Teraz możesz przystąpić do korzystania z Red Hat Enterprise Linux wirtualnego dysku twardego w celu utworzenia nowych maszyn wirtualnych na platformie Azure.You're now ready to use your Red Hat Enterprise Linux virtual hard disk to create new virtual machines in Azure. Jeśli przekazujesz plik VHD na platformę Azure po raz pierwszy, zobacz Tworzenie maszyny wirtualnej z systemem Linux z dysku niestandardowego.If this is the first time that you're uploading the .vhd file to Azure, see Create a Linux VM from a custom disk.
  • Aby uzyskać więcej informacji na temat funkcji hypervisor certyfikowanych do uruchamiania Red Hat Enterprise Linux, zobacz witrynę sieci Web Red Hat.For more details about the hypervisors that are certified to run Red Hat Enterprise Linux, see the Red Hat website.
  • Aby dowiedzieć się więcej o korzystaniu z gotowych do produkcji obrazów RHEL BYOS, przejdź do strony dokumentacji dla BYOS.To learn more about using production-ready RHEL BYOS images, go to the documentation page for BYOS.