Disabilitare o rimuovere l'agente Linux dalle macchine virtuali e dalle immagini
Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili
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 automazione e configurazione 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 verificare 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. Esiste una vasta scelta di estensioni di prima e di terze parti, esempi di scenari chiave usati per le estensioni per:
- Supporto di servizi di Azure di prima parte, ad esempio Backup di Azure, monitoraggio, crittografia dischi, sicurezza, replica del sito e altri.
- Reimpostazioni 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 questa operazione, la piattaforma tenterà di inviare la configurazione dell'estensione e il timeout dopo 40 minuti.
Disabilitare nel piano di controllo
Se non si è certi se saranno necessarie estensioni in futuro, è possibile lasciare installato l'agente Linux nella macchina virtuale, quindi disabilitare la funzionalità di elaborazione delle estensioni dalla piattaforma. Questa opzione è disponibile in Microsoft.Compute
versione 2018-06-01
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 riabilitare 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 reinstallarlo in un secondo momento. 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 un secondo momento. È quindi consigliabile disabilitare prima l'agente Linux, rimuovendo l'agente Linux solo usando l'unico.
Se si sa che non si reinstallerà 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 descritti nel passaggio 2 (e, facoltativamente, passaggio 3) come radice per rimuovere l'agente Linux di Azure e quindi il codice seguente rimuoverà la configurazione cloud-init e i dati memorizzati nella cache e preparerà la macchina virtuale per creare un'immagine personalizzata.
sudo cloud-init clean --logs --seed
Eseguire il deprovisioning e creare un'immagine
L'agente Linux ha la possibilità di pulire alcuni dei metadati dell'immagine esistenti, con il passaggio "waagent -deprovision+user", tuttavia, dopo che è stato rimosso, sarà necessario eseguire azioni come le seguenti e rimuovere eventuali 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 quanto sopra, è 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>
Creare una versione dell'immagine in una raccolta di calcolo di Azure
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 indichi che le estensioni non sono supportate in questa macchina virtuale.
Nota
Se non si esegue questa operazione, 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 eseguire questa operazione usando 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.