Share via


Deaktivieren oder Entfernen des Linux-Agents aus VMs und Images

Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen

Bevor Sie den Linux-Agent entfernen, sollten Sie wissen, welche Aktionen die VM nicht mehr ausführen kann, nachdem der Linux-Agent entfernt wurde.

Erweiterungen für Azure-VMs sind kleine Anwendungen, die Konfigurations- und Automatisierungsaufgaben auf Azure-VMs nach der Bereitstellung ermöglichen. Erweiterungen werden über die Azure-Steuerungsebene installiert und verwaltet. Es ist Aufgabe des Azure Linux-Agents, die Plattformerweiterungsbefehle zu verarbeiten und den ordnungsgemäßen Zustand der Erweiterungen auf der jeweiligen VM sicherzustellen.

Auf der Azure-Plattform werden Erweiterungen für viele Zwecke gehostet, z.B. VM-Konfiguration, Überwachung, Sicherheit und Hilfsprogramme. Es gibt eine große Auswahl an Erst- und Drittanbietererweiterungen. Zu den Beispielen für Hauptszenarien, für die Erweiterungen verwendet werden, gehören:

  • Unterstützung von Erstanbieter-Azure-Diensten wie Azure Backup, Überwachung, Datenträgerverschlüsselung, Sicherheit, Standortreplikation und weitere
  • SSH / Kennwortzurücksetzungen
  • VM-Konfiguration: Ausführen von benutzerdefinierten Skripts, Installieren von Chef, Puppet-Agents usw.
  • Produkte von Drittanbietern, z. B. AV-Produkte, Tools für VM-Sicherheitsrisiken, VM- und App-Überwachungstools
  • Erweiterungen können mit einer neuen VM-Bereitstellung gebündelt werden. Beispielsweise können sie Teil einer größeren Bereitstellung sein, die Anwendungen können bei der VM-Bereitstellung konfiguriert werden, oder sie können nach der Bereitstellung für alle unterstützten Systeme ausgeführt werden, die für Erweiterungen geeignet sind.

Deaktivieren von Erweiterungsverarbeitung

Je nach Ihren Anforderungen gibt es mehrere Möglichkeiten, die Erweiterungsverarbeitung zu deaktivieren. Aber bevor Sie fortfahren, MÜSSEN Sie alle Erweiterungen entfernen, die auf der VM bereitgestellt werden. Dazu können Sie z. B. die Azure CLI verwenden, um aufzulisten und zu löschen:

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

Hinweis

Wenn Sie dies nicht tun, versucht die Plattform, die Erweiterungskonfiguration zu senden, und nach 40 Minuten ergibt sich ein Timeout für die Plattform.

Deaktivieren auf der Steuerungsebene

Wenn Sie nicht sicher sind, ob Sie in Zukunft Erweiterungen benötigen, können Sie den installierten Linux-Agent auf der VM belassen, aber die Funktionalität für die Erweiterungsverarbeitung auf der Plattform deaktivieren. Diese Option ist in der Microsoft.Compute-API-Version 2018-06-01 oder höher verfügbar und ist unabhängig von der installierten Linux-Agent-Version.

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

Mit dem obigen Befehl können Sie diese Erweiterungsverarbeitung problemlos wieder auf der Plattform aktivieren, wobei Sie die Option aber auf „true“ festlegen.

Entfernen des Linux-Agents aus einer aktiven VM

Vergewissern Sie sich, dass Sie alle vorhandenen Erweiterungen gemäß der obigen Beschreibung entfernt haben.

Schritt 1: Entfernen des Azure Linux-Agents

Wenn Sie nur den Linux-Agent und nicht die zugehörigen Konfigurationsartefakte entfernen, können Sie den Agent zu einem späteren Zeitpunkt neu installieren. Führen Sie als root einen der folgenden Befehle aus, um den Azure Linux-Agent zu entfernen:

Für Ubuntu ab Version 18.04

sudo apt -y remove walinuxagent

Für Red Hat 7.x, 8.x und 9.x

sudo yum -y remove WALinuxAgent

Für SUSE 12.x, 15.x

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

Schritt 2: (Optional) Entfernen der Artefakte des Azure Linux-Agents

Wichtig

Sie können alle zugehörigen Artefakte des Linux-Agents entfernen. Dies bedeutet jedoch, dass Sie den Agent nicht zu einem späteren Zeitpunkt erneut installieren können. Daher wird dringend empfohlen, den Linux-Agent zuerst zu deaktivieren, indem Sie den Linux-Agent mit den oben aufgeführten Befehlen nur entfernen.

Wenn Sie wissen, dass Sie den Linux-Agent nie erneut installieren müssen, können Sie die folgenden Befehle ausführen:

Für Ubuntu ab Version 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 Red Hat 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

Vorbereiten eines Images ohne den Linux-Agent

Wenn Sie ein Image haben, das bereits cloud-init enthält, und Sie den Linux-Agent entfernen, aber trotzdem mit cloud-init bereitstellen möchten, führen Sie die Schritte in Schritt 2 (und optional Schritt 3) als root aus, um den Azure Linux-Agent zu entfernen. Mit dem folgenden Befehl werden dann die cloud-init-Konfiguration und die zwischengespeicherten Daten entfernt und wird die VM zum Erstellen eines benutzerdefinierten Images vorbereitet.

sudo cloud-init clean --logs --seed

Aufheben der Bereitstellung und Erstellen eines Images

Der Linux-Agent kann mit dem Schritt „waagent -deprovision+user“ einige der vorhandenen Imagemetadaten bereinigen. Nachdem diese entfernt wurden, müssen Sie aber Aktionen wie die nachfolgenden ausführen und alle weiteren sensiblen Daten entfernen.

  • Entfernen aller vorhandenen SSH-Hostschlüssel

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Löschen des Administratorkontos

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Löschen des root-Kennworts

    sudo passwd -d root
    

Nachdem Sie die zuvor aufgeführten Punkte abgeschlossen haben, können Sie das benutzerdefinierte Image mit der Azure CLI erstellen.

Erstellen eines regulären verwalteten Images

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

Erstellen einer VM aus einem Image, das keinen Linux-Agent enthält

Wenn Sie die VM aus einem Image erstellen, das keinen Linux-Agent hat, müssen Sie sicherstellen, dass die VM-Bereitstellungskonfiguration angibt, dass Erweiterungen auf dieser VM nicht unterstützt werden.

Hinweis

Wenn Sie dies nicht tun, versucht die Plattform, die Erweiterungskonfiguration zu senden, und nach 40 Minuten ergibt sich ein Timeout für die Plattform.

Um die VM mit deaktivierten Erweiterungen bereitzustellen, können Sie die Azure CLI mit --enable-agent verwenden.

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

Alternativ können Sie dies mit Azure Resource Manager-Vorlagen (ARM-Vorlagen) vornehmen, indem Sie "provisionVMAgent": false, festlegen.

"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ächste Schritte

Weitere Informationen finden Sie unter Azure Linux-VM-Bereitstellung.