Partilhar via


Visão geral do Azure Linux VM Agent

O Azure Linux VM Agent (waagent) gestiona o provisionamento de Linux e FreeBSD, juntamente com a interação das máquinas virtuais (VM) com o controlador de fabric do Azure. Além do agente Linux fornecer funcionalidade de provisionamento, o Azure oferece a opção de usar cloud-init para alguns sistemas operacionais Linux.

Importante

Para as últimas novidades sobre o suporte FIPS 140-3 ao Agente de Convidados e Extensões da VM, consulte aka.ms/linuxagentfipssupport.

O agente Linux fornece a seguinte funcionalidade para implantações de Máquinas Virtuais Linux e FreeBSD Azure. Para obter mais informações, consulte o Leiame do Agente de VM Linux do Azure no GitHub.

Nota

Experimenta o VM assist para diagnósticos mais rápidos. Recomendamos que execute o VM assist para Windows ou o VM assist para Linux. Essas ferramentas de diagnóstico baseadas em script ajudam você a identificar problemas comuns que afetam o Agente Convidado da VM do Azure e a integridade geral da VM.

Se estiver a experienciar problemas de desempenho com máquinas virtuais, antes de contactar o suporte, execute estas ferramentas.

Provisionamento de imagens

  • Cria uma conta de utilizador.
  • Configura os tipos de autenticação SSH.
  • Implementa chaves públicas Secure Shell (SSH) e pares de chaves.
  • Define o nome do anfitrião.
  • Publica o nome anfitrião do Sistema de Nomes de Domínio (DNS) da plataforma.
  • Reporta a impressão digital da chave SSH do host à plataforma.
  • Gere o disco de recursos.
  • Formata e monta o disco de recursos.
  • Configura o espaço de troca.

Rede

  • Gere as rotas para melhorar a compatibilidade com os servidores DHCP da plataforma.
  • Assegura a estabilidade do nome da interface de rede.

Kernel

  • Configura o NUMA virtual (desativado para kernel 2.6.37).
  • Consome Hyper-V entropia para /dev/random.
  • Configura os timeouts SCSI para o dispositivo raiz, que pode ser remoto.

Diagnóstico

  • Fornece redirecionamento da consola para a porta serial.

Implantações do System Center Virtual Machine Manager

  • Deteta e arranca o agente Virtual Machine Manager para Linux quando está a correr num ambiente System Center Virtual Machine Manager 2012 R2.

Extensão VM

  • Injeta componentes criados pela Microsoft e parceiros em VMs Linux para permitir automação de software e configuração.

Pode encontrar uma implementação de referência de extensão de VM no GitHub.

Comunicação

O fluxo de informações da plataforma para o agente ocorre através de dois canais:

  • Um DVD anexado em tempo de inicialização para implantações de VM. Este DVD inclui um arquivo de configuração compatível com Open Virtualization Format (OVF) que contém todas as informações de provisionamento diferentes dos pares de chaves SSH.
  • Um ponto de extremidade TCP que expõe uma API REST usada para obter implantação e configuração de topologia.

Requisitos

Os testes confirmam que os seguintes sistemas funcionam com o Azure Linux VM Agent.

Nota

Esta lista pode diferir das distribuições Linux aprovadas no Azure.

Editora Distribuição x64 ARM64
Comunidade Alma Linux Alma Linux 8.x+, 9.x+ 8.x+, 9.x+
Credativ Debian Mais de 10 11.x+
Kinvolk Flatcar Linux 3374.2.x+ 3374.2.x+
Microsoft Azure Linux 2.x 2.x
Projeto openSUSE openSUSE 12.3+ Não suportado
Oracle Oracle Linux 6,4+, 7,x+, 8,x+ Não suportado
Red Hat Red Hat Enterprise Linux 6,7+, 7,x+, 8,x+, 9,x+, 10,x+ 8,6+, 9,0+, 10,x+
CIQ Linux rochoso 9.x+ 9.x+
SUSE SLES 12,x+, 15,x+ 15.x SP4+
Canonical Ubuntu (versões LTS) 18.04+, 20.04+, 22.04+, 24.04+ 20.04+, 22.04+, 24.04+

Outros sistemas suportados:

  • O agente trabalha em mais sistemas do que os listados na documentação. No entanto, não testamos nem damos suporte a distribuições que não estejam na lista endossada. Em particular, o FreeBSD não é endossado. Podes experimentar o FreeBSD 8. Se tiveres problemas, podes abrir um problema no nosso repositório GitHub e talvez possamos ajudar.

O agente Linux depende destes pacotes de sistema para funcionar corretamente:

  • Python 2.6+
  • OpenSSL 1.0+
  • OpenSSH 5.3+
  • Utilitários do sistema de arquivos: sfdisk, fdisk, mkfs, parted
  • Ferramentas de senha: chpasswd, sudo
  • Ferramentas de processamento de texto: sed, grep
  • Ferramentas de rede: ip-route
  • Suporte de kernel para montagem de sistemas de arquivos UDF

Certifique-se de que sua VM tenha acesso ao endereço IP 168.63.129.16. Para obter mais informações, consulte O que é o endereço IP 168.63.129.16?.

Instalação

O método suportado de instalar e atualizar o Agente de VM Linux do Azure usa um pacote RPM ou DEB do repositório de pacotes da sua distribuição. Todos os provedores de distribuição endossados integram o pacote do Agente de VM Linux do Azure em suas imagens e repositórios. Algumas distribuições Linux podem desativar a funcionalidade Azure Linux VM Agent Auto Update . Alguns dos repositórios podem também conter versões mais antigas. Versões mais antigas podem ter problemas com extensões modernas, por isso recomendamos que instale a versão estável mais recente.

Tens de garantir que o Azure Linux VM Agent está a atualizar-se corretamente. Recomendamos que tenha a opção AutoUpdate.Enabled=Y no ficheiro /etc/waagent.conf porque comentar essa opção também resulta nos valores padrão. Ter AutoUpdate.Enabled=N não permite que o Azure Linux VM Agent seja atualizado corretamente.

Para obter opções de instalação avançadas, como a instalação a partir de uma fonte ou em locais ou prefixos personalizados, consulte Agente de VM Linux do Microsoft Azure. Fora estes cenários, não suportamos nem recomendamos atualizar ou reinstalar o Azure Linux VM Agent a partir do código-fonte.

Opções da linha de comandos

Sinalizadores

  • verbose: Aumenta o detalhamento do comando especificado.
  • force: Ignora a confirmação interativa para alguns comandos.

Comandos

  • help: Lista os comandos e sinalizadores suportados.

  • deprovision: Tenta limpar o sistema e torná-lo adequado para reabastecimento. A operação exclui:

    • Todas as chaves de host SSH, se Provisioning.RegenerateSshHostKeyPair estiver y no arquivo de configuração.
    • Nameserver configuração em /etc/resolv.conf.
    • A senha de root de /etc/shadowconfiguração.
    • Concessões de cliente DHCP armazenadas em cache.

    O cliente redefine o nome do host como localhost.localdomain.

    Aviso

    O desprovisionamento não garante que a imagem seja limpa de todas as informações confidenciais e adequada para redistribuição.

  • deprovision+user: Executa tudo e deprovision exclui a última conta de usuário provisionada (obtida de /var/lib/waagent) e os dados associados. Use esse parâmetro ao desprovisionar uma imagem que foi provisionada anteriormente no Azure para que possa ser capturada e reutilizada.

  • version: Exibe a versão do waagent.

  • serialconsole: Configura o GRUB para marcar ttyS0, a primeira porta serial, como o console de inicialização. Essa opção garante que os logs de inicialização do kernel sejam enviados para a porta serial e disponibilizados para depuração.

  • daemon: Executa waagent como um daemon para gerenciar a interação com a plataforma. Esse argumento é especificado para waagent no script waagent init .

  • start: Executa waagent como um processo em segundo plano.

Configuração

O arquivo de configuração /etc/waagent.conf controla as ações do waagent. Aqui está um exemplo de um arquivo de configuração:

Provisioning.Enabled=y
Provisioning.DeleteRootPassword=n
Provisioning.RegenerateSshHostKeyPair=y
Provisioning.SshHostKeyPairType=rsa
Provisioning.MonitorHostName=y
Provisioning.DecodeCustomData=n
Provisioning.ExecuteCustomData=n
Provisioning.AllowResetSysUser=n
Provisioning.PasswordCryptId=6
Provisioning.PasswordCryptSaltLength=10
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.MountOptions=None
ResourceDisk.EnableSwap=n
ResourceDisk.SwapSizeMB=0
LBProbeResponder=y
Logs.Verbose=n
OS.RootDeviceScsiTimeout=300
OS.OpensslPath=None
HttpProxy.Host=None
HttpProxy.Port=None
AutoUpdate.Enabled=y

As opções de configuração são de três tipos: Boolean, String, ou Integer. Você pode especificar as opções de Boolean configuração como y ou n. A palavra-chave especial None pode ser usada para algumas entradas de configuração de tipo de cadeia de caracteres.

Provisionamento.Habilitado

Type: Boolean
Default: y

Essa opção permite que o usuário habilite ou desabilite a funcionalidade de provisionamento no agente. Os valores válidos são y e n. Se o provisionamento estiver desabilitado, o host SSH e as chaves de usuário na imagem serão preservados e a configuração na API de provisionamento do Azure será ignorada.

Nota

O Provisioning.Enabled parâmetro assume n como padrão no Ubuntu Cloud Images que usam cloud-init para provisionamento.

Provisioning.DeleteRootPassword

Type: Boolean
Default: n

Se o valor for y, o agente apaga a senha do root no o arquivo /etc/shadow no processo de provisionamento.

Provisionamento.RegenerateSshHostKeyPair

Type: Boolean
Default: y

Se o valor for y, o agente excluirá todos os pares de chaves de host SSH de /etc/ssh/ durante o processo de provisionamento, incluindo ECDSA, DSA e RSA. O agente gera um único par de chaves novas.

Configure o tipo de criptografia para o novo par de chaves usando a Provisioning.SshHostKeyPairType entrada. Algumas distribuições recriam pares de chaves SSH para quaisquer tipos de encriptação em falta quando o daemon SSH é reiniciado. Um exemplo é depois de um reincheio.

Provisioning.SshHostKeyPairType

Type: String
Default: rsa

Você pode definir essa opção para um tipo de algoritmo de criptografia que o daemon SSH suporta na VM. Os valores normalmente suportados são rsa, dsae ecdsa. O ficheiro putty.exe no Windows não suporta ecdsa. Se você pretende usar putty.exe no Windows para se conectar a uma implantação do Linux, use rsa ou dsa.

Provisioning.MonitorHostName

Type: Boolean
Default: y

Se o valor for y, waagent monitorará a VM Linux para uma alteração de nome de hostname host, conforme retornado pelo comando. Em seguida, o Waagent atualiza automaticamente a configuração de rede na imagem para refletir a alteração. Para enviar a alteração de nome para os servidores DNS, a rede é reiniciada na VM. Esta reinicialização resulta em breve perda de conectividade com a Internet.

Provisionamento.DecodeCustomData

Type: Boolean
Default: n

Se o valor for y, waagent decodifica CustomData de Base64.

Provisionamento.ExecutarDadosPersonalizados

Type: Boolean
Default: n

Se o valor for y, o waagent será executado CustomData após o provisionamento.

Provisioning.AllowResetSysUser

Type: Boolean
Default: n

Esta opção permite que a senha para o usuário do sistema seja redefinida. Está desativada por predefinição.

Provisioning.PasswordCryptId

Type: String
Default: 6

Esta opção especifica o algoritmo que crypt usa quando está gerando um hash de senha. Os valores válidos são:

  • 1: MD5
  • 2a: Baiacu
  • 5: SHA-256
  • 6: SHA-512

Provisioning.PasswordCryptSaltLength

Type: String
Default: 10

Esta opção especifica o comprimento do sal aleatório usado na geração de um hash de senha.

ResourceDisk.Format

Type: Boolean
Default: y

Se o valor for y, waagent formata e monta o disco de recursos fornecido pela plataforma, a menos que o tipo de sistema de arquivos solicitado pelo usuário seja ResourceDisk.Filesystemntfs. O agente disponibiliza uma única partição Linux (ID 83) no disco. Esta partição pode não estar formatada se puder ser montada com êxito.

ResourceDisk.Filesystem

Type: String
Default: ext4

Esta opção especifica o tipo de sistema de arquivos para o disco de recurso. Os valores suportados variam de acordo com a distribuição Linux. Se a cadeia for X, então mkfs.X deve estar presente na imagem Linux.

ResourceDisk.MountPoint

Type: String
Default: /mnt/resource

Esta opção especifica o caminho no qual o disco de recurso é montado. O disco de recurso é um disco temporário e pode ser esvaziado quando a VM é desprovisionada.

ResourceDisk.MountOptions

Type: String
Default: None

Esta opção especifica as opções de montagem em disco a serem passadas para o mount -o comando. O valor é uma lista de valores separada por vírgula, por exemplo, nodev,nosuid. Para obter mais informações, consulte a página de mount(8) manual.

ResourceDisk.EnableSwap

Type: Boolean
Default: n

Se você definir essa opção, o agente criará um arquivo de permuta (/swapfile) no disco de recursos e o adicionará ao espaço de permuta do sistema.

ResourceDisk.SwapSizeMB

Type: Integer
Default: 0

Esta opção especifica o tamanho do arquivo de permuta em megabytes.

Logs.Verbose

Type: Boolean
Default: n

Se você definir essa opção, a verbosidade do log será aumentada. Waagent registra em /var/log/waagent.log e usa a funcionalidade do sistema logrotate para girar logs.

OS. HabilitarRDMA

Type: Boolean
Default: n

Se você definir essa opção, o agente tentará instalar e carregar um driver de kernel RDMA que corresponda à versão do firmware no hardware subjacente.

OS. RootDeviceScsiTimeout

Type: Integer
Default: 300

Esta opção configura o timeout SCSI em segundos no disco e nas unidades de dados do sistema operativo. Se não estiver definido, usam-se os valores predefinidos do sistema.

OS.OpensslPath

Type: String
Default: None

Você pode usar essa opção para especificar um caminho alternativo para o binário openssl a ser usado para operações criptográficas.

HttpProxy.Host, HttpProxy.Port

Type: String
Default: None

Se você definir essa opção, o agente usará esse servidor proxy para acessar a Internet.

AutoUpdate.Enabled

Type: Boolean
Default: y

Habilite ou desabilite a atualização automática para processamento do estado da meta. O valor predefinido é y.

Coleta automática de logs no Agente Convidado Linux do Azure

A partir da versão 2.7+, o Agente Convidado Linux do Azure tem um recurso para coletar automaticamente alguns logs e carregá-los. Atualmente, esse recurso requer systemd. Ele usa uma nova systemd fatia chamada azure-walinuxagent-logcollector.slice para gerenciar recursos enquanto executa a coleta.

O objetivo é facilitar a análise offline. O agente produz um arquivo .zip de alguns logs de diagnóstico antes de carregá-los no host da VM. As equipes de engenharia e os profissionais de suporte podem recuperar o arquivo para investigar problemas para o proprietário da VM. Para obter informações técnicas sobre os arquivos que o Agente Convidado Linux do Azure coleta, consulte o arquivo azurelinuxagent/common/logcollector_manifests.py no repositório GitHub do agente.

Você pode desativar essa opção editando /etc/waagent.conf. Atualizar Logs.Collect para n.

Imagens de Nuvem Ubuntu

O Ubuntu Cloud Images usa cloud-init para executar muitas tarefas de configuração que o Agente de VM Linux do Azure gerenciaria de outra forma. Aplicam-se as seguintes diferenças:

  • Provisioning.Enabled é definido como padrão para n nas Imagens de Nuvem do Ubuntu que usam o cloud-init para executar tarefas de provisionamento.

  • Os seguintes parâmetros de configuração não têm efeito no Ubuntu Cloud Images que usam cloud-init para gerenciar o disco de recursos e espaço de troca:

    • ResourceDisk.Format
    • ResourceDisk.Filesystem
    • ResourceDisk.MountPoint
    • ResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMB

Para configurar o ponto de montagem do disco de recursos e trocar espaço no Ubuntu Cloud Images durante o provisionamento, consulte os seguintes recursos: