Dela via


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

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

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 kommandona för plattformstillägget och säkerställa rätt tillstånd för tillägget i 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 flera.
  • 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 distribution av virtuella datorer. De kan till exempel ingå i en större distribution, konfigurera program på VM-etablering eller köras mot tilläggsdrivna system 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

Kommentar

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 behöver 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 återanvända den här tilläggsbearbetningen från plattformen, med kommandot ovan, men ange den till "true".

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

Se till 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 Azure Linux-agentartefakter

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 endast.

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 tar sedan bort konfigurationen av cloud-init 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 konfigurationen för VM-distributionen anger att tillägg inte stöds på den här virtuella datorn.

Kommentar

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.