Preparar uma máquina virtual baseada em Red Hat para o Azure Stack HubPrepare a Red Hat-based virtual machine for Azure Stack Hub

Este artigo descreve como preparar uma máquina virtual (RHEL) (RHEL) para utilização no Azure Stack Hub.This article describes how to prepare a Red Hat Enterprise Linux (RHEL) virtual machine (VM) for use in Azure Stack Hub. As versões do RHEL abrangidas por este artigo são 7.1 ou posterior.The versions of RHEL that are covered in this article are 7.1 or later. Os hipervisores para a preparação que estão cobertos neste artigo são Hyper-V, máquina virtual baseada em kernel (KVM) e VMware.The hypervisors for preparation that are covered in this article are Hyper-V, kernel-based virtual machine (KVM), and VMware.

Para obter informações de suporte da Red Hat Enterprise Linux, consulte Red Hat e Azure Stack: Perguntas frequentes.For Red Hat Enterprise Linux support information, see Red Hat and Azure Stack: Frequently Asked Questions.

Prepare um VM baseado em chapéu vermelho do Hyper-V ManagerPrepare a Red Hat-based VM from Hyper-V Manager

Esta secção pressupõe que já tem um ficheiro ISO do site do Red Hat e instalou a imagem RHEL num disco rígido virtual (VHD).This section assumes that you already have an ISO file from the Red Hat website and have installed the RHEL image to a virtual hard disk (VHD). Para obter mais informações sobre como utilizar o Hyper-V Manager para instalar uma imagem do sistema operativo, consulte instalar a Função Hiper-V e configurar um VM.For more information about how to use Hyper-V Manager to install an operating system image, see Install the Hyper-V Role and Configure a VM.

Notas de instalação DARLRHEL installation notes

  • O Azure Stack Hub não suporta o formato VHDX.Azure Stack Hub does not support the VHDX format. O Azure suporta apenas VHD fixo.Azure supports only fixed VHD. Pode utilizar o Hyper-V Manager para converter o disco no formato VHD, ou pode utilizar o cmdlet converte-vhd.You can use Hyper-V Manager to convert the disk to VHD format, or you can use the convert-vhd cmdlet. Se utilizar a VirtualBox, selecione tamanho fixo em oposição ao padrão de opção atribuída dinamicamente quando criar o disco.If you use VirtualBox, select Fixed size as opposed to the default dynamically allocated option when you create the disk.
  • O Azure Stack Hub suporta apenas uma geração 1 VMs.Azure Stack Hub supports only generation 1 VMs. Pode converter uma geração de 1 VM de VHDX para o formato de ficheiro VHD, e de expandir-se dinamicamente para um disco de tamanho fixo.You can convert a generation 1 VM from VHDX to the VHD file format, and from dynamically expanding to a fixed-size disk. Não se pode mudar a geração de um VM.You cannot change a VM's generation. Para mais informações, veja se devo criar uma geração 1 ou 2 VM em Hiper-V?For more information, see Should I create a generation 1 or 2 VM in Hyper-V?.
  • O tamanho máximo permitido para o VHD é de 1.023 GB.The maximum size allowed for the VHD is 1,023 GB.
  • Quando instala o sistema operativo Linux, recomendamos que utilize divisórias padrão em vez de Logical Volume Manager (LVM), que é frequentemente o padrão para muitas instalações.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. Esta prática evita conflitos de nome LVM com VMs clonados, especialmente se alguma vez precisar de anexar um disco do sistema operativo a outro VM idêntico para resolução de problemas.This practice avoids LVM name conflicts with cloned VMs, particularly if you ever need to attach an operating system disk to another identical VM for troubleshooting.
  • É necessário suporte kernel para a montagem de sistemas de ficheiros Universal Disk Format (UDF).Kernel support for mounting Universal Disk Format (UDF) file systems is required. Na primeira bota, o mídia formatada pela UDF anexado ao hóspede passa a configuração de provisionamento para o Linux VM.At first boot, the UDF-formatted media attached to the guest passes the provisioning configuration to the Linux VM. O Agente Azure Linux deve montar o sistema de ficheiros UDF para ler a sua configuração e a provisionar o VM.The Azure Linux Agent must mount the UDF file system to read its configuration and provision the VM.
  • Não configuure uma partição de troca no disco do sistema operativo.Do not configure a swap partition on the operating system disk. O Agente Linux pode ser configurado para criar um ficheiro de troca no disco de recursos temporários.The Linux Agent can be configured to create a swap file on the temporary resource disk. Mais informações podem ser encontradas nos seguintes passos.More information about can be found in the following steps.
  • Todos os VHDs em Azure devem ter um tamanho virtual alinhado a 1 MB.All VHDs on Azure must have a virtual size aligned to 1 MB. Ao converter de um disco cru para VHD, deve certificar-se de que o tamanho do disco bruto é um múltiplo de 1 MB antes da conversão.When converting from a raw disk to VHD, you must ensure that the raw disk size is a multiple of 1 MB before conversion. Mais detalhes podem ser encontrados nos seguintes passos.More details can be found in the following steps.
  • O Azure Stack Hub suporta a cloud-init.Azure Stack Hub supports cloud-init. Cloud-init é uma abordagem amplamente utilizada para personalizar uma VM com Linux quando arranca pela primeira vez.Cloud-init is a widely used approach to customize a Linux VM as it boots for the first time. Pode utilizar o cloud-init para instalar pacotes e escrever ficheiros ou para configurar utilizadores e segurança.You can use cloud-init to install packages and write files, or to configure users and security. Como a cloud-init é chamada durante o processo inicial de arranque, não existem passos adicionais ou agentes necessários para aplicar a sua configuração.Because cloud-init is called during the initial boot process, there are no additional steps or required agents to apply your configuration. Para obter instruções sobre a adição de nuvem à sua imagem, consulte Prepare uma imagem VM Linux Azure existente para utilização com init em nuvem.For instructions on adding cloud-init to your image, see Prepare an existing Linux Azure VM image for use with cloud-init.

Preparar um RHEL 7 VM do Hyper-V ManagerPrepare an RHEL 7 VM from Hyper-V Manager

  1. No Hyper-V Manager, selecione o VM.In Hyper-V Manager, select the VM.

  2. Selecione Connect para abrir uma janela de consola para o VM.Select Connect to open a console window for the VM.

  3. Criar ou editar o /etc/sysconfig/network ficheiro e adicionar o seguinte texto:Create or edit the /etc/sysconfig/network file, and add the following text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Crie ou edite o /etc/sysconfig/network-scripts/ifcfg-eth0 ficheiro e adicione o seguinte texto conforme necessário:Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text as needed:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    
  5. Certifique-se de que o serviço de rede começa no tempo de arranque executando o seguinte comando:Ensure that the network service starts at boot time by running the following command:

    sudo systemctl enable network
    
  6. Registe a sua assinatura Red Hat para permitir a instalação de pacotes a partir do repositório RHEL executando o seguinte 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. Modifique a linha de arranque do núcleo na sua configuração de larva para incluir parâmetros adicionais de kernel para Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Para fazer esta modificação, abra /etc/default/grub num editor de texto e modifique o GRUB_CMDLINE_LINUX parâmetro.To make this modification, open /etc/default/grub in a text editor, and modify the GRUB_CMDLINE_LINUX parameter. Por exemplo:For example:

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

    Esta modificação garante que todas as mensagens de consola são enviadas para a primeira porta em série, que pode ajudar o suporte do Azure com problemas de depuração.This modification ensures all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Esta configuração também desliga as novas convenções de nomeação RHEL 7 para NICs.This configuration also turns off the new RHEL 7 naming conventions for NICs.

    A bota gráfica e silenciosa não é útil num ambiente em nuvem onde queremos que todos os registos sejam enviados para a porta em série.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. Pode deixar a crashkernel opção configurada se desejar.You can leave the crashkernel option configured if desired. Este parâmetro reduz a quantidade de memória disponível no VM em 128 MB ou mais, o que pode ser problemático em tamanhos VM menores.This parameter reduces the amount of available memory in the VM by 128 MB or more, which might be problematic on smaller VM sizes. Recomendamos que remova os seguintes parâmetros:We recommend that you remove the following parameters:

    rhgb quiet crashkernel=auto
    
  8. Depois de terminar a /etc/default/grub edição, executar o seguinte comando para reconstruir a configuração da comida:After you're done editing /etc/default/grub, run the following command to rebuild the grub configuration:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  9. [Opcional após lançamento de 1910] Parar e desinstalar a nuvem:[Optional after 1910 release] Stop and Uninstall cloud-init:

    systemctl stop cloud-init
    yum remove cloud-init
    
  10. Certifique-se de que o servidor SSH está instalado e configurado para iniciar na hora do arranque, que normalmente é o padrão.Ensure that the SSH server is installed and configured to start at boot time, which is usually the default. Modificar /etc/ssh/sshd_config para incluir a seguinte linha:Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180
    
  11. Ao criar um vhd personalizado para o Azure Stack Hub, note que a versão WALinuxAgent entre 2.2.20 e 2.2.35 (ambas exclusivas) não funciona em ambientes Azure Stack Hub antes do lançamento de 1910.When creating a custom vhd for Azure Stack Hub, note that WALinuxAgent version between 2.2.20 and 2.2.35 (both exclusive) do not work on Azure Stack Hub environments before the 1910 release. Pode utilizar as versões 2.2.20/2.2.35 versões para preparar a sua imagem.You can use versions 2.2.20/2.2.35 versions to prepare your image. Para utilizar versões acima de 2.2.35 para preparar a sua imagem personalizada, atualize o seu Azure Stack Hub para o lançamento de 1903 ou mais tarde, ou aplique o hotfix de 1901/1902.To use versions above 2.2.35 to prepare your custom image, update your Azure Stack Hub to the 1903 release or later, or apply the 1901/1902 hotfix.

    [Antes do lançamento de 1910] Siga estas instruções para descarregar um WALinuxAgent compatível:[Before 1910 release] Follow these instructions to download a compatible WALinuxAgent:

    1. Baixar os mapas de configuração.Download setuptools.

      wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz --no-check-certificate
      tar xzf setuptools-7.0.tar.gz
      cd setuptools-7.0
      
    2. Faça o download e desaperte a versão 2.2.20 do agente do nosso GitHub.Download and unzip the 2.2.20 version of the agent from our GitHub.

      wget https://github.com/Azure/WALinuxAgent/archive/v2.2.20.zip
      unzip v2.2.20.zip
      cd WALinuxAgent-2.2.20
      
    3. Instale setup.py.Install setup.py.

      sudo python setup.py install
      
    4. Reinicie o waagent.Restart waagent.

      sudo systemctl restart waagent
      
    5. Teste se a versão do agente corresponder à que descarregou.Test if the agent version matches the one you downloaded. Para este exemplo, deve ser 2.2.20.For this example, it should be 2.2.20.

      waagent -version
      

    Após o lançamento de 1910, siga estas instruções para descarregar um WALinuxAgent compatível:After the 1910 release, follow these instructions to download a compatible WALinuxAgent:

    1. O pacote WALinuxAgent, WALinuxAgent-<version> foi empurrado para o repositório extras do Chapéu Vermelho.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Ativar o repositório extra executando o seguinte comando:Enable the extras repository by running the following command:

      subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    2. Instale o Agente Azure Linux executando o seguinte comando:Install the Azure Linux Agent by running the following command:

      sudo yum install WALinuxAgent
      sudo systemctl enable waagent.service
      
  12. Não crie espaço de troca no disco do sistema operativo.Do not create swap space on the operating system disk.

    O Agente Azure Linux pode configurar automaticamente o espaço de troca utilizando o disco de recursos local que está ligado ao VM após o VM ser aprovisionado no Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that's attached to the VM after the VM is provisioned on Azure. O disco de recursos local é um disco temporário, e pode ser esvaziado quando o VM é desprovisionado.The local resource disk is a temporary disk, and it might be emptied when the VM is deprovisioned. Depois de instalar o Agente Azure Linux no passo anterior, modifique os seguintes parâmetros /etc/waagent.conf de forma adequada: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 pretender não registar a subscrição, execute o seguinte comando:If you want to unregister the subscription, run the following command:

    sudo subscription-manager unregister
    
  14. Se estiver a utilizar um sistema que foi implantado usando uma Enterprise Certificate Authority, o RHEL VM não confiará no certificado raiz do Azure Stack Hub.If you're using a system that was deployed using an Enterprise Certificate Authority, the RHEL VM won't trust the Azure Stack Hub root certificate. Tens de colocar esse certificado na loja de raízes de confiança.You must place that certificate into the trusted root store. Para obter mais informações, consulte adicionar certificados de raiz fidedignos ao servidor.For more information, see Adding trusted root certificates to the server.

  15. Executar os seguintes comandos para desaquisição do VM e prepará-lo para o provisionamento em Azure:Run the following commands to de-provision the VM and prepare it for provisioning on Azure:

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    
  16. Selecione Açãoe, em seguida, Desligue em Hyper-V Manager.Select Action, then Shut Down in Hyper-V Manager.

  17. Converta o VHD num VHD de tamanho fixo utilizando a função "Editar disco" do Hyper-V Manager ou o comando Converte-VHD PowerShell.Convert the VHD to a fixed size VHD using either the Hyper-V Manager "Edit disk" feature, or the Convert-VHD PowerShell command. O seu VHD Linux está agora pronto para ser enviado para Azure.Your Linux VHD is now ready to be uploaded to Azure.

Prepare uma máquina virtual baseada em chapéu vermelho da KVMPrepare a Red Hat-based virtual machine from KVM

  1. Descarregue a imagem KVM do RHEL 7 a partir do site do Red Hat.Download the KVM image of RHEL 7 from the Red Hat website. Este procedimento utiliza o RHEL 7 como exemplo.This procedure uses RHEL 7 as the example.

  2. Desateia uma senha de raiz.Set a root password.

    Gere uma palavra-passe encriptada e copie a saída do comando:Generate an encrypted password, and copy the output of the command:

    openssl passwd -1 changeme
    

    Desapedaça uma senha de raiz com o peixe-hóspede: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
    

    Mude o segundo campo de utilizadores de raiz de "!!"Change the second field of root user from "!!" para a senha encriptada.to the encrypted password.

  3. Crie um VM em KVM a partir da imagem qcow2.Create a VM in KVM from the qcow2 image. Desa estale o tipo de disco para qcow2, e desate o modelo de dispositivo de interface de rede virtual para virtio.Set the disk type to qcow2, and set the virtual network interface device model to virtio. Em seguida, inicie o VM, e inscreva-se como raiz.Then, start the VM, and sign in as root.

  4. Criar ou editar o /etc/sysconfig/network ficheiro e adicionar o seguinte texto:Create or edit the /etc/sysconfig/network file, and add the following text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Criar ou editar o /etc/sysconfig/network-scripts/ifcfg-eth0 ficheiro e adicionar o seguinte texto: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. Certifique-se de que o serviço de rede começa no tempo de arranque executando o seguinte comando:Ensure that the network service starts at boot time by running the following command:

    sudo systemctl enable network
    
  7. Registe a sua assinatura Red Hat para permitir a instalação de pacotes a partir do repositório RHEL executando o seguinte 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. Modifique a linha de arranque do núcleo na sua configuração de larva para incluir parâmetros adicionais de kernel para Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Para fazer esta configuração, abra /etc/default/grub num editor de texto e modifique o GRUB_CMDLINE_LINUX parâmetro.To do this configuration, open /etc/default/grub in a text editor, and modify the GRUB_CMDLINE_LINUX parameter. Por exemplo:For example:

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

    Este comando também garante que todas as mensagens de consola são enviadas para a primeira porta em série, que pode ajudar o suporte do Azure com problemas de depuração.This command also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. O comando também desliga as novas convenções de nomeação RHEL 7 para NICs.The command also turns off the new RHEL 7 naming conventions for NICs.

    A bota gráfica e silenciosa não é útil num ambiente em nuvem onde todos os registos são enviados para a porta em série.Graphical and quiet boot are not useful in a cloud environment where all the logs are sent to the serial port. Pode deixar a crashkernel opção configurada se desejar.You can leave the crashkernel option configured if desired. Este parâmetro reduz a quantidade de memória disponível no VM em 128 MB ou mais, o que pode ser problemático em tamanhos VM menores.This parameter reduces the amount of available memory in the VM by 128 MB or more, which might be problematic on smaller VM sizes. Recomendamos que remova os seguintes parâmetros:We recommend you remove the following parameters:

    rhgb quiet crashkernel=auto
    
  9. Depois de terminar a /etc/default/grub edição, executar o seguinte comando para reconstruir a configuração da comida:After you're done editing /etc/default/grub, run the following command to rebuild the grub configuration:

    grub2-mkconfig -o /boot/grub2/grub.cfg
    
  10. Adicione módulos Hiper-V em initramfs.Add Hyper-V modules into initramfs.

    Editar /etc/dracut.conf e adicionar conteúdo:Edit /etc/dracut.conf and add content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    Reconstruir initramfs:Rebuild initramfs:

    dracut -f -v
    
  11. [Opcional após lançamento de 1910] Parar e desinstalar a nuvem:[Optional after 1910 release] Stop and uninstall cloud-init:

    systemctl stop cloud-init
    yum remove cloud-init
    
  12. Certifique-se de que o servidor SSH está instalado e configurado para começar na hora de arranque:Ensure that the SSH server is installed and configured to start at boot time:

    systemctl enable sshd
    

    Modificar /etc/ssh/sshd_config para incluir as seguintes linhas:Modify /etc/ssh/sshd_config to include the following lines:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. Ao criar um VHD personalizado para o Azure Stack Hub, note que as versões WALinuxAgent entre 2.2.20 e 2.2.35 (ambas exclusivas) não funcionam em ambientes Azure Stack Hub antes do lançamento de 1910.When creating a custom VHD for Azure Stack Hub, note that WALinuxAgent versions between 2.2.20 and 2.2.35 (both exclusive) do not work on Azure Stack Hub environments before the 1910 release. Pode utilizar as versões 2.2.20/2.2.35 versões para preparar a sua imagem.You can use versions 2.2.20/2.2.35 versions to prepare your image. Para utilizar versões acima de 2.2.35 para preparar a sua imagem personalizada, atualize o seu Azure Stack Hub para o lançamento de 1903 ou mais tarde, ou aplique o hotfix de 1901/1902.To use versions above 2.2.35 to prepare your custom image, update your Azure Stack Hub to 1903 release or later, or apply the 1901/1902 hotfix.

    [Antes do lançamento de 1910] Siga estas instruções para descarregar um WALinuxAgent compatível:[Before 1910 release] Follow these instructions to download a compatible WALinuxAgent:

    1. Baixar os mapas de configuração.Download setuptools.

      wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz --no-check-certificate
      tar xzf setuptools-7.0.tar.gz
      cd setuptools-7.0
      
    2. Faça o download e desaperte a versão 2.2.20 do agente do nosso GitHub.Download and unzip the 2.2.20 version of the agent from our GitHub.

      wget https://github.com/Azure/WALinuxAgent/archive/v2.2.20.zip
      unzip v2.2.20.zip
      cd WALinuxAgent-2.2.20
      
    3. Instale setup.py.Install setup.py.

      sudo python setup.py install
      
    4. Reinicie o waagent.Restart waagent.

      sudo systemctl restart waagent
      
    5. Teste se a versão do agente corresponder à que descarregou.Test if the agent version matches the one you downloaded. Para este exemplo, deve ser 2.2.20.For this example, it should be 2.2.20.

      waagent -version
      

    [Depois do lançamento de 1910] Siga estas instruções para descarregar um WALinuxAgent compatível:[After 1910 release] Follow these instructions to download a compatible WALinuxAgent:

    1. O pacote WALinuxAgent, WALinuxAgent-<version> foi empurrado para o repositório extras do Chapéu Vermelho.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Ativar o repositório extra executando o seguinte comando:Enable the extras repository by running the following command:

      subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    2. Instale o Agente Azure Linux executando os seguintes comandos:Install the Azure Linux Agent by running the following commands:

      sudo yum install WALinuxAgent
      sudo systemctl enable waagent.service
      
  14. Não crie espaço de troca no disco do sistema operativo.Do not create swap space on the operating system disk.

    O Agente Azure Linux pode configurar automaticamente o espaço de troca utilizando o disco de recursos local que está ligado ao VM após o VM ser aprovisionado no Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk that's attached to the VM after the VM is provisioned on Azure. O disco de recursos local é um disco temporário, e pode ser esvaziado quando o VM é desprovisionado.The local resource disk is a temporary disk, and it might be emptied when the VM is de-provisioned. Depois de instalar o Agente Azure Linux no passo anterior, modifique os seguintes parâmetros /etc/waagent.conf de forma adequada: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.
    
  15. Desregralar a subscrição (se necessário) executando o seguinte comando:Unregister the subscription (if necessary) by running the following command:

    subscription-manager unregister
    
  16. Se estiver a utilizar um sistema que foi implantado usando uma Enterprise Certificate Authority, o RHEL VM não confiará no certificado raiz do Azure Stack Hub.If you're using a system that was deployed using an Enterprise Certificate Authority, the RHEL VM won't trust the Azure Stack Hub root certificate. Tens de colocar esse certificado na loja de raízes de confiança.You must place that certificate into the trusted root store. Para obter mais informações, consulte adicionar certificados de raiz fidedignos ao servidor.For more information, see Adding trusted root certificates to the server.

  17. Executar os seguintes comandos para desaquisição do VM e prepará-lo para o provisionamento em Azure:Run the following commands to de-provision the VM and prepare it for provisioning on Azure:

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    
  18. Desligue o VM na KVM.Shut down the VM in KVM.

  19. Converta a imagem qcow2 no formato VHD.Convert the qcow2 image to the VHD format.

    Nota

    Existe um bug conhecido nas versões qemu-img >=2.2.1 que resulta num VHD inadequadamente formatado.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. A questão foi corrigida no QEMU 2.6.The issue has been fixed in QEMU 2.6. Recomenda-se que utilize qemu-img 2.2.0 ou inferior, ou atualização para 2.6 ou superior.It's recommended that you use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. Referência: https://bugs.launchpad.net/qemu/+bug/1490611 .Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

    Primeiro converta a imagem em formato cru:First convert the image to raw format:

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

    Certifique-se de que o tamanho da imagem em bruto está alinhado com 1 MB.Make sure that the size of the raw image is aligned with 1 MB. Caso contrário, arredondar o tamanho para alinhar com 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
    

    Converter o disco cru num VHD de tamanho fixo: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
    

    Ou, com a versão qemu 2.6+, incluir a force_size opção: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
    

Prepare um VM baseado em chapéu vermelho da VMwarePrepare a Red Hat-based VM from VMware

Esta secção pressupõe que já instalou um RHEL VM em VMware.This section assumes that you've already installed an RHEL VM in VMware. Para obter mais informações sobre como instalar um sistema operativo em VMware, consulte o Guia de Instalação do Sistema Operativo VMware Guest.For details about how to install an operating system in VMware, see VMware Guest Operating System Installation Guide.

  • Quando instala o sistema operativo Linux, recomendamos que utilize divisórias padrão em vez de LVM, que é frequentemente o padrão para muitas instalações.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. Este método evita conflitos de nome LVM com VMs clonados, especialmente se um disco do sistema operativo precisar de ser ligado a outro VM para resolução de problemas.This method avoids LVM name conflicts with cloned VMs, particularly if an operating system disk ever needs to be attached to another VM for troubleshooting. LVM ou RAID podem ser usados em discos de dados, se preferir.LVM or RAID can be used on data disks if preferred.
  • Não configuure uma partição de troca no disco do sistema operativo.Do not configure a swap partition on the operating system disk. Pode configurar o agente Linux para criar um ficheiro de troca no disco de recursos temporários.You can configure the Linux agent to create a swap file on the temporary resource disk. Pode encontrar mais informações sobre esta configuração nos seguintes passos.You can find more information about this configuration in the following steps.
  • Quando criar o disco rígido virtual, selecione Guarde o disco virtual como um único ficheiro.When you create the virtual hard disk, select Store virtual disk as a single file.

Preparar um RHEL 7 VM da VMwarePrepare an RHEL 7 VM from VMware

  1. Criar ou editar o /etc/sysconfig/network ficheiro e adicionar o seguinte texto:Create or edit the /etc/sysconfig/network file, and add the following text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  2. Criar ou editar o /etc/sysconfig/network-scripts/ifcfg-eth0 ficheiro e adicionar o seguinte texto: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. Certifique-se de que o serviço de rede começa no tempo de arranque executando o seguinte comando:Ensure that the network service starts at boot time by running the following command:

    sudo chkconfig network on
    
  4. Registe a sua assinatura Red Hat para permitir a instalação de pacotes a partir do repositório RHEL executando o seguinte 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. Modifique a linha de arranque do núcleo na sua configuração de larva para incluir parâmetros adicionais de kernel para Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Para fazer esta modificação, abra /etc/default/grub num editor de texto.To make this modification, open /etc/default/grub in a text editor. Modifique o GRUB_CMDLINE_LINUX parâmetro.Modify the GRUB_CMDLINE_LINUX parameter. Por exemplo:For example:

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

    Esta configuração também garante que todas as mensagens de consola são enviadas para a primeira porta em série, que pode ajudar o suporte do Azure com problemas de depuração.This configuration also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Também desliga as novas convenções de nomeação RHEL 7 para OS NICs.It also turns off the new RHEL 7 naming conventions for NICs. Recomendamos que remova os seguintes parâmetros:We recommend that you remove the following parameters:

    rhgb quiet crashkernel=auto
    

    A bota gráfica e silenciosa não é útil num ambiente em nuvem onde queremos que todos os registos sejam enviados para a porta em série.Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. Pode deixar a crashkernel opção configurada se desejar.You can leave the crashkernel option configured if desired. Este parâmetro reduz a quantidade de memória disponível no VM em 128 MB ou mais, o que pode ser problemático em tamanhos VM menores.This parameter reduces the amount of available memory in the VM by 128 MB or more, which might be problematic on smaller VM sizes.

  6. Depois de terminar a /etc/default/grub edição, executar o seguinte comando para reconstruir a configuração da comida:After you're done editing /etc/default/grub, run the following command to rebuild the grub configuration:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  7. Adicione módulos Hiper-V a initramfs.Add Hyper-V modules to initramfs.

    /etc/dracut.confEditar, adicionar conteúdo:Edit /etc/dracut.conf, add content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    Reconstruir initramfs:Rebuild initramfs:

    dracut -f -v
    
  8. [Opcional após lançamento de 1910] Parar e desinstalar a nuvem:[Optional after 1910 release] Stop and uninstall cloud-init:

    systemctl stop cloud-init
    yum remove cloud-init
    
  9. Certifique-se de que o servidor SSH está instalado e configurado para começar na hora de arranque.Ensure that the SSH server is installed and configured to start at boot time. Esta definição é normalmente o padrão.This setting is usually the default. Modificar /etc/ssh/sshd_config para incluir a seguinte linha:Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180
    
  10. Ao criar um vhd personalizado para O Azure Stack Hub, note que as versões WALinuxAgent entre 2.2.20 e 2.2.35 (ambas exclusivas) não funcionam em ambientes Azure Stack Hub antes do lançamento de 1910.When creating a custom vhd for Azure Stack Hub, note that WALinuxAgent versions between 2.2.20 and 2.2.35 (both exclusive) don't work on Azure Stack Hub environments before the 1910 release. Pode utilizar as versões 2.2.20/2.2.35 versões para preparar a sua imagem.You can use versions 2.2.20/2.2.35 versions to prepare your image. Para utilizar versões posteriores a 2.2.35 para preparar a sua imagem personalizada, atualize o seu Azure Stack Hub para o lançamento de 1903 ou mais tarde, ou aplique o hotfix de 1901/1902.To use versions later than 2.2.35 to prepare your custom image, update your Azure Stack Hub to the 1903 release or later, or apply the 1901/1902 hotfix.

    [Antes do lançamento de 1910] Siga estas instruções para descarregar um WALinuxAgent compatível:[Before 1910 release] Follow these instructions to download a compatible WALinuxAgent:

    1. Baixar os mapas de configuração.Download setuptools.

      wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz --no-check-certificate
      tar xzf setuptools-7.0.tar.gz
      cd setuptools-7.0
      
    2. Faça o download e desaperte a versão 2.2.20 do agente do nosso GitHub.Download and unzip the 2.2.20 version of the agent from our GitHub.

      wget https://github.com/Azure/WALinuxAgent/archive/v2.2.20.zip
      unzip v2.2.20.zip
      cd WALinuxAgent-2.2.20
      
    3. Instale setup.py.Install setup.py.

      sudo python setup.py install
      
    4. Reinicie o waagent.Restart waagent.

      sudo systemctl restart waagent
      
    5. Teste se a versão do agente corresponder à que descarregou.Test if the agent version matches the one you downloaded. Para este exemplo, deve ser 2.2.20.For this example, it should be 2.2.20.

      waagent -version
      

    [Depois do lançamento de 1910] Siga estas instruções para descarregar um WALinuxAgent compatível:[After 1910 release] Follow these instructions to download a compatible WALinuxAgent:

    1. O pacote WALinuxAgent, WALinuxAgent-<version> foi empurrado para o repositório extras do Chapéu Vermelho.The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. Ativar o repositório extra executando o seguinte comando:Enable the extras repository by running the following command:

      subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    2. Instale o Agente Azure Linux executando o seguinte comando:Install the Azure Linux Agent by running the following command:

      sudo yum install WALinuxAgent
      sudo systemctl enable waagent.service
      

gitgit

  1. Não crie espaço de troca no disco do sistema operativo.Do not create swap space on the operating system disk.

    O Agente Azure Linux pode configurar automaticamente o espaço de troca utilizando o disco de recursos local ligado ao VM após o fornecimento do VM no Azure.The Azure Linux Agent can automatically configure swap space by using the local resource disk attached to the VM after the VM is provisioned on Azure. Note que o disco de recursos local é um disco temporário, e pode ser esvaziado quando o VM é desproteto.Note that the local resource disk is a temporary disk, and it might be emptied when the VM is de-provisioned. Depois de instalar o Agente Azure Linux no passo anterior, modifique os seguintes parâmetros /etc/waagent.conf de forma adequada: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.
    
  2. Se pretender não registar a subscrição, execute o seguinte comando:If you want to unregister the subscription, run the following command:

    sudo subscription-manager unregister
    
  3. Se estiver a utilizar um sistema que foi implantado usando uma Enterprise Certificate Authority, o RHEL VM não confiará no certificado raiz do Azure Stack Hub.If you're using a system that was deployed using an Enterprise Certificate Authority, the RHEL VM won't trust the Azure Stack Hub root certificate. Tens de colocar isso na loja de raízes de confiança.You must place that into the trusted root store. Para obter mais informações, consulte adicionar certificados de raiz fidedignos ao servidor.For more information, see Adding trusted root certificates to the server.

  4. Executar os seguintes comandos para desaquisição do VM e prepará-lo para o provisionamento em Azure:Run the following commands to de-provision the VM and prepare it for provisioning on Azure:

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    
  5. Desligue o VM e converta o ficheiro VMDK no formato VHD.Shut down the VM, and convert the VMDK file to the VHD format.

    Nota

    Existe um bug conhecido nas versões qemu-img >=2.2.1 que resulta num VHD inadequadamente formatado.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. A questão foi corrigida no QEMU 2.6.The issue has been fixed in QEMU 2.6. Recomenda-se que utilize qemu-img 2.2.0 ou inferior, ou atualização para 2.6 ou superior.It's recommended that you use either qemu-img 2.2.0 or lower, or update to 2.6 or higher.

    Primeiro converta a imagem em formato cru:First convert the image to raw format:

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

    Certifique-se de que o tamanho da imagem em bruto está alinhado com 1 MB.Make sure that the size of the raw image is aligned with 1 MB. Caso contrário, arredondar o tamanho para alinhar com 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
    

    Converter o disco cru num VHD de tamanho fixo: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
    

    Ou, com a versão qemu 2.6+, incluir a force_size opção: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
    

Prepare um VM baseado em chapéu vermelho a partir de um ISO usando um ficheiro de arranque automaticamentePrepare a Red Hat-based VM from an ISO by using a kickstart file automatically

  1. Crie um ficheiro de arranque que inclua o seguinte conteúdo e guarde o ficheiro.Create a kickstart file that includes the following content, and save the file. Parar e desinstalar a nuvem é opcional (o cloud-init é suportado no lançamento do Azure Stack Hub post 1910).Stopping and uninstalling cloud-init is optional (cloud-init is supported on Azure Stack Hub post 1910 release). Instale o agente a partir do redhat repo apenas após a libertação de 1910.Install the agent from the redhat repo only after the 1910 release. Antes de 1910, utilize o repo Azure como feito na secção anterior.Prior to 1910, use the Azure repo as done in the previous section. Para mais informações sobre a instalação do kickstart, consulte o Guia de Instalação 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
    
    Stop and Uninstall cloud-init
    systemctl stop cloud-init
    yum remove cloud-init
    
    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. Coloque o ficheiro de arranque onde o sistema de instalação possa aceder-lhe.Place the kickstart file where the installation system can access it.

  3. No Hyper-V Manager, crie um novo VM.In Hyper-V Manager, create a new VM. Na página 'Ligar o disco rígido virtual', selecione Fixe um disco rígido virtual mais tardee complete o Novo Assistente de Máquina Virtual.On the Connect Virtual Hard Disk page, select Attach a virtual hard disk later, and complete the New Virtual Machine Wizard.

  4. Abra as definições de VM:Open the VM settings:

    a.a. Fixe um novo disco rígido virtual ao VM.Attach a new virtual hard disk to the VM. Certifique-se de selecionar o formato VHD e o tamanho fixo.Make sure to select VHD Format and Fixed Size.

    b.b. Fixe a instalação ISO à unidade de DVD.Attach the installation ISO to the DVD drive.

    c.c. Desapontina o BIOS a partir de CD.Set the BIOS to boot from CD.

  5. Inicie a VM.Start the VM. Quando o guia de instalação aparecer, prima o Separador para configurar as opções de arranque.When the installation guide appears, press Tab to configure the boot options.

  6. Introduza inst.ks=<the location of the kickstart file> no final das opções de arranque e prima Enter.Enter inst.ks=<the location of the kickstart file> at the end of the boot options, and press Enter.

  7. Aguarde que a instalação termine.Wait for the installation to finish. Quando termina, o VM é desligado automaticamente.When it's finished, the VM is shut down automatically. O seu VHD Linux está agora pronto para ser enviado para Azure.Your Linux VHD is now ready to be uploaded to Azure.

Problemas conhecidosKnown issues

O condutor do Hiper-V não pôde ser incluído no disco RAM inicial quando se usa um hipervisor não-Hiper-VThe Hyper-V driver couldn't be included in the initial RAM disk when using a non-Hyper-V hypervisor

Em alguns casos, os instaladores Linux podem não incluir os controladores de Hiper-V no disco RAM inicial (initrd ou initramfs) a menos que Linux detete que está a funcionar num ambiente Hiper-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's running in a Hyper-V environment.

Quando estiver a utilizar um sistema de virtualização diferente (como o Oracle VM VirtualBox, Xen Project, e assim por diante) para preparar a sua imagem Linux, poderá ter de reconstruir o initrd para garantir que pelo menos os módulos de kernel hv_vmbus e hv_storvsc estão disponíveis no disco RAM inicial.When you're using a different virtualization system (like Oracle VM VirtualBox, Xen Project, and so on) 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. Esta é uma questão conhecida pelo menos em sistemas que se baseiam na distribuição a montante do Red Hat.This is a known issue at least on systems that are based on the upstream Red Hat distribution.

Para resolver este problema, adicione módulos Hyper-V aos initramfs e reconstrua-o:To resolve this issue, add Hyper-V modules to initramfs and rebuild it:

Editar /etc/dracut.conf , e adicionar o seguinte conteúdo:Edit /etc/dracut.conf, and add the following content:

add_drivers+="hv_vmbus hv_netvsc hv_storvsc"

Reconstruir initramfs:Rebuild initramfs:

dracut -f -v

Para mais informações, consulte a reconstrução de initramfs.For more information, see rebuilding initramfs.

Passos seguintesNext steps

Está agora pronto para usar o seu disco rígido virtual Red Hat Enterprise Linux para criar novos VMs no Azure Stack Hub.You're now ready to use your Red Hat Enterprise Linux virtual hard disk to create new VMs in Azure Stack Hub. Se esta for a primeira vez que está a enviar o ficheiro VHD para o Azure Stack Hub, consulte Create e publique um item Marketplace.If this is the first time that you're uploading the VHD file to Azure Stack Hub, see Create and publish a Marketplace item.

Para obter mais informações sobre os hipervisores certificados para executar a Red Hat Enterprise Linux, consulte o site da Red Hat.For more information about the hypervisors that are certified to run Red Hat Enterprise Linux, see the Red Hat website.