Preparare una macchina virtuale basata su RedHat per AzurePrepare a Red Hat-based virtual machine for Azure

In questo articolo verrà descritto come preparare una macchina virtuale Red Hat Enterprise Linux (RHEL) per l'utilizzo in Azure.In this article, you will learn how to prepare a Red Hat Enterprise Linux (RHEL) virtual machine for use in Azure. Le versioni di RHEL trattate in questo articolo sono la 6.7+ e la 7.1+.The versions of RHEL that are covered in this article are 6.7+ and 7.1+. Gli hypervisor per la preparazione illustrati in questo articolo sono Hyper-V, KVM (Kernel-based Virtual Machine) e VMware.The hypervisors for preparation that are covered in this article are Hyper-V, kernel-based virtual machine (KVM), and VMware. Per altre informazioni sui requisiti di idoneità per partecipare al programma di accesso al cloud di Red Hat, vedere gli articoli relativi al sito web di accesso al cloud di Red Hat e all'esecuzione di RHEL in 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.

Preparare una macchina virtuale basata su Red Hat dalla console di gestione di Hyper-VPrepare a Red Hat-based virtual machine from Hyper-V Manager

prerequisitiPrerequisites

In questa sezione si presuppone che si sia già ottenuto un file ISO dal sito Web Red Hat e che sia già stata installata un'immagine RHEL in un disco rigido virtuale (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). Per altri dettagli su come usare la console di gestione di Hyper-V per installare un'immagine del sistema operativo, vedere l'articolo su come installare il ruolo Hyper-V e configurare una macchina virtuale.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.

Note sull'installazione di RHELRHEL installation notes

  • Azure non supporta il formato VHDX.Azure does not support the VHDX format. Azure supporta solo dischi rigidi virtuali a dimensione fissa.Azure supports only fixed VHD. È possibile usare la console di gestione di Hyper-V o il cmdlet convert-vhd per convertire il disco in formato VHD.You can use Hyper-V Manager to convert the disk to VHD format, or you can use the convert-vhd cmdlet. Se si usa VirtualBox, durante la creazione del disco selezionare Fixed size (A dimensione fissa) anziché l'opzione predefinita di allocazione dinamica.If you use VirtualBox, select Fixed size as opposed to the default dynamically allocated option when you create the disk.
  • Azure supporta solo macchine virtuali di prima generazione.Azure supports only generation 1 virtual machines. È possibile convertire una macchina virtuale di prima generazione da VHDX al formato di file VHD e da disco a espansione dinamica a disco a dimensione fissa.You can convert a generation 1 virtual machine from VHDX to the VHD file format and from dynamically expanding to a fixed-size disk. Non è possibile modificare la generazione di una macchina virtuale.You can't change a virtual machine's generation. Per altre informazioni, vedere Creare una macchina virtuale di generazione 1 o 2 in Hyper-V?For more information, see Should I create a generation 1 or 2 virtual machine in Hyper-V?.
  • La dimensione massima consentita per il disco rigido virtuale è 1.023 GB.The maximum size that's allowed for the VHD is 1,023 GB.
  • Quando si installa il sistema operativo Linux è consigliabile usare partizioni standard anziché LVM (Logical Volume Manager), che è spesso l'impostazione predefinita per numerose installazioni.When you install the Linux operating system, we recommend that you use standard partitions rather than Logical Volume Manager (LVM), which is often the default for many installations. Questa procedura consentirà di evitare conflitti di nome LVM con le macchine virtuali clonate, in particolare se fosse eventualmente necessario collegare un disco del sistema operativo a un'altra macchina virtuale identica per la risoluzione dei problemi.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. È possibile usare LVM o RAID su dischi di dati.LVM or RAID may be used on data disks.
  • Per montare file system UDF (Universal Disk Format) è necessario il supporto del kernel.Kernel support for mounting Universal Disk Format (UDF) file systems is required. Al primo avvio in Azure, i supporti con formattazione UDF collegati al guest passano la configurazione di provisioning alla macchina virtuale 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. L'agente Linux di Azure deve poter montare il file system UDF per leggerne la configurazione ed effettuare il provisioning della macchina virtuale.The Azure Linux Agent must be able to mount the UDF file system to read its configuration and provision the virtual machine.
  • Le versioni del kernel Linux precedenti alla 2.6.37 non supportano l'accesso non uniforme alla memoria (NUMA) in Hyper-V con macchine virtuali di dimensioni superiori.Versions of the Linux kernel that are earlier than 2.6.37 do not support non-uniform memory access (NUMA) on Hyper-V with larger virtual machine sizes. Questo problema influisce principalmente sulle distribuzioni precedenti che usano il kernel upstream Red Hat 2.6.32 ed è stato risolto in RHEL 6.6 (kernel-2.6.32-504).This issue primarily impacts older distributions that use the upstream Red Hat 2.6.32 kernel and was fixed in RHEL 6.6 (kernel-2.6.32-504). Nei sistemi che eseguono kernel personalizzati precedenti alla versione 2.6.37 o kernel basati su RHEL precedenti alla versione 2.6.32-504 deve essere impostato il parametro di avvio numa=off nella riga di comando del kernel in grub.conf.Systems that run custom kernels that are older than 2.6.37 or RHEL-based kernels that are older than 2.6.32-504 must set the numa=off boot parameter on the kernel command line in grub.conf. Per altre informazioni, vedere l'articolo KB 436883 di Red Hat.For more information, see Red Hat KB 436883.
  • Non configurare una partizione di swapping sul disco del sistema operativo.Do not configure a swap partition on the operating system disk. L'agente Linux può essere configurato in modo da creare un file di scambio sul disco risorse temporaneo.The Linux Agent can be configured to create a swap file on the temporary resource disk. Altre informazioni su questo argomento sono disponibili nei passaggi riportati di seguito.More information about this can be found in the following steps.
  • Le dimensioni virtuali di tutti i dischi rigidi virtuali su Azure devono essere allineate a 1 MB.All VHDs on Azure must have a virtual size aligned to 1MB. Quando si converte un disco non formattato in un disco rigido virtuale, prima della conversione è necessario assicurarsi che le dimensioni del disco non formattato siano un multiplo di 1 MB.When converting from a raw disk to VHD you must ensure that the raw disk size is a multiple of 1MB before conversion. Altri dettagli sono disponibili nelle procedure seguenti.More details can be found in the steps below. Per altre informazioni, vedere anche Note sull'installazione di Linux.See also Linux Installation Notes for more information.

