Compartir a través de


Deshabilitación o eliminación del agente linux de máquinas virtuales e imágenes

Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles

Antes de quitar el agente de Linux, debe comprender qué máquina virtual no podrá hacer después de quitar el agente de Linux.

Las extensiones de máquina virtual (VM) de Azure son aplicaciones pequeñas que proporcionan tareas de automatización y configuración posteriores a la implementación en máquinas virtuales de Azure, las extensiones se instalan y administran mediante el plano de control de Azure. Es el trabajo del agente linux de Azure para procesar los comandos de extensión de la plataforma y garantizar el estado correcto de la extensión dentro de la máquina virtual.

La plataforma Azure hospeda muchas extensiones que van desde aplicaciones de configuración, supervisión, seguridad y utilidad de máquinas virtuales. Hay una gran elección de extensiones de primera y de terceros, ejemplos de escenarios clave para los que se usan extensiones:

  • Admite servicios de Azure de primera parte, como Azure Backup, Azure Monitor, Azure Disk Encryption, Azure Security, Azure Site Replication y otros.
  • Restablecimientos de contraseñas / SSH
  • Configuración de la máquina virtual: ejecución de scripts personalizados, instalación de Chef, agentes puppet, etc..
  • Productos de terceros, como productos AV, herramientas de vulnerabilidades de máquina virtual, y herramientas de supervisión de máquina virtual y aplicaciones.
  • Las extensiones se pueden agrupar con una nueva implementación de máquina virtual. Por ejemplo, pueden formar parte de una implementación mayor, configurar aplicaciones en el aprovisionamiento de máquinas virtuales o ejecutarse en cualquier sistema compatible operado por extensiones después de la implementación.

Deshabilitación del procesamiento de extensiones

Hay varias maneras de deshabilitar el procesamiento de extensiones, según sus necesidades, pero antes de continuar, debe quitar todas las extensiones implementadas en la máquina virtual, por ejemplo, mediante la CLI de Azure, puede enumerar y eliminar:

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

Nota:

Si no hace lo anterior, la plataforma intentará enviar la configuración de la extensión y el tiempo de espera después de 40 minutos.

Deshabilitar en el plano de control

Si no está seguro de si necesitará extensiones en el futuro, puede dejar instalado el agente linux en la máquina virtual y, a continuación, deshabilitar la funcionalidad de procesamiento de extensiones desde la plataforma. Esta opción está disponible en la Microsoft.Compute versión 2018-06-01 de la API o superior y no depende de la versión del agente de Linux instalada.

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

Puede volver a habilitar fácilmente este procesamiento de extensión desde la plataforma, con el comando anterior, pero establézcalo en "true".

Eliminación del agente linux de una máquina virtual en ejecución

Asegúrese de haber quitado todas las extensiones existentes de la máquina virtual antes, como se ha indicado anteriormente.

Paso 1: Eliminación del agente linux de Azure

Si acaba de quitar el agente de Linux y no los artefactos de configuración asociados, puede volver a instalarlo más adelante. Ejecute una de las siguientes acciones, como raíz, para quitar el agente linux de Azure:

#For Ubuntu 18.04+:
sudo apt -y remove walinuxagent

Paso 2: (Opcional) Elimina los artefactos del agente Linux de Azure

Importante

Puede quitar todos los artefactos asociados del agente de Linux, pero esto significará que no se puede reinstalar en una fecha posterior. Por lo tanto, se recomienda encarecidamente deshabilitar primero el agente de Linux, quitando el agente de Linux usando solo lo anterior.

Si sabe que nunca volverá a instalar el agente linux, puede ejecutar lo siguiente:

#For Ubuntu 18.04+:
sudo apt -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

Preparación de una imagen sin el agente de Linux

Si tiene una imagen que ya contiene cloud-init y quiere quitar el agente de Linux, pero sigue aprovisionado mediante cloud-init, ejecute los pasos descritos en el paso 2 (y, opcionalmente, paso 3) como raíz para quitar el agente Linux de Azure y, a continuación, lo siguiente quitará la configuración de cloud-init y los datos almacenados en caché y preparará la máquina virtual para crear una imagen personalizada.

sudo cloud-init clean --logs --seed

Desaprovisionamiento y creación de una imagen

El agente de Linux tiene la capacidad de limpiar algunos de los metadatos de imagen existentes con el comando "waagent -deprovision+user"; sin embargo, una vez que se haya eliminado, deberá realizar acciones como las siguientes y eliminar cualquier otra información confidencial de este.

  • Eliminación de todas las claves de host ssh existentes

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Eliminación de la cuenta de administrador

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Eliminación de la contraseña raíz

    sudo passwd -d root
    

Una vez completado lo anterior, puede crear la imagen personalizada mediante la CLI de Azure.

Creación de una imagen administrada normal

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

Creación de una máquina virtual a partir de una imagen que no contiene un agente de Linux

Al crear la máquina virtual a partir de la imagen sin agente Linux, debe asegurarse de que la configuración de implementación de la máquina virtual indica que no se admiten extensiones en esta máquina virtual.

Nota:

Si no hace lo anterior, la plataforma intentará enviar la configuración de la extensión y el tiempo de espera después de 40 minutos.

Para implementar la máquina virtual con extensiones deshabilitadas, puede usar la CLI de 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

Como alternativa, puede hacerlo mediante plantillas de Azure Resource Manager (ARM), estableciendo "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')]"

Pasos siguientes

Para más información, consulte Aprovisionamiento de Linux.