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>
Skapa en avbildningsversion i ett Azure Compute-galleri
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.