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.Compute
2018-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>
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
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.