Preparare una macchina virtuale RHEL 6 dalla console di gestione di Hyper-VPrepare a RHEL 6 virtual machine from Hyper-V Manager

  1. Nella console di gestione di Hyper-V selezionare la macchina virtuale.In Hyper-V Manager, select the virtual machine.

  2. Fare clic su Connetti per aprire una finestra della console per la macchina virtuale.Click Connect to open a console window for the virtual machine.

  3. In RHEL 6, NetworkManager può interferire con l'agente Linux di Azure.In RHEL 6, NetworkManager can interfere with the Azure Linux agent. Disinstallare il pacchetto eseguendo questo comando:Uninstall this package by running the following command:

     # sudo rpm -e --nodeps NetworkManager
    
  4. Creare o modificare il file /etc/sysconfig/network e aggiungere il testo seguente:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  5. Creare o modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungere il testo seguente: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. Spostare o eliminare le regole udev per evitare la generazione di regole statiche per l'interfaccia Ethernet.Move (or remove) the udev rules to avoid generating static rules for the Ethernet interface. Le regole seguenti provocano problemi quando si clona una macchina virtuale in Microsoft Azure o 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. Assicurarsi che il servizio di rete venga eseguito all'avvio attivando il comando seguente:Ensure that the network service will start at boot time by running the following command:

     # sudo chkconfig network on
    
  8. Registrare la propria sottoscrizione Red Hat per abilitare l'installazione dei pacchetti dall'archivio RHEL eseguendo questo comando: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. È stato effettuato il push del pacchetto WALinuxAgent WALinuxAgent-<version> nel repository di funzionalità aggiuntive di Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Abilitare il repository di funzionalità aggiuntive eseguendo questo comando:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  10. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Per eseguire questa modifica, aprire /boot/grub/menu.lst in un editor di testo e verificare che il kernel predefinito includa i parametri seguenti: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
    

    In questo modo si garantisce inoltre che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

    È consigliabile anche rimuovere i parametri seguenti:In addition, we recommended that you remove the following parameters:

    rhgb quiet crashkernel=auto
    

    L'avvio grafico e l'avvio silenzioso non sono utili in un ambiente cloud se tutti i log devono essere inviati alla porta seriale.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. È possibile mantenere l'opzione crashkernel configurata, se necessario.You can leave the crashkernel option configured if desired. Si noti che questo parametro riduce la quantità di memoria disponibile nella macchina virtuale di almeno 128 MB.Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more. Questa configurazione potrebbe causare problemi in macchine virtuali di dimensioni inferiori.This configuration might be problematic on smaller virtual machine sizes.

    Importante

    Per RHEL 6.5 e versioni precedenti deve essere impostato anche il parametro del kernel numa=off.RHEL 6.5 and earlier must also set the numa=off kernel parameter. Vedere l'articolo KB 436883 di Red Hat.See Red Hat KB 436883.

  11. Verificare che il server SSH (Secure Shell) sia installato e configurato per l'esecuzione all'avvio, che è in genere l'impostazione predefinita.Ensure that the secure shell (SSH) server is installed and configured to start at boot time, which is usually the default. Modificare /etc/ssh/sshd_config per includere la riga seguente:Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180
    
  12. Installare l'agente Linux di Azure eseguendo il comando seguente:Install the Azure Linux Agent by running the following command:

    # sudo yum install WALinuxAgent
    
    # sudo chkconfig waagent on
    

    L'installazione del pacchetto WALinuxAgent determina la rimozione dei pacchetti NetworkManager e NetworkManager-gnome, se non sono già stati rimossi nel passaggio 3.Installing the WALinuxAgent package removes the NetworkManager and NetworkManager-gnome packages if they were not already removed in step 3.

  13. Non creare lo spazio di swapping sul disco del sistema operativo.Do not create swap space on the operating system disk.

    L'agente Linux di Azure può configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in 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. Si noti che il disco risorse locale è un disco temporaneo e può essere svuotato con il deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk and that it might be emptied when the virtual machine is deprovisioned. Dopo aver installato l'agente Linux di Azure nel passaggio precedente, modificare nel modo appropriato i parametri seguenti in /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. Annullare la sottoscrizione (se necessario) eseguendo il comando seguente:Unregister the subscription (if necessary) by running the following command:

    # sudo subscription-manager unregister
    
  15. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # sudo waagent -force -deprovision
    
    # export HISTSIZE=0
    
    # logout
    
  16. Fare clic su Azione > Arresta nella console di gestione di Hyper-V.Click Action > Shut Down in Hyper-V Manager. Il file VHD Linux è ora pronto per il caricamento in Azure.Your Linux VHD is now ready to be uploaded to Azure.

