Provisionamento de VM do Azure Linux

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

Quando você cria uma VM a partir de uma imagem generalizada (Galeria de Computação do Azure ou Imagem Gerenciada), o plano de controle permitirá que você crie uma VM e passe parâmetros e configurações para a VM. Isso é chamado de provisionamento de VM. Durante o provisionamento, a plataforma disponibiliza os valores de parâmetro VM Create necessários (nome de host, nome de usuário, senha, chaves SSH, customData) para a VM à medida que ela é inicializada.

Um agente de provisionamento dentro da imagem fará interface com a plataforma, conectando-se a várias interfaces de provisionamento independentes), definirá as propriedades e sinalizará para a plataforma concluída.

Os agentes de provisionamento podem ser o Agente Linux do Azure ou cloud-init. Estes são pré-requisitos para criar imagens generalizadas.

Os agentes de provisionamento, fornecem suporte para todas as distribuições Linux do Azure endossadas, e você encontrará as imagens de distribuição endossadas em muitos casos serão fornecidas com o cloud-init e o Linux Agent. Isso lhe dá a opção de ter cloud-init para lidar com o provisionamento e, em seguida, o Agente Linux fornecerá suporte para lidar com as Extensões do Azure. Fornecer suporte para extensões significa que a VM estará qualificada para dar suporte a serviços adicionais do Azure, como Redefinição de Senha de VM, Monitoramento do Azure, Backup do Azure, criptografia de disco do Azure etc.

Após a conclusão do provisionamento, o cloud-init será executado em cada inicialização. O Cloud-init monitorará alterações na VM, como alterações de rede, montagem e formatação do disco efêmero e inicialização do Agente Linux. O Agente Linux é executado continuamente no servidor, buscando um 'estado de meta' (nova configuração) da plataforma Azure, portanto, sempre que você instalar extensões, o agente poderá processá-las.

Embora existam atualmente dois agentes de provisionamento, o cloud-init deve ser o agente de provisionamento escolhido e o Agente Linux deve ser instalado para suporte de extensão. Isso permite que você aproveite as otimizações de plataforma e permite que você desative/remova o Agente Linux, para obter mais detalhes sobre como criar imagens sem o agente e como removê-lo, consulte esta documentação.

Se você tem um kernel Linux que não suporta a execução de nenhum dos agentes, mas deseja definir algumas das propriedades VM Create, como hostname, customData, userName, password, ssh keys, então neste documento discute como você pode criar imagens generalizadas sem um agente e atender aos requisitos da plataforma.

Responsabilidades do agente de provisionamento

Provisionamento de imagens

  • Criação de uma conta de utilizador
  • Configurando tipos de autenticação SSH
  • Implantação de chaves públicas SSH e pares de chaves
  • Definindo o nome do host
  • Publicando o nome do host no DNS da plataforma
  • Relatando a impressão digital da chave do host SSH para a plataforma
  • Gerenciamento de disco de recursos
  • Formatação e montagem do disco de recursos
  • Consumo e processamento customData

Rede

  • Gerencia rotas para melhorar a compatibilidade com servidores DHCP da plataforma
  • Garante a estabilidade do nome da interface de rede

Kernel

  • Configura NUMA virtual (desativar para kernel <2.6.37)
  • Consome entropia do Hyper-V para /dev/random
  • Configura tempos limite SCSI para o dispositivo raiz (que pode ser remoto)

Diagnóstico

  • Redirecionamento do console para a porta serial

Comunicação

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

  • Um DVD anexado em tempo de inicialização para implantações IaaS. O DVD inclui um arquivo de configuração compatível com OVF que inclui todas as informações de provisionamento, exceto os pares de chaves SSH reais.
  • Um ponto de extremidade TCP expondo uma API REST usada para obter implantação e configuração de topologia.

Requisitos do agente de provisionamento do Azure

O Linux Agent, e cloud-init, dependem de alguns pacotes do sistema para funcionar corretamente:

  • Python 2.6+
  • OpenSSL 1.0+
  • OpenSSH 5.3+
  • Utilitários do sistema de ficheiros: 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.

Próximos passos

Se precisar, você pode desativar o provisionamento e remover o agente Linux.