Desabilitar ou remover o agente do Linux de VMs e imagens

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

Antes de remover o agente do Linux, você deve entender o que a VM não poderá fazer depois que o agente for removido.

As extensões de VM (máquina virtual) do Azure são pequenos aplicativos que fornecem tarefas de configuração e automação após a implantação em VMs do Azure, as extensões são instaladas e gerenciadas pelo painel de controle do Azure. É trabalho do agente do Linux do Azure processar os comandos de extensão de plataforma e garantir o estado correto da extensão dentro da VM.

A plataforma do Azure hospeda várias extensões que variam de configuração de VM, monitoramento, segurança e aplicativos de utilidade. Há uma grande variedade de opções de extensões próprias e de terceiros. Exemplos de cenários-chave para os quais as extensões são usadas:

  • Suporte a serviços próprios do Azure, como backup do Azure, monitoramento, criptografia de disco, segurança, replicação de site, entre outros.
  • SSH/redefinições de senha
  • Configuração da VM - execução de scripts personalizados, instalando os agentes Chef, Puppet etc.
  • Produtos de terceiros, como produtos AV, ferramentas de vulnerabilidade de VM, ferramentas de monitoramento de aplicativos e VMs.
  • As extensões podem ser incluídas com uma nova implantação de VM. Por exemplo, podem fazer parte de uma implantação maior, configuração de aplicativos no provisionamento de VM, ou executar em qualquer pós-implantação de sistemas operado por extensão com suporte.

Desabilitar o processamento da extensão

Há várias maneiras de desabilitar o processamento da extensão, dependendo de suas necessidades, mas antes de continuar, você deve remover todas as extensões implantadas na VM, por exemplo, usando o CLI do Azure, você pode listar e excluir:

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

Observação

Se você não fizer isso, a plataforma tentará enviar a configuração de extensão e o tempo limite após 40 minutos.

Desabilitar no plano de controle

Caso você não tenha certeza se precisará de extensões no futuro, poderá deixar o agente do Linux instalado na VM e desabilitar a capacidade de processamento da extensão na plataforma. Essa opção está disponível na versão da API Microsoft.Compute2018-06-01 ou superior e independe da versão do agente do Linux instalada.

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

Você pode reabilitar facilmente esse processamento de extensão da plataforma usando o comando acima, definindo-o como 'true'.

Remover o agente do Linux de uma VM em execução

Verifique se você removeu todas as extensões existentes da VM antes de fazer isso, conforme descrito acima.

Etapa 1: Remover o agente do Linux do Azure

Se você apenas remover o agente do Linux, sem remover os artefatos de configuração associados, poderá reinstalá-lo em uma data posterior. Execute uma das seguintes opções como raiz para remover o agente do 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

Etapa 2: Remover os artefatos do agente do Linux do Azure (opcional)

Importante

Você pode remover todos os artefatos associados do agente do Linux, mas isso significa que você não poderá reinstalá-lo em uma data posterior. Portanto, é altamente recomendado que você considere desabilitar o agente do Linux primeiro, removendo-o seguindo o procedimento acima somente.

Se você souber que não reinstalará o agente do Linux novamente, será possível 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 do Linux

Se você tiver uma imagem que já contém cloud-init e quiser remover o agente do Linux, mas ainda provisionar usando cloud-init, execute as instruções da Etapa 2 (e, opcionalmente, da Etapa 3) como raiz para remover o agente Linux do Azure e, em seguida, a outra etapa removerá a configuração de cloud-init e os dados armazenados em cache e preparará a VM para criar uma imagem personalizada.

sudo cloud-init clean --logs --seed

Desprovisionar e criar uma imagem

O agente do Linux permite limpar alguns dos metadados de imagem existentes. Com a etapa "waagent -deprovision+user", no entanto, depois que ele tiver sido removido, será necessário executar as ações abaixo e remover quaisquer outros dados confidenciais.

  • Remover todas as chaves de host SSH existentes

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

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Excluir a senha raiz

    sudo passwd -d root
    

Depois de concluir as etapas acima, você poderá criar a imagem personalizada usando a CLI do Azure.

Criar uma imagem gerenciada regular

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 com base em uma imagem que não contém um agente do Linux

Ao criar a VM com base na imagem sem nenhum agente do Linux, você precisa garantir que a configuração de implantação da VM indique que ela não dá suporte às extensões.

Observação

Se você não fizer isso, a plataforma tentará enviar a configuração de extensão e o tempo limite após 40 minutos.

Para implantar a VM com as extensões desabilitadas, você pode usar 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

Como alternativa, você pode fazer isso usando modelos do Azure Resource Manager (ARM), definindo "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')]"

Próximas etapas

Para saber mais, confira o tópico Provisionamento do Linux.