Aprovisionamento de VMs linux do Azure

Aplica-se a: ✔️ Conjuntos de dimensionamento flexíveis de VMs ✔️ do Linux

Quando cria uma VM a partir de uma imagem generalizada (Galeria de Computação do Azure ou Imagem Gerida), o plano de controlo irá permitir-lhe criar uma VM e transmitir parâmetros e definições para a VM. Isto chama-se aprovisionamento de VMs. Durante o aprovisionamento, a plataforma disponibiliza valores de parâmetros de Criação de VMs necessários (nome de anfitrião, nome de utilizador, palavra-passe, chaves SSH, customData) para a VM à medida que arranca.

Um agente de aprovisionamento integrado dentro da imagem irá interagir com a plataforma, ligando-se a várias interfaces de aprovisionamento independentes), definir as propriedades e o sinal para a plataforma que concluiu.

Os agentes de aprovisionamento podem ser o Agente Linux do Azure ou o cloud-init. Estes são pré-requisitos da criação de imagens generalizadas.

Os agentes de aprovisionamento fornecem suporte para todas as distribuições do Linux do Azure aprovadas e, em muitos casos, as imagens de distribuição aprovadas serão fornecidas com o cloud-init e o Agente do Linux. Isto dá-lhe a opção de ter o cloud-init para processar o aprovisionamento e, em seguida, o Agente do Linux fornecerá suporte para processar as Extensões do Azure. Fornecer suporte para extensões significa que a VM será elegível para suportar serviços adicionais do Azure, tais como Reposição de Palavra-passe da VM, Monitorização do Azure, Azure Backup, Encriptação de discos do Azure, etc.

Após a conclusão do aprovisionamento, o cloud-init será executado em cada arranque. O Cloud-init irá monitorizar as alterações à VM, como alterações de rede, montagem e formatação do disco efémero e iniciar o Agente do Linux. O Agente Linux é executado continuamente no servidor, procurando um "estado de objetivo" (nova configuração) a partir da plataforma do Azure, pelo que, sempre que instalar extensões, o agente poderá processá-las.

Embora existam atualmente dois agentes de aprovisionamento, o cloud-init deve ser o agente de aprovisionamento que escolher e o Agente do Linux deve ser instalado para suporte de extensão. Isto permite-lhe tirar partido das otimizações da plataforma e permite-lhe desativar/remover o Agente linux, para obter mais detalhes sobre como criar imagens sem o agente e como removê-lo, veja esta documentação.

Se tiver um kernel do Linux que não suporta a execução de qualquer um dos agentes, mas quiser definir algumas das propriedades criar da VM, tais como nome de anfitrião, customData, userName, palavra-passe, chaves ssh, este documento aborda como pode criar imagens generalizadas sem um agente e cumprir os requisitos da plataforma.

Responsabilidades do agente de aprovisionamento

Aprovisionamento de imagens

  • Criação de uma conta de utilizador
  • Configurar tipos de autenticação SSH
  • Implementação de chaves públicas SSH e pares de chaves
  • Definir o nome do anfitrião
  • Publicar o nome do anfitrião no DNS da plataforma
  • Reporting SSH host key fingerprint to the platform (Comunicar a impressão digital da chave do anfitrião SSH na plataforma)
  • Gestão de Discos de Recursos
  • Formatar e montar o disco de recursos
  • Consumo e processamento customData

Rede

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

Kernel

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

Diagnóstico

  • Redirecionamento da consola para a porta de série

Comunicação

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

  • Um DVD anexado em tempo de arranque para implementações IaaS. O DVD inclui um ficheiro de configuração compatível com OVF que inclui todas as informações de aprovisionamento, para além dos pares de chaves SSH reais.
  • Um ponto final TCP que expõe uma API REST utilizada para obter a implementação e a configuração da topologia.

Requisitos do agente de aprovisionamento do Azure

O Agente Linux e o cloud-init dependem de alguns pacotes de sistema para funcionarem corretamente:

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

Passos seguintes

Se for necessário, pode desativar o aprovisionamento e remover o agente Linux.