Preparare una macchina virtuale RHEL 7 dalla console di gestione di Hyper-VPrepare a RHEL 7 virtual machine from Hyper-V Manager

  1. Nella console di gestione di Hyper-V selezionare la macchina virtuale.In Hyper-V Manager, select the virtual machine.

  2. Fare clic su Connetti per aprire una finestra della console per la macchina virtuale.Click Connect to open a console window for the virtual machine.

  3. Creare o modificare il file /etc/sysconfig/network e aggiungere il testo seguente:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  4. Creare o modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungere il testo seguente: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
     NM_CONTROLLED=no
    
  5. Assicurarsi che il servizio di rete venga eseguito all'avvio attivando il comando seguente:Ensure that the network service will start at boot time by running the following command:

     # sudo systemctl enable network
    
  6. Registrare la propria sottoscrizione Red Hat per abilitare l'installazione dei pacchetti dall'archivio RHEL eseguendo questo comando: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. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Per eseguire questa modifica, aprire /etc/default/grub in un editor di testo e modificare il parametro GRUB_CMDLINE_LINUX.To do this modification, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Ad esempio: For example:

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

    In questo modo si garantisce inoltre che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Questa configurazione disattiva anche le nuove convenzioni di denominazione di RHEL 7 per le schede di interfaccia di rete.This configuration also turns off the new RHEL 7 naming conventions for NICs. È consigliabile anche rimuovere i parametri seguenti:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    L'avvio grafico e l'avvio silenzioso non sono utili in un ambiente cloud se tutti i log devono essere inviati alla porta seriale.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. È possibile mantenere l'opzione crashkernel configurata, se necessario.You can leave the crashkernel option configured if desired. Si noti che questo parametro riduce la quantità di memoria disponibile nella macchina virtuale di almeno 128 MB e questo potrebbe causare problemi in macchine virtuali di dimensioni inferiori.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. Dopo aver terminato di modificare /etc/default/grub, eseguire questo comando per ricompilare la configurazione 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. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio, che è in genere l'impostazione predefinita.Ensure that the SSH server is installed and configured to start at boot time, which is usually the default. Modificare /etc/ssh/sshd_config per poter includere la riga seguente:Modify /etc/ssh/sshd_config to include the following line:

     ClientAliveInterval 180
    
  10. È stato effettuato il push del pacchetto WALinuxAgent WALinuxAgent-<version> nel repository di funzionalità aggiuntive di Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Abilitare il repository di funzionalità aggiuntive eseguendo questo comando:Enable the extras repository by running the following command:

    # subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. Installare l'agente Linux di Azure eseguendo il comando seguente:Install the Azure Linux Agent by running the following command:

    # sudo yum install WALinuxAgent
    
    # sudo systemctl enable waagent.service
    
  12. Non creare lo spazio di swapping sul disco del sistema operativo.Do not create swap space on the operating system disk.

    L'agente Linux di Azure può configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in 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. Si noti che il disco risorse locale è un disco temporaneo e può essere svuotato con il deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. Dopo aver installato l'agente Linux di Azure nel passaggio precedente, modificare nel modo appropriato i parametri seguenti in /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.
    
  13. Se si vuole annullare la registrazione della sottoscrizione, eseguire il comando seguente:If you want to unregister the subscription, run the following command:

    # sudo subscription-manager unregister
    
  14. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # sudo waagent -force -deprovision
    
    # export HISTSIZE=0
    
    # logout
    
  15. Fare clic su Azione > Arresta nella console di gestione di Hyper-V.Click Action > Shut Down in Hyper-V Manager. Il file VHD Linux è ora pronto per il caricamento in Azure.Your Linux VHD is now ready to be uploaded to Azure.

Preparare una macchina virtuale basata su Red Hat da KVMPrepare a Red Hat-based virtual machine from KVM

Preparare una macchina virtuale RHEL 6 da KVMPrepare a RHEL 6 virtual machine from KVM

  1. Scaricare l'immagine KVM di RHEL 6 dal sito Web Red Hat.Download the KVM image of RHEL 6 from the Red Hat website.

  2. Impostare una password radice.Set a root password.

    Generare una password crittografata e copiare l'output del comando:Generate an encrypted password, and copy the output of the command:

     # openssl passwd -1 changeme
    

    Impostare una password radice con 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
    

    Modificare il secondo campo dell'utente radice da "!!"Change the second field of the root user from "!!" con la password crittografata.to the encrypted password.

  3. Creare una macchina virtuale in KVM dall'immagine qcow2.Create a virtual machine in KVM from the qcow2 image. Impostare il tipo di disco su qcow2 e il modello del dispositivo di interfaccia di rete virtuale su virtio.Set the disk type to qcow2, and set the virtual network interface device model to virtio. Avviare quindi la macchina virtuale e accedere come utente ROOT.Then, start the virtual machine, and sign in as root.

  4. Creare o modificare il file /etc/sysconfig/network e aggiungere il testo seguente:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  5. Creare o modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungere il testo seguente: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. Spostare o eliminare le regole udev per evitare la generazione di regole statiche per l'interfaccia Ethernet.Move (or remove) the udev rules to avoid generating static rules for the Ethernet interface. Le regole seguenti causano problemi quando si clona una macchina virtuale in Azure o 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. Assicurarsi che il servizio di rete venga eseguito all'avvio attivando il comando seguente:Ensure that the network service will start at boot time by running the following command:

     # chkconfig network on
    
  8. Registrare la propria sottoscrizione Red Hat per abilitare l'installazione dei pacchetti dall'archivio RHEL eseguendo questo comando: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. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Per eseguire questa configurazione, aprire /boot/grub/menu.lst in un editor di testo e verificare che il kernel predefinito includa i parametri seguenti: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
    

    In questo modo si garantisce inoltre che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

    È consigliabile anche rimuovere i parametri seguenti:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    L'avvio grafico e l'avvio silenzioso non sono utili in un ambiente cloud se tutti i log devono essere inviati alla porta seriale.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. È possibile mantenere l'opzione crashkernel configurata, se necessario.You can leave the crashkernel option configured if desired. Si noti che questo parametro riduce la quantità di memoria disponibile nella macchina virtuale di almeno 128 MB e questo potrebbe causare problemi in macchine virtuali di dimensioni inferiori.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.

    Importante

    Per RHEL 6.5 e versioni precedenti deve essere impostato anche il parametro del kernel numa=off.RHEL 6.5 and earlier must also set the numa=off kernel parameter. Vedere l'articolo KB 436883 di Red Hat.See Red Hat KB 436883.

  10. Aggiungere i moduli Hyper-V a initramfs:Add Hyper-V modules to initramfs:

    Modificare /etc/dracut.conf e aggiungere il contenuto seguente:Edit /etc/dracut.conf, and add the following content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    Ricompilare initramfs:Rebuild initramfs:

    # dracut -f -v
    
  11. Disinstallare cloud-init:Uninstall cloud-init:

    # yum remove cloud-init
    
  12. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio:Ensure that the SSH server is installed and configured to start at boot time:

    # chkconfig sshd on
    

    Modificare /etc/ssh/sshd_config per includere le righe seguenti:Modify /etc/ssh/sshd_config to include the following lines:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. È stato effettuato il push del pacchetto WALinuxAgent WALinuxAgent-<version> nel repository di funzionalità aggiuntive di Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Abilitare il repository di funzionalità aggiuntive eseguendo questo comando:Enable the extras repository by running the following command:

    # subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  14. Installare l'agente Linux di Azure eseguendo il comando seguente:Install the Azure Linux Agent by running the following command:

    # yum install WALinuxAgent
    
    # chkconfig waagent on
    
  15. L'agente Linux di Azure può configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in 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. Si noti che il disco risorse locale è un disco temporaneo e può essere svuotato con il deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. Dopo aver installato l'agente Linux di Azure nel passaggio precedente, modificare nel modo appropriato i parametri seguenti in /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. Annullare la sottoscrizione (se necessario) eseguendo il comando seguente:Unregister the subscription (if necessary) by running the following command:

    # subscription-manager unregister
    
  17. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # waagent -force -deprovision
    
    # export HISTSIZE=0
    
    # logout
    
  18. Arrestare la macchina virtuale in KVM.Shut down the virtual machine in KVM.

  19. Convertire l'immagine qcow2 nel formato VHD.Convert the qcow2 image to the VHD format.

Nota

Esiste un bug noto nelle versioni qemu-img > = 2.2.1 risultante in un disco rigido virtuale non formattato correttamente.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Il problema è stato risolto in QEMU 2.6.The issue has been fixed in QEMU 2.6. Si consiglia di usare qemu-img 2.2.0 o versione precedente oppure di eseguire l'aggiornamento alla versione 2.6 o successiva.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Riferimento: 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

Preparare una macchina virtuale RHEL 7 da KVMPrepare a RHEL 7 virtual machine from KVM

  1. Scaricare l'immagine KVM di RHEL 7 dal sito Web di Red Hat.Download the KVM image of RHEL 7 from the Red Hat website. Questa procedura usa come esempio RHEL 7.This procedure uses RHEL 7 as the example.

  2. Impostare una password radice.Set a root password.

    Generare una password crittografata e copiare l'output del comando:Generate an encrypted password, and copy the output of the command:

     # openssl passwd -1 changeme
    

    Impostare una password radice con 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
    

    Modificare il secondo campo dell'utente radice da "!!"Change the second field of root user from "!!" con la password crittografata.to the encrypted password.

  3. Creare una macchina virtuale in KVM dall'immagine qcow2.Create a virtual machine in KVM from the qcow2 image. Impostare il tipo di disco su qcow2 e il modello del dispositivo di interfaccia di rete virtuale su virtio.Set the disk type to qcow2, and set the virtual network interface device model to virtio. Avviare quindi la macchina virtuale e accedere come utente ROOT.Then, start the virtual machine, and sign in as root.

  4. Creare o modificare il file /etc/sysconfig/network e aggiungere il testo seguente:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  5. Creare o modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungere il testo seguente: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
     NM_CONTROLLED=no
    
  6. Assicurarsi che il servizio di rete venga eseguito all'avvio attivando il comando seguente:Ensure that the network service will start at boot time by running the following command:

     # sudo systemctl enable network
    
  7. Registrare la propria sottoscrizione Red Hat per abilitare l’installazione dei pacchetti dall’archivio RHEL eseguendo il seguente comando: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. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Per eseguire questa configurazione, aprire /etc/default/grub in un editor di testo e modificare il parametro GRUB_CMDLINE_LINUX.To do this configuration, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Ad esempio: For example:

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

    Questo comando, inoltre, garantisce che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This command also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Il comando disattiva anche le nuove convenzioni di denominazione di RHEL 7 per le schede di interfaccia di rete.The command also turns off the new RHEL 7 naming conventions for NICs. È consigliabile anche rimuovere i parametri seguenti:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    L'avvio grafico e l'avvio silenzioso non sono utili in un ambiente cloud se tutti i log devono essere inviati alla porta seriale.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. È possibile mantenere l'opzione crashkernel configurata, se necessario.You can leave the crashkernel option configured if desired. Si noti che questo parametro riduce la quantità di memoria disponibile nella macchina virtuale di almeno 128 MB e questo potrebbe causare problemi in macchine virtuali di dimensioni inferiori.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. Dopo aver terminato di modificare /etc/default/grub, eseguire questo comando per ricompilare la configurazione 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. Aggiungere i moduli Hyper-V in initramfs.Add Hyper-V modules into initramfs.

    Modificare /etc/dracut.conf e aggiungere il contenuto:Edit /etc/dracut.conf and add content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    Ricompilare initramfs:Rebuild initramfs:

    # dracut -f -v
    
  11. Disinstallare cloud-init:Uninstall cloud-init:

    # yum remove cloud-init
    
  12. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio:Ensure that the SSH server is installed and configured to start at boot time:

    # systemctl enable sshd
    

    Modificare /etc/ssh/sshd_config per includere le righe seguenti:Modify /etc/ssh/sshd_config to include the following lines:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. È stato effettuato il push del pacchetto WALinuxAgent WALinuxAgent-<version> nel repository di funzionalità aggiuntive di Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Abilitare il repository di funzionalità aggiuntive eseguendo questo comando:Enable the extras repository by running the following command:

    # subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  14. Installare l'agente Linux di Azure eseguendo il comando seguente:Install the Azure Linux Agent by running the following command:

    # yum install WALinuxAgent
    

    Abilitare il servizio waagent:Enable the waagent service:

    # systemctl enable waagent.service
    
  15. Non creare lo spazio di swapping sul disco del sistema operativo.Do not create swap space on the operating system disk.

    L'agente Linux di Azure può configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in 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. Si noti che il disco risorse locale è un disco temporaneo e può essere svuotato con il deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. Dopo aver installato l'agente Linux di Azure nel passaggio precedente, modificare nel modo appropriato i parametri seguenti in /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. Annullare la sottoscrizione (se necessario) eseguendo il comando seguente:Unregister the subscription (if necessary) by running the following command:

    # subscription-manager unregister
    
  17. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # sudo waagent -force -deprovision
    
    # export HISTSIZE=0
    
    # logout
    
  18. Arrestare la macchina virtuale in KVM.Shut down the virtual machine in KVM.

  19. Convertire l'immagine qcow2 nel formato VHD.Convert the qcow2 image to the VHD format.

Nota

Esiste un bug noto nelle versioni qemu-img > = 2.2.1 risultante in un disco rigido virtuale non formattato correttamente.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Il problema è stato risolto in QEMU 2.6.The issue has been fixed in QEMU 2.6. Si consiglia di usare qemu-img 2.2.0 o versione precedente oppure di eseguire l'aggiornamento alla versione 2.6 o successiva.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Riferimento: 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

Preparare una macchina virtuale basata su Red Hat da VMwarePrepare a Red Hat-based virtual machine from VMware

prerequisitiPrerequisites

In questa sezione si presuppone che una macchina virtuale RHEL sia già stata installata in VMware.This section assumes that you have already installed a RHEL virtual machine in VMware. Per informazioni dettagliate su come installare un sistema operativo in VMware, vedere la guida all'installazione del sistema operativo guest VMware.For details about how to install an operating system in VMware, see VMware Guest Operating System Installation Guide.

  • Quando si installa il sistema operativo Linux è consigliabile usare partizioni standard anziché LVM, che è spesso l'impostazione predefinita per numerose installazioni.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. Questo consentirà di evitare conflitti di nome LVM con la macchina virtuale clonata, in particolare se fosse eventualmente necessario collegare un disco del sistema operativo a un'altra macchina virtuale per la risoluzione dei problemi.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. Se si preferisce, su dischi di dati si può usare LVM o RAID.LVM or RAID can be used on data disks if preferred.
  • Non configurare una partizione di swapping sul disco del sistema operativo.Do not configure a swap partition on the operating system disk. È possibile configurare l'agente Linux per poter creare un file di scambio sul disco temporaneo delle risorse.You can configure the Linux agent to create a swap file on the temporary resource disk. Altre informazioni su questo argomento sono disponibili nei passaggi riportati di seguito.You can find more information about this in the steps that follow.
  • Quando si crea il disco rigido virtuale, selezionare Store virtual disk as a single file(Archivia disco virtuale come singolo file).When you create the virtual hard disk, select Store virtual disk as a single file.

Preparare una macchina virtuale RHEL 6 da VMwarePrepare a RHEL 6 virtual machine from VMware

  1. In RHEL 6, NetworkManager può interferire con l'agente Linux di Azure.In RHEL 6, NetworkManager can interfere with the Azure Linux agent. Disinstallare il pacchetto eseguendo questo comando:Uninstall this package by running the following command:

     # sudo rpm -e --nodeps NetworkManager
    
  2. Creare nella directory /etc/sysconfig/ un file denominato network contenente il testo seguente:Create a file named network in the /etc/sysconfig/ directory that contains the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  3. Creare o modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungere il testo seguente: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. Spostare o eliminare le regole udev per evitare la generazione di regole statiche per l'interfaccia Ethernet.Move (or remove) the udev rules to avoid generating static rules for the Ethernet interface. Le regole seguenti causano problemi quando si clona una macchina virtuale in Azure o 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. Assicurarsi che il servizio di rete venga eseguito all'avvio attivando il comando seguente:Ensure that the network service will start at boot time by running the following command:

     # sudo chkconfig network on
    
  6. Registrare la propria sottoscrizione Red Hat per abilitare l'installazione dei pacchetti dall'archivio RHEL eseguendo questo comando: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. È stato effettuato il push del pacchetto WALinuxAgent WALinuxAgent-<version> nel repository di funzionalità aggiuntive di Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Abilitare il repository di funzionalità aggiuntive eseguendo questo comando:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  8. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. A tale scopo, aprire /etc/default/grub in un editor di testo e modificare il parametro GRUB_CMDLINE_LINUX.To do this, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Ad esempio: For example:

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

    In questo modo si garantisce inoltre che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This will also ensure that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. È consigliabile anche rimuovere i parametri seguenti:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    L'avvio grafico e l'avvio silenzioso non sono utili in un ambiente cloud se tutti i log devono essere inviati alla porta seriale.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. È possibile mantenere l'opzione crashkernel configurata, se necessario.You can leave the crashkernel option configured if desired. Si noti che questo parametro riduce la quantità di memoria disponibile nella macchina virtuale di almeno 128 MB e questo potrebbe causare problemi in macchine virtuali di dimensioni inferiori.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. Aggiungere i moduli Hyper-V a initramfs:Add Hyper-V modules to initramfs:

    Modificare /etc/dracut.conf e aggiungere il contenuto seguente:Edit /etc/dracut.conf, and add the following content:

     add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    Ricompilare initramfs:Rebuild initramfs:

     # dracut -f -v
    
  10. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio, che è in genere l'impostazione predefinita.Ensure that the SSH server is installed and configured to start at boot time, which is usually the default. Modificare /etc/ssh/sshd_config per poter includere la riga seguente:Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180ClientAliveInterval 180

  11. Installare l'agente Linux di Azure eseguendo il comando seguente:Install the Azure Linux Agent by running the following command:

    # sudo yum install WALinuxAgent
    
    # sudo chkconfig waagent on
    
  12. Non creare lo spazio di swapping sul disco del sistema operativo.Do not create swap space on the operating system disk.

    L'agente Linux di Azure può configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in 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. Si noti che il disco risorse locale è un disco temporaneo e può essere svuotato con il deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. Dopo aver installato l'agente Linux di Azure nel passaggio precedente, modificare nel modo appropriato i parametri seguenti in /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.
    
  13. Annullare la sottoscrizione (se necessario) eseguendo il comando seguente:Unregister the subscription (if necessary) by running the following command:

    # sudo subscription-manager unregister
    
  14. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # sudo waagent -force -deprovision
    
    # export HISTSIZE=0
    
    # logout
    
  15. Arrestare la macchina virtuale e convertire il file VMDK in un file con estensione vhd.Shut down the virtual machine, and convert the VMDK file to a .vhd file.

Nota

Esiste un bug noto nelle versioni qemu-img > = 2.2.1 risultante in un disco rigido virtuale non formattato correttamente.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Il problema è stato risolto in QEMU 2.6.The issue has been fixed in QEMU 2.6. Si consiglia di usare qemu-img 2.2.0 o versione precedente oppure di eseguire l'aggiornamento alla versione 2.6 o successiva.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Riferimento: 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

Preparare una macchina virtuale RHEL 7 da VMwarePrepare a RHEL 7 virtual machine from VMware

  1. Creare o modificare il file /etc/sysconfig/network e aggiungere il testo seguente:Create or edit the /etc/sysconfig/network file, and add the following text:

     NETWORKING=yes
     HOSTNAME=localhost.localdomain
    
  2. Creare o modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungere il testo seguente: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
     NM_CONTROLLED=no
    
  3. Assicurarsi che il servizio di rete venga eseguito all'avvio attivando il comando seguente:Ensure that the network service will start at boot time by running the following command:

     # sudo systemctl enable network
    
  4. Registrare la propria sottoscrizione Red Hat per abilitare l'installazione dei pacchetti dall'archivio RHEL eseguendo questo comando: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. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Per eseguire questa modifica, aprire /etc/default/grub in un editor di testo e modificare il parametro GRUB_CMDLINE_LINUX.To do this modification, open /etc/default/grub in a text editor, and edit the GRUB_CMDLINE_LINUX parameter. Ad esempio: For example:

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

    Questa configurazione, inoltre, garantisce che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This configuration also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Disattiva anche le nuove convenzioni di denominazione RHEL 7 per le schede di interfaccia di rete.It also turns off the new RHEL 7 naming conventions for NICs. È consigliabile anche rimuovere i parametri seguenti:In addition, we recommend that you remove the following parameters:

     rhgb quiet crashkernel=auto
    

    L'avvio grafico e l'avvio silenzioso non sono utili in un ambiente cloud se tutti i log devono essere inviati alla porta seriale.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. È possibile mantenere l'opzione crashkernel configurata, se necessario.You can leave the crashkernel option configured if desired. Si noti che questo parametro riduce la quantità di memoria disponibile nella macchina virtuale di almeno 128 MB e questo potrebbe causare problemi in macchine virtuali di dimensioni inferiori.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. Dopo aver terminato di modificare /etc/default/grub, eseguire questo comando per ricompilare la configurazione 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. Aggiungere i moduli Hyper-V a initramfs.Add Hyper-V modules to initramfs.

    Modificare /etc/dracut.confe aggiungere il contenuto:Edit /etc/dracut.conf, add content:

     add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    Ricompilare initramfs:Rebuild initramfs:

     # dracut -f -v
    
  8. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio.Ensure that the SSH server is installed and configured to start at boot time. Questa è in genere l'impostazione predefinita.This setting is usually the default. Modificare /etc/ssh/sshd_config per poter includere la riga seguente:Modify /etc/ssh/sshd_config to include the following line:

     ClientAliveInterval 180
    
  9. È stato effettuato il push del pacchetto WALinuxAgent WALinuxAgent-<version> nel repository di funzionalità aggiuntive di Red Hat.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Abilitare il repository di funzionalità aggiuntive eseguendo questo comando:Enable the extras repository by running the following command:

     # subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  10. Installare l'agente Linux di Azure eseguendo il comando seguente:Install the Azure Linux Agent by running the following command:

    # sudo yum install WALinuxAgent
    
    # sudo systemctl enable waagent.service
    
  11. Non creare lo spazio di swapping sul disco del sistema operativo.Do not create swap space on the operating system disk.

    L'agente Linux di Azure può configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in 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. Si noti che il disco risorse locale è un disco temporaneo e può essere svuotato con il deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. Dopo aver installato l'agente Linux di Azure nel passaggio precedente, modificare nel modo appropriato i parametri seguenti in /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.
    
  12. Se si vuole annullare la registrazione della sottoscrizione, eseguire il comando seguente:If you want to unregister the subscription, run the following command:

    # sudo subscription-manager unregister
    
  13. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # sudo waagent -force -deprovision
    
    # export HISTSIZE=0
    
    # logout
    
  14. Arrestare la macchina virtuale e convertire il file VMDK nel formato VHD.Shut down the virtual machine, and convert the VMDK file to the VHD format.

Nota

Esiste un bug noto nelle versioni qemu-img > = 2.2.1 risultante in un disco rigido virtuale non formattato correttamente.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Il problema è stato risolto in QEMU 2.6.The issue has been fixed in QEMU 2.6. Si consiglia di usare qemu-img 2.2.0 o versione precedente oppure di eseguire l'aggiornamento alla versione 2.6 o successiva.It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Riferimento: 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

Preparare una macchina virtuale basata su Red Hat da un'immagine ISO usando un file kickstart automaticoPrepare a Red Hat-based virtual machine from an ISO by using a kickstart file automatically

Preparare una macchina virtuale RHEL 7 da un file kickstartPrepare a RHEL 7 virtual machine from a kickstart file

  1. Creare e salvare un file kickstart con il contenuto seguente.Create a kickstart file that includes the following content, and save the file. Per informazioni dettagliate sull'installazione di kickstart, vedere la guida all'installazione di kickstart.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
    NM_CONTROLLED=no
    EOF
    
    # Deprovision and prepare for Azure
    waagent -force -deprovision
    
    %end
    
  2. Posizionare il file kickstart in un percorso in cui sia accessibile per il sistema di installazione.Place the kickstart file where the installation system can access it.

  3. Creare una nuova macchina virtuale nella console di gestione di Hyper-V.In Hyper-V Manager, create a new virtual machine. Nella pagina Connessione disco rigido virtuale selezionare Connetti un disco rigido virtuale successivamente e completare la creazione guidata della macchina virtuale.On the Connect Virtual Hard Disk page, select Attach a virtual hard disk later, and complete the New Virtual Machine Wizard.

  4. Aprire le impostazioni della macchina virtuale:Open the virtual machine settings:

    a.a. Collegare un nuovo disco rigido virtuale alla macchina virtuale.Attach a new virtual hard disk to the virtual machine. Accertarsi di selezionare Formato VHD e A dimensione fissa.Make sure to select VHD Format and Fixed Size.

    b.b. Collegare l'ISO di installazione all'unità DVD.Attach the installation ISO to the DVD drive.

    c.c. Impostare il BIOS per l'avvio da CD.Set the BIOS to boot from CD.

  5. Avviare la macchina virtuale.Start the virtual machine. Quando viene visualizzata la guida all'installazione, premere Tab per configurare le opzioni di avvio.When the installation guide appears, press Tab to configure the boot options.

  6. Inserire inst.ks=<the location of the kickstart file> alla fine di opzioni di avvio e premere Invio.Enter inst.ks=<the location of the kickstart file> at the end of the boot options, and press Enter.

  7. Attendere la fine dell'installazione.Wait for the installation to finish. Al termine, la macchina virtuale verrà arrestata automaticamente.When it's finished, the virtual machine will be shut down automatically. Il file VHD Linux è ora pronto per il caricamento in Azure.Your Linux VHD is now ready to be uploaded to Azure.

Problemi notiKnown issues

Non è possibile includere il driver Hyper-V nel disco RAM iniziale quando si usa un hypervisor non Hyper-VThe Hyper-V driver could not be included in the initial RAM disk when using a non-Hyper-V hypervisor

In alcuni casi, i programmi di installazione di Linux potrebbero non includere i driver per Hyper-V nel disco RAM iniziale (initrd o initramfs), a meno che Linux non rilevi di essere in esecuzione in un ambiente 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.

Quando si usa un sistema di virtualizzazione diverso (Virtualbox, Xen e così via) per preparare l'immagine Linux, potrebbe essere necessario ricompilare initrd per assicurarsi che almeno i moduli del kernel hv_vmbus e hv_storvsc siano disponibili nel disco RAM iniziale.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. Questo è un problema noto, almeno nei sistemi basati sulla distribuzione upstream di Red Hat.This is a known issue at least on systems that are based on the upstream Red Hat distribution.

Per risolvere questo problema, aggiungere i moduli Hyper-V a initramfs e ricompilarlo:To resolve this issue, add Hyper-V modules to initramfs and rebuild it:

Modificare /etc/dracut.conf e aggiungere il contenuto seguente:Edit /etc/dracut.conf, and add the following content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"

Ricompilare initramfs:Rebuild initramfs:

    # dracut -f -v

Per altri dettagli, vedere le informazioni sulla ricompilazione di initramfs.For more details, see the information about rebuilding initramfs.

Passaggi successiviNext steps

È ora possibile usare il disco rigido virtuale Red Hat Enterprise Linux per creare nuove macchine virtuali in Azure.You're now ready to use your Red Hat Enterprise Linux virtual hard disk to create new virtual machines in Azure. Se è la prima volta che si carica il file VHD in Azure, vedere Creare una macchina virtuale Linux da un disco personalizzato.If this is the first time that you're uploading the .vhd file to Azure, see Create a Linux VM from a custom disk.

Per altre informazioni sugli hypervisor certificati per l'esecuzione di Red Hat Enterprise Linux, visitare il sito Web di Red Hat.For more details about the hypervisors that are certified to run Red Hat Enterprise Linux, see the Red Hat website.