Share via


Inaktivera eller ta bort Linux-agenten från virtuella datorer och avbildningar

Gäller för: ✔️ Virtuella Linux-datorer ✔️ – flexibla skalningsuppsättningar

Innan du tar bort Linux-agenten måste du förstå vad den virtuella datorn inte kommer att kunna göra när Linux-agenten har tagits bort.

Tillägg för virtuella Azure-datorer (VM) är små program som tillhandahåller konfigurations- och automatiseringsuppgifter efter distributionen på virtuella Azure-datorer, tillägg installeras och hanteras av Azure-kontrollplanet. Det är Azure Linux-agentens uppgift att bearbeta plattformstilläggskommandona och säkerställa rätt tillstånd för tillägget på den virtuella datorn.

Azure-plattformen är värd för många tillägg som sträcker sig från vm-konfiguration, övervakning, säkerhet och verktygsprogram. Det finns ett stort urval av tillägg från första och tredje part, exempel på viktiga scenarier som tillägg används för:

  • Stöd för Azure-tjänster från första part, till exempel Azure Backup, övervakning, diskkryptering, säkerhet, platsreplikering med mera.
  • SSH/Lösenordsåterställning
  • VM-konfiguration – Köra anpassade skript, installera Chef, Puppet-agenter osv.
  • Produkter från tredje part, till exempel AV-produkter, sårbarhetsverktyg för virtuella datorer, verktyg för vm- och appövervakning.
  • Tillägg kan paketeras med en ny VM-distribution. De kan till exempel ingå i en större distribution, konfigurera program vid VM-etablering eller köras mot eventuella tilläggsstyrda tilläggssystem som stöds efter distributionen.

Inaktivera tilläggsbearbetning

Det finns flera sätt att inaktivera tilläggsbearbetning, beroende på dina behov, men innan du fortsätter måste du ta bort alla tillägg som distribuerats till den virtuella datorn, till exempel med hjälp av Azure CLI, kan du lista och ta bort:

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

Anteckning

Om du inte gör ovanstående försöker plattformen skicka tilläggskonfigurationen och tidsgränsen efter 40 minuter.

Inaktivera på kontrollplanet

Om du inte är säker på om du kommer att behöva tillägg i framtiden kan du låta Linux-agenten vara installerad på den virtuella datorn och sedan inaktivera funktionen för tilläggsbearbetning från plattformen. Det här alternativet är tillgängligt i Microsoft.Compute API-versionen 2018-06-01 eller senare och har inget beroende av linux-agentversionen installerad.

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

Du kan enkelt återaktivera den här tilläggsbearbetningen från plattformen med kommandot ovan, men ställa in den på "true".

Ta bort Linux-agenten från en virtuell dator som körs

Kontrollera att du har tagit bort alla befintliga tillägg från den virtuella datorn tidigare, enligt ovan.

Steg 1: Ta bort Azure Linux-agenten

Om du bara tar bort Linux-agenten och inte de associerade konfigurationsartefakterna kan du installera om vid ett senare tillfälle. Kör något av följande, som rot, för att ta bort Azure Linux-agenten:

För Ubuntu 18.04+

sudo apt -y remove walinuxagent

För Redhat 7.X, 8.X och 9.X

sudo yum -y remove WALinuxAgent

För SUSE 12.X, 15.X

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

Steg 2: (Valfritt) Ta bort artefakterna för Azure Linux-agenten

Viktigt

Du kan ta bort alla associerade artefakter i Linux-agenten, men det innebär att du inte kan installera om den vid ett senare tillfälle. Därför rekommenderar vi starkt att du inaktiverar Linux-agenten först och tar bort Linux-agenten med hjälp av ovanstående.

Om du vet att du aldrig kommer att installera om Linux-agenten igen kan du köra följande:

För 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

För 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

För 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

Förbereda en avbildning utan Linux-agenten

Om du har en avbildning som redan innehåller cloud-init och du vill ta bort Linux-agenten, men ändå etablerar med cloud-init, kör du stegen i Steg 2 (och eventuellt Steg 3) som rot för att ta bort Azure Linux-agenten och sedan tar följande bort cloud-init-konfigurationen och cachelagrade data och förbereder den virtuella datorn för att skapa en anpassad avbildning.

sudo cloud-init clean --logs --seed

Avetablera och skapa en avbildning

Linux-agenten har möjlighet att rensa några av de befintliga bildmetadata, med steget "waagent -deprovision+user", men när den har tagits bort måste du utföra åtgärder som nedan och ta bort andra känsliga data från den.

  • Ta bort alla befintliga ssh-värdnycklar

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Ta bort administratörskontot

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Ta bort rotlösenordet

    sudo passwd -d root
    

När du har slutfört ovanstående kan du skapa den anpassade avbildningen med hjälp av Azure CLI.

Skapa en vanlig hanterad avbildning

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

Skapa en virtuell dator från en avbildning som inte innehåller en Linux-agent

När du skapar den virtuella datorn från avbildningen utan Linux-agent måste du se till att vm-distributionskonfigurationen indikerar att tillägg inte stöds på den här virtuella datorn.

Anteckning

Om du inte gör ovanstående försöker plattformen skicka tilläggskonfigurationen och tidsgränsen efter 40 minuter.

Om du vill distribuera den virtuella datorn med tillägg inaktiverade kan du använda Azure CLI med --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

Du kan också göra detta med hjälp av ARM-mallar (Azure Resource Manager) genom att ange "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')]"

Nästa steg

Mer information finns i Etablera Linux.