Share via


Desativar ou remover o Agente linux de VMs e imagens

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

Antes de remover o Agente Linux, tem de compreender o que a VM não poderá fazer depois de o Agente Linux ser removido.

As extensões de máquina virtual (VM) do Azure são pequenas aplicações que fornecem tarefas de configuração e automatização pós-implementação em VMs do Azure, as extensões são instaladas e geridas pelo plano de controlo do Azure. É tarefa do Agente linux do Azure processar os comandos da extensão da plataforma e garantir o estado correto da extensão dentro da VM.

A plataforma do Azure aloja muitas extensões que vão desde a configuração, monitorização, segurança e aplicações utilitárias da VM. Existe uma grande opção de extensões de primeiro e terceiros, exemplos de cenários-chave para os quais as extensões são utilizadas:

  • Suportar serviços do Azure de primeira entidade, como Azure Backup, Monitorização, Encriptação de Disco, Segurança, Replicação de Sites e outros.
  • Reposições de SSH/Palavra-passe
  • Configuração da VM – Executar scripts personalizados, instalar o Chef, agentes puppet, etc..
  • Produtos de terceiros, como produtos AV, ferramentas de vulnerabilidade da VM, ferramentas de monitorização de aplicações e VMs.
  • As extensões podem ser agrupadas com uma nova implementação de VM. Por exemplo, podem fazer parte de uma implementação maior, configurar aplicações no aprovisionamento de VM ou executar em qualquer sistema operativo de extensão suportado após a implementação.

Desativar o processamento de extensões

Existem várias formas de desativar o processamento de extensões, consoante as suas necessidades, mas antes de continuar, tem de remover todas as extensões implementadas na VM, por exemplo através da CLI do Azure, pode listar e eliminar:

az vm extension delete -g MyResourceGroup --vm-name MyVm -n extension_name

Nota

Se não fizer o procedimento acima, a plataforma tentará enviar a configuração da extensão e o tempo limite após 40min.

Desativar no plano de controlo

Se não tiver a certeza se irá precisar de extensões no futuro, pode deixar o Agente do Linux instalado na VM e, em seguida, desativar a capacidade de processamento de extensões a partir da plataforma. Esta é a opção disponível na Microsoft.Compute versão 2018-06-01 da API ou superior e não tem uma dependência da versão do Agente linux instalada.

az vm update -g <resourceGroup> -n <vmName> --set osProfile.allowExtensionOperations=false

Pode facilmente reativar este processamento de extensões a partir da plataforma, com o comando acima, mas defini-lo como "verdadeiro".

Remover o Agente linux de uma VM em execução

Certifique-se de que removeu todas as extensões existentes da VM anteriormente, conforme acima.

Passo 1: Remover o Agente Linux do Azure

Se remover o Agente Linux e não os artefactos de configuração associados, pode reinstalar mais tarde. Execute um dos seguintes procedimentos, como raiz, para remover o Agente Linux do Azure:

Para ubuntu 18.04+

sudo apt -y remove walinuxagent

Para Redhat 7.X, 8.X e 9.X

sudo yum -y remove WALinuxAgent

Para SUSE 12.X, 15.X

sudo zypper --non-interactive remove python-azure-agent

Passo 2: (Opcional) Remover os artefactos do Agente Linux do Azure

Importante

Pode remover todos os artefactos associados do Agente Linux, mas isto significa que não pode reinstalá-lo mais tarde. Por conseguinte, recomenda-se vivamente que considere desativar primeiro o Agente linux, removendo o Agente Linux utilizando apenas o acima.

Se souber que nunca mais irá reinstalar o Agente Linux, pode executar o seguinte:

Para ubuntu 18.04+

sudo pt -y purge walinuxagent
sudo cp -rp /var/lib/waagent /var/lib/waagent.bkp
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log

Para Redhat 7.X, 8.X, 9.X

sudo yum -y remove WALinuxAgent
sudo rm -f /etc/waagent.conf.rpmsave
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log

Para SUSE 12.X, 15.X

sudo zypper --non-interactive remove python-azure-agent
sudo rm -f /etc/waagent.conf.rpmsave
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log

Preparar uma imagem sem o Agente Linux

Se tiver uma imagem que já contém o cloud-init e quiser remover o agente linux, mas continuar a aprovisionar com o cloud-init, execute os passos no Passo 2 (e, opcionalmente, passo 3) como raiz para remover o Agente linux do Azure e, em seguida, o seguinte irá remover a configuração do cloud-init e os dados em cache e preparar a VM para criar uma imagem personalizada.

sudo cloud-init clean --logs --seed

Desaprovisionar e criar uma imagem

O Agente linux tem a capacidade de limpar alguns dos metadados de imagem existentes, com o passo "waagent -deprovision+user", no entanto, depois de ter sido removido, terá de executar ações como a abaixo e remover quaisquer outros dados confidenciais dos mesmos.

  • Remover todas as chaves de anfitrião ssh existentes

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Eliminar a conta de administrador

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Eliminar a palavra-passe de raiz

    sudo passwd -d root
    

Depois de concluir o procedimento acima, pode criar a imagem personalizada com a CLI do Azure.

Criar uma imagem gerida normal

az vm deallocate -g <resource_group> -n <vm_name>
az vm generalize -g <resource_group> -n <vm_name>
az image create -g <resource_group> -n <image_name> --source <vm_name>
az sig image-version create \
    -g $sigResourceGroup
    --gallery-name $sigName
    --gallery-image-definition $imageDefName
    --gallery-image-version 1.0.0
    --managed-image /subscriptions/00000000-0000-0000-0000-00000000xxxx/resourceGroups/imageGroups/providers/images/MyManagedImage

Criar uma VM a partir de uma imagem que não contenha um Agente Linux

Quando cria a VM a partir da imagem sem agente linux, tem de garantir que a configuração de implementação da VM indica que as extensões não são suportadas nesta VM.

Nota

Se não fizer o procedimento acima, a plataforma tentará enviar a configuração da extensão e o tempo limite após 40min.

Para implementar a VM com extensões desativadas, pode utilizar a CLI do Azure com --enable-agent.

az vm create \
    --resource-group $resourceGroup \
    --name $prodVmName \
    --image RedHat:RHEL:8.1-ci:latest \
    --admin-username azadmin \
    --ssh-key-value "$sshPubkeyPath" \
    --enable-agent false

Em alternativa, pode fazê-lo com modelos do Azure Resource Manager (ARM), ao definir "provisionVMAgent": false,.

"osProfile": {
    "computerName": "[parameters('virtualMachineName')]",
    "adminUsername": "[parameters('adminUsername')]",
    "linuxConfiguration": {
        "disablePasswordAuthentication": "true",
        "provisionVMAgent": false,
        "ssh": {
            "publicKeys": [
                {
                    "path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
                    "keyData": "[parameters('adminPublicKey')]"

Passos seguintes

Para obter mais informações, veja Aprovisionar o Linux.