Share via


Disabilitare o rimuovere l'agente Linux da macchine virtuali e immagini

Si applica a: ✔️ set di scalabilità flessibili di macchine virtuali ✔️ Linux

Prima di rimuovere l'agente Linux, è necessario comprendere quale macchina virtuale non sarà in grado di eseguire dopo la rimozione dell'agente Linux.

Le estensioni della macchina virtuale di Azure sono piccole applicazioni che forniscono attività di configurazione e automazione post-distribuzione nelle macchine virtuali di Azure, le estensioni vengono installate e gestite dal piano di controllo di Azure. È il processo dell'agente Linux di Azure per elaborare i comandi dell'estensione della piattaforma e assicurarsi che lo stato corretto dell'estensione all'interno della macchina virtuale.

La piattaforma Azure ospita diverse estensioni, tra cui applicazioni di utilità, sicurezza, monitoraggio e configurazione delle VM. È disponibile una vasta scelta di estensioni di prima e di terze parti, esempi di scenari chiave usati per:

  • Supporto dei servizi di Azure di prima parte, ad esempio Backup di Azure, monitoraggio, crittografia dischi, sicurezza, replica del sito e altri.
  • Reimpostazione ssh/password
  • Configurazione della macchina virtuale: esecuzione di script personalizzati, installazione di Chef, Agenti Puppet e così via.
  • Prodotti di terze parti, ad esempio prodotti AV, strumenti di vulnerabilità delle macchine virtuali, strumenti di monitoraggio delle macchine virtuali e app.
  • Le estensioni possono essere aggregate con una nuova distribuzione di VM. Possono, ad esempio, fare parte di una distribuzione più ampia, in le applicazioni vengono configurate durante il provisioning della VM, o venire eseguite nei sistemi gestiti dalle estensioni supportate dopo la distribuzione.

Disabilitazione dell'elaborazione delle estensioni

Esistono diversi modi per disabilitare l'elaborazione delle estensioni, a seconda delle esigenze, ma prima di continuare, è necessario rimuovere tutte le estensioni distribuite nella macchina virtuale, ad esempio usando l'interfaccia della riga di comando di Azure, è possibile elencare ed eliminare:

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

Nota

Se non si esegue l'operazione precedente, la piattaforma tenterà di inviare la configurazione dell'estensione e il timeout dopo 40 minuti.

Disabilita nel piano di controllo

Se non si è certi che siano necessarie estensioni in futuro, è possibile lasciare installato l'agente Linux nella macchina virtuale, disabilitare la funzionalità di elaborazione delle estensioni dalla piattaforma. Questa opzione è disponibile nella Microsoft.Compute versione 2018-06-01 dell'API o successiva e non ha una dipendenza dalla versione dell'agente Linux installata.

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

È possibile ripristinare facilmente questa elaborazione dell'estensione dalla piattaforma, con il comando precedente, ma impostarla su "true".

Rimuovere l'agente Linux da una macchina virtuale in esecuzione

Assicurarsi di aver rimosso tutte le estensioni esistenti dalla macchina virtuale prima, come indicato in precedenza.

Passaggio 1: Rimuovere l'agente Linux di Azure

Se si rimuove solo l'agente Linux e non gli artefatti di configurazione associati, è possibile reinstallare in una data successiva. Eseguire una delle operazioni seguenti, come radice, per rimuovere l'agente Linux di Azure:

Per Ubuntu 18.04+

sudo apt -y remove walinuxagent

Per Redhat 7.X, 8.X e 9.X

sudo yum -y remove WALinuxAgent

Per SUSE 12.X, 15.X

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

Passaggio 2: (Facoltativo) Rimuovere gli artefatti dell'agente Linux di Azure

Importante

È possibile rimuovere tutti gli artefatti associati dell'agente Linux, ma ciò significa che non è possibile reinstallarlo in una data successiva. Pertanto, è consigliabile disabilitare prima l'agente Linux, rimuovendo l'agente Linux usando solo l'unico.

Se si conosce che non si reinstallerà mai di nuovo l'agente Linux, è possibile eseguire quanto segue:

Per 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

Per 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

Per 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

Preparazione di un'immagine senza l'agente Linux

Se si dispone di un'immagine che contiene già cloud-init e si vuole rimuovere l'agente Linux, ma si esegue comunque il provisioning usando cloud-init, eseguire i passaggi nel passaggio 2 (e facoltativamente passaggio 3) come radice per rimuovere l'agente Linux di Azure e quindi il seguente rimuoverà la configurazione cloud-init e i dati memorizzati nella cache e preparare la macchina virtuale per creare un'immagine personalizzata.

sudo cloud-init clean --logs --seed

Deprovision e creare un'immagine

L'agente Linux ha la possibilità di pulire alcuni dei metadati di immagine esistenti, con il passaggio "waagent -deprovision+user", tuttavia, dopo aver rimosso, sarà necessario eseguire azioni come le seguenti e rimuovere tutti gli altri dati sensibili da esso.

  • Rimuovere tutte le chiavi host SSH esistenti

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Eliminare l'account amministratore

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Eliminare la password radice

    sudo passwd -d root
    

Dopo aver completato l'istruzione precedente, è possibile creare l'immagine personalizzata usando l'interfaccia della riga di comando di Azure.

Creare un'immagine gestita regolare

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

Creazione di una macchina virtuale da un'immagine che non contiene un agente Linux

Quando si crea la macchina virtuale dall'immagine senza agente Linux, è necessario assicurarsi che la configurazione della distribuzione della macchina virtuale indica che le estensioni non sono supportate in questa macchina virtuale.

Nota

Se non si esegue l'operazione precedente, la piattaforma tenterà di inviare la configurazione dell'estensione e il timeout dopo 40 minuti.

Per distribuire la macchina virtuale con estensioni disabilitate, è possibile usare l'interfaccia della riga di comando di Azure con --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

In alternativa, è possibile usare i modelli di Azure Resource Manager (ARM), impostando "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')]"

Passaggi successivi

Per altre informazioni, vedere Provisioning di Linux.