Desativar ou remover o Agente Linux de VMs e imagens
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Antes de remover o Agente Linux, você deve entender o que a VM não poderá fazer depois que o Agente Linux for removido.
As extensões de máquina virtual (VM) do Azure são pequenos aplicativos que fornecem tarefas de configuração e automação pós-implantação em VMs do Azure, as extensões são instaladas e gerenciadas pelo plano de controle do Azure. É tarefa do Agente Linux do Azure processar os comandos de extensão de plataforma e garantir o estado correto da extensão dentro da VM.
A plataforma Azure hospeda muitas extensões que vão desde configuração de VM, monitoramento, segurança e aplicativos utilitários. Há uma grande variedade 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 primários do Azure, como Backup do Azure, Monitoramento, Criptografia de Disco, Segurança, Replicação de Site e outros.
- SSH / Redefinições de senha
- Configuração de VM - Executando scripts personalizados, instalando Chef, agentes Puppet etc.
- Produtos de terceiros, como produtos AV, ferramentas de vulnerabilidade de VM, ferramentas de monitoramento de VM e aplicativos.
- As extensões podem ser agrupadas com uma nova implantação de VM. Por exemplo, eles podem fazer parte de uma implantação maior, configurar aplicativos no provisionamento de VM ou ser executados em qualquer sistema operado por extensão suportado após a implantação.
Desativando o processamento de extensão
Há várias maneiras de desabilitar o processamento de extensão, dependendo de suas necessidades, mas antes de continuar, você DEVE remover todas as extensões implantadas na VM, por exemplo, usando a CLI do Azure, você pode listar e excluir:
az vm extension delete -g MyResourceGroup --vm-name MyVm -n extension_name
Nota
Se você não fizer o acima, a plataforma tentará enviar a configuração da extensão e o tempo limite após 40min.
Desativar no plano de controle
Se você não tiver certeza se precisará de extensões no futuro, você pode deixar o Agente Linux instalado na VM e, em seguida, desativar a capacidade de processamento de extensões da plataforma. Esta opção está disponível na Microsoft.Compute
versão 2018-06-01
api ou superior, e não tem uma dependência da versão do Linux Agent instalada.
az vm update -g <resourceGroup> -n <vmName> --set osProfile.allowExtensionOperations=false
Você pode facilmente reativar esse processamento de extensão da plataforma, com o comando acima, mas defini-lo como 'true'.
Remover o Agente Linux de uma VM em execução
Certifique-se de ter removido todas as extensões existentes da VM antes, conforme descrito acima.
Etapa 1: Remover o Agente Linux do Azure
Se você apenas remover o Agente Linux, e não os artefatos de configuração associados, poderá reinstalar em uma data posterior. Execute um dos seguintes, como root, 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
Etapa 2: (Opcional) Remover os artefatos do Agente Linux do Azure
Importante
Você pode remover todos os artefatos associados do Agente Linux, mas isso significa que você não pode reinstalá-lo em uma data posterior. Portanto, é altamente recomendável que você considere desativar o Agente Linux primeiro, removendo o Agente Linux usando apenas o acima.
Se você sabe que nunca mais reinstalará o Agente Linux, então você 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
Preparando uma imagem sem o Agente Linux
Se você tiver uma imagem que já contém cloud-init e quiser remover o agente Linux, mas ainda provisionar usando cloud-init, execute as etapas na Etapa 2 (e, opcionalmente, na Etapa 3) como root para remover o Agente Linux do Azure e, em seguida, o seguinte removerá a configuração 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 Linux tem a capacidade de limpar alguns dos metadados de imagem existentes, com a etapa "waagent -deprovision+user", no entanto, depois de ter sido removido, você precisará executar ações como as abaixo, e remover quaisquer outros dados confidenciais dele.
Remova 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>
Exclua a senha de root
sudo passwd -d root
Depois de concluir o procedimento acima, você pode 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>
Criar uma versão de imagem em uma Galeria de Computação do Azure
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
Criando uma VM a partir de uma imagem que não contém um agente Linux
Ao criar a VM a partir da imagem sem agente Linux, você precisa garantir que a configuração de implantação da VM indique que as extensões não são suportadas nessa VM.
Nota
Se você não fizer o acima, a plataforma tentará enviar a configuração da extensão e o tempo limite após 40min.
Para implantar a VM com 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óximos passos
Para obter mais informações, consulte Provisionamento do Linux.