Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes
Neste artigo, você aprenderá a preparar uma máquina virtual (VM) Red Hat Enterprise Linux (RHEL) para uso no Azure. As versões do RHEL abordadas neste artigo são 7.x, 8.X., 9.x. Os hipervisores para preparação abordados neste artigo são Hyper-V, VM baseada em kernel (KVM), VMware e Kickstart.
Para obter mais informações sobre os requisitos de qualificação para participar do programa Cloud Access da Red Hat, consulte o site do Red Hat Cloud Access e Executando o RHEL no Azure. Para saber como automatizar a criação de imagens RHEL, consulte Azure Image Builder.
Nota
Esteja ciente das versões que estão em seu fim de vida útil (EOL) e não são mais suportadas pela Red Hat. As imagens carregadas que estão no EOL ou além dele são suportadas em uma base razoável de esforço comercial. Para obter mais informações, consulte os Ciclos de vida do produto Red Hat.
Pré-requisitos
Esta seção pressupõe que você já obteve um arquivo ISO do site da Red Hat e instalou a imagem RHEL em um disco rígido virtual (VHD). Para obter mais informações sobre como usar o Gerenciador do Hyper-V para instalar uma imagem do sistema operacional, consulte Instalar a função Hyper-V e configurar uma máquina virtual.
Notas de instalação do RHEL
- O Azure não suporta o formato VHDX. O Azure suporta apenas VHD fixo. Você pode usar o Gerenciador do Hyper-V para converter o disco para o formato VHD ou pode usar o
convert-vhdcmdlet. Se você usar o VirtualBox, selecione Tamanho fixo em vez da opção padrão alocada dinamicamente ao criar o disco. - O Azure suporta VMs Gen1 (inicialização do BIOS) e Gen2 (inicialização UEFI).
- O tamanho máximo permitido para o VHD é de 1.023 GB.
- O módulo do kernel vfat deve ser ativado no kernel.
- O LVM (Logical Volume Manager) tem suporte e pode ser usado no disco do sistema operacional ou em discos de dados em VMs do Azure. Em geral, recomendamos que você use partições padrão no disco do sistema operacional em vez de LVM. Essa prática evita conflitos de nome LVM com VMs clonadas, especialmente se você precisar anexar um disco do sistema operacional a outra VM idêntica para solução de problemas. Para obter mais informações, consulte a documentação LVM e RAID.
- É necessário suporte kernel para a montagem de sistemas de ficheiros UDF (Universal Disk Format). Na primeira inicialização no Azure, a mídia formatada em UDF anexada ao convidado passa a configuração de provisionamento para a VM do Linux. O agente Linux do Azure deve ser capaz de montar o sistema de arquivos UDF para ler sua configuração e provisionar a VM. Sem essa etapa, o provisionamento falha.
- Não configure uma partição swap no disco do sistema operacional. Para obter mais informações, leia as etapas a seguir.
- Todos os VHDs no Azure devem ter um tamanho virtual alinhado a 1 MB. Ao converter de um disco bruto para VHD, você deve garantir que o tamanho do disco bruto seja um múltiplo de 1 MB antes da conversão. Para obter mais informações, leia as etapas a seguir. Consulte também as notas de instalação do Linux.
Nota
Cloud-init >= 21.2 remove o requisito UDF. No entanto, sem o módulo UDF habilitado, o CD-ROM não será montado durante o provisionamento, o que impede que dados personalizados sejam aplicados. Uma solução alternativa é aplicar dados personalizados usando dados do usuário. Ao contrário dos dados personalizados, os dados do usuário não são criptografados. Para obter mais informações, consulte Formatos de dados do usuário.
- RHEL 7 usando o Gerenciador do Hyper-V
- RHEL 8+/9+ usando o Gerenciador do Hyper-V
- RHEL 7 usando KVM
- RHEL 8+/9+ usando KVM
- RHEL 7 usando VMware
- RHEL 8+/9+ usando VMware
- RHEL 7 usando o Kickstart
- RHEL 8+/9+ usando o Kickstart
No Gerenciador do Hyper-V, selecione a VM.
Selecione Conectar para abrir uma janela de console para a VM.
Crie ou edite o
/etc/sysconfig/networkarquivo e adicione o seguinte texto:NETWORKING=yes HOSTNAME=localhost.localdomainCrie ou edite o
/etc/sysconfig/network-scripts/ifcfg-eth0arquivo e adicione o seguinte texto:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yesNota
Quando você usa a Rede Acelerada, a interface sintética criada deve ser configurada para não ser gerenciada usando uma regra udev. Essa ação impede
NetworkManagerde atribuir o mesmo IP a ele como a interface primária.Para aplicá-lo:
sudo tee <<EOF /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules > /dev/null # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparently bonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOFCertifique-se de que o serviço de rede inicia no momento da inicialização:
sudo systemctl enable networkRegistre sua assinatura Red Hat para habilitar a instalação de pacotes a partir do repositório RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXXModifique a linha de inicialização do kernel em sua configuração grub para incluir mais parâmetros do kernel para o Azure. Para fazer essa modificação, abra
/etc/default/grubem um editor de texto e edite oGRUB_CMDLINE_LINUXparâmetro. Por exemplo:GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 net.ifnames=0" GRUB_TERMINAL_OUTPUT="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" ENABLE_BLSCFG=trueNota
Se ENABLE_BLSCFG=false estiver presente em
/etc/default/grubvez de , ferramentas comoENABLE_BLSCFG=trueou gubby, que dependem da Especificação do Carregador de Inicialização (BLS) para gerenciar entradas e configurações de inicialização, podem não funcionar corretamente no RHEL 8 e 9. SeENABLE_BLSCFGnão estiver presente, o comportamento padrão seráfalse.Essa modificação também garante que todas as mensagens do console sejam enviadas para a primeira porta serial e permite a interação com o console serial, o que pode ajudar o suporte do Azure com problemas de depuração. Essa configuração também desativa as novas convenções de nomenclatura para placas de interface de rede (NICs).
rhgb quiet crashkernel=autoInicializações gráficas e silenciosas não são úteis em um ambiente de nuvem onde você deseja que todos os logs sejam enviados para a porta serial. Você pode deixar a opção configurada,
crashkernelse desejar. Esse parâmetro reduz a quantidade de memória disponível na VM em 128 MB ou mais, o que pode ser um problema para tamanhos menores de VM.Depois de concluir a edição
/etc/default/grub, execute o seguinte comando para reconstruir a configuração do grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfgNota
Se você estiver carregando uma VM habilitada para UEFI, o comando para atualizar o grub será
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg.Certifique-se de que o servidor SSH está instalado e configurado para iniciar no momento da inicialização, que geralmente é o padrão. Modifique
/etc/ssh/sshd_configpara incluir a seguinte linha:ClientAliveInterval 180O pacote WALinuxAgent,
WALinuxAgent-<version>, foi enviado para o repositório de extras da Red Hat. Habilite o repositório de extras:sudo subscription-manager repos --enable=rhel-7-server-extras-rpmsInstale o agente
cloud-initLinux do Azure e outros utilitários necessários:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.serviceConfigure
cloud-initpara lidar com o provisionamento:Configure
waagentparacloud-init:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confNota
Se você estiver migrando uma VM específica e não quiser criar uma imagem generalizada, defina
Provisioning.Agent=disableda/etc/waagent.confconfiguração.Configurar montagens:
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfgConfigure a fonte de dados do Azure:
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOFSe configurado, remova o arquivo de permuta existente:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fiConfigurar
cloud-inito registo:sudo echo "Add console log file" sudo tee <<EOF /etc/cloud/cloud.cfg.d/05_logging.cfg > /dev/null # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
Configuração de swap:
Não crie espaço de permuta no disco do sistema operacional.
Anteriormente, o agente Linux do Azure era usado para configurar automaticamente o espaço de permuta usando o disco de recurso local anexado à VM depois que a VM é provisionada no Azure. Esta ação é agora tratada pela
cloud-init. Você não deve usar o agente Linux para formatar o disco de recursos para criar o arquivo de permuta. Modifique os seguintes parâmetros de/etc/waagent.confforma apropriada:ResourceDisk.Format=n ResourceDisk.EnableSwap=nSe você quiser montar, formatar e criar a troca, você pode:
Passe esse código como uma
cloud-initconfiguração sempre que criar uma VM por meio de dados personalizados. Recomendamos este método.Use uma
cloud-initdiretiva incorporada na imagem que executa essa etapa toda vez que a VM é criada.sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg <<EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Configure
cloud-inita telemetria para ajudar na solução de problemas de provisionamento:sudo tee -a /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg <<EOF # This config enables cloud-init to report provisioning telemetry to aid with troubleshooting Reporting: logging: type: log telemetry: type: hyperv EOFSe você quiser cancelar o registro da assinatura, execute o seguinte comando:
sudo subscription-manager unregisterDesprovisione a VM e prepare-a para provisionamento no Azure:
Atenção
Se você estiver migrando uma VM específica e não quiser criar uma imagem generalizada, ignore a etapa de desprovisionamento. A execução do comando
waagent -force -deprovision+usertorna a máquina de origem inutilizável. Esta etapa destina-se apenas a criar uma imagem generalizada.sudo rm -f /var/log/waagent.log sudo cloud-init clean --logs --seed sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0Selecione Ação>Desligar no Gerenciador do Hyper-V. Seu VHD do Linux agora está pronto para ser carregado no Azure.