Delen via


De Linux-agent uitschakelen of verwijderen van VM's en installatiekopieën

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Voordat u de Linux-agent verwijdert, moet u weten wat de VIRTUELE machine niet meer kan doen nadat de Linux-agent is verwijderd.

Extensies voor virtuele Azure-machines (VM's) zijn kleine toepassingen die configuratie- en automatiseringstaken na de implementatie bieden op Virtuele Azure-machines, extensies worden geïnstalleerd en beheerd door het Azure-besturingsvlak. Het is de taak van de Azure Linux-agent om de opdrachten voor de platformextensie te verwerken en de juiste status van de extensie binnen de VIRTUELE machine te garanderen.

Het Azure-platform host veel extensies die variëren van VM-configuratie, bewaking, beveiliging en hulpprogrammatoepassingen. Er is een grote keuze aan eerste en externe extensies, voorbeelden van belangrijke scenario's waarvoor extensies worden gebruikt:

  • Ondersteuning voor Azure-services van de eerste partij, zoals Azure Backup, Bewaking, Schijfversleuteling, Beveiliging, Sitereplicatie en andere services.
  • SSH/wachtwoord opnieuw instellen
  • VM-configuratie: aangepaste scripts uitvoeren, Chef- en Puppet-agents installeren, enzovoort.
  • Producten van derden, zoals AV-producten, HULPPROGRAMMA's voor VM-beveiligingsproblemen, VM- en app-bewakingsprogramma's.
  • Extensies kunnen worden gebundeld met een nieuwe VM-implementatie. Ze kunnen bijvoorbeeld deel uitmaken van een grotere implementatie, toepassingen configureren bij het inrichten van vm's of worden uitgevoerd op ondersteunde door extensies beheerde systemen na de implementatie.

Extensieverwerking uitschakelen

Er zijn verschillende manieren om extensieverwerking uit te schakelen, afhankelijk van uw behoeften, maar voordat u doorgaat, moet u alle extensies verwijderen die op de VIRTUELE machine zijn geïmplementeerd, bijvoorbeeld met behulp van de Azure CLI, kunt u een lijst weergeven en verwijderen:

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

Notitie

Als u het bovenstaande niet doet, probeert het platform de extensieconfiguratie en time-out na 40 minuten te verzenden.

Uitschakelen op het besturingsvlak

Als u niet zeker weet of u in de toekomst extensies nodig hebt, kunt u de Linux-agent op de VIRTUELE machine laten installeren en de mogelijkheid voor extensieverwerking uitschakelen vanaf het platform. Deze optie is beschikbaar in Microsoft.Compute api-versie 2018-06-01 of hoger en heeft geen afhankelijkheid van de Versie van de Linux-agent geïnstalleerd.

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

U kunt deze extensieverwerking eenvoudig opnieuw inschakelen vanaf het platform, met de bovenstaande opdracht, maar deze instellen op 'true'.

De Linux-agent verwijderen van een actieve VM

Zorg ervoor dat u alle bestaande extensies van de VIRTUELE machine eerder hebt verwijderd, zoals hierboven is beschreven .

Stap 1: De Azure Linux-agent verwijderen

Als u alleen de Linux-agent verwijdert en niet de bijbehorende configuratieartefacten, kunt u deze op een latere datum opnieuw installeren. Voer een van de volgende, als hoofdmap, uit om de Azure Linux-agent te verwijderen:

Voor Ubuntu 18.04+

sudo apt -y remove walinuxagent

Voor Redhat 7.X, 8.X en 9.X

sudo yum -y remove WALinuxAgent

Voor SUSE 12.X, 15.X

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

Stap 2: (Optioneel) Verwijder de Artefacten van de Azure Linux-agent

Belangrijk

U kunt alle gekoppelde artefacten van de Linux-agent verwijderen, maar dit betekent dat u deze niet opnieuw kunt installeren op een latere datum. Daarom is het raadzaam om eerst de Linux-agent uit te schakelen, waarbij u de Linux-agent alleen verwijdert met behulp van het bovenstaande.

Als u weet dat u de Linux-agent nooit opnieuw installeert, kunt u het volgende uitvoeren:

Voor 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

Voor 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

Voor 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

Een installatiekopieën voorbereiden zonder de Linux-agent

Als u een installatiekopieën hebt die al cloud-init bevat en u de Linux-agent wilt verwijderen, maar nog steeds wilt inrichten met behulp van cloud-init, voert u de stappen in stap 2 (en desgewenst stap 3) uit als hoofdmap om de Azure Linux-agent te verwijderen. Vervolgens verwijdert u de cloud-init-configuratie en in de cache opgeslagen gegevens en bereidt u de VIRTUELE machine voor om een aangepaste installatiekopieën te maken.

sudo cloud-init clean --logs --seed

De inrichting ongedaan maken en een installatiekopieën maken

De Linux-agent heeft de mogelijkheid om enkele van de bestaande metagegevens van de installatiekopieën op te schonen, met de stap 'waagent -deprovision+user', maar nadat deze is verwijderd, moet u acties zoals hieronder uitvoeren en eventuele andere gevoelige gegevens ervan verwijderen.

  • Alle bestaande ssh-hostsleutels verwijderen

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Het beheerdersaccount verwijderen

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Het hoofdwachtwoord verwijderen

    sudo passwd -d root
    

Zodra u het bovenstaande hebt voltooid, kunt u de aangepaste installatiekopieën maken met behulp van de Azure CLI.

Een gewone beheerde installatiekopieën maken

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

Een VIRTUELE machine maken op basis van een installatiekopieën die geen Linux-agent bevat

Wanneer u de VM maakt op basis van de installatiekopieën zonder Linux-agent, moet u ervoor zorgen dat de configuratie van de VM-implementatie aangeeft dat extensies niet worden ondersteund op deze VM.

Notitie

Als u het bovenstaande niet doet, probeert het platform de extensieconfiguratie en time-out na 40 minuten te verzenden.

Als u de VM wilt implementeren met uitgeschakelde extensies, kunt u de Azure CLI gebruiken met --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

U kunt dit ook doen met behulp van ARM-sjablonen (Azure Resource Manager), door deze in te stellen "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')]"

Volgende stappen

Zie Provisioning Linux voor meer informatie.