Deshabilitar o quitar el agente Linux de las máquinas virtuales y las imágenes
Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles
Antes de quitar el agente Linux, debe saber qué es lo que no podrá hacer la VM después de quitarlo.
Las extensiones de máquina virtual de Azure son pequeñas aplicaciones que realizan tareas de automatización y configuración posteriores a la implementación en máquinas virtuales de Azure. El plano de control de Azure instala y administra las extensiones. El trabajo del Agente Linux de Azure es procesar los comandos de extensión de plataforma y garantizar el estado correcto de la extensión dentro de la máquina virtual.
La plataforma de Azure hospeda numerosas extensiones, que abarcan aplicaciones de configuración, supervisión, seguridad y utilidad de máquinas virtuales. Hay una gran variedad de extensiones de primera y de terceros. A continuación, se incluyen ejemplos de escenarios clave para los que se usan las extensiones:
- Compatibilidad con servicios de Azure propios, como Azure Backup, supervisión,Disk Encryption, seguridad, replicación de sitios, etc.
- Restablecimiento de contraseña o SSH
- Configuración de la VM: ejecución de scripts personalizados, instalación de Chef, agentes Puppet, etc.
- Productos de terceros, como productos antivirus, herramientas de vulnerabilidad de VM, herramientas de supervisión de aplicaciones y VM.
- Las extensiones se pueden incluir con una nueva implementación de máquina virtual. Por ejemplo, puede formar parte de una implementación más amplia que configure aplicaciones en el aprovisionamiento de máquinas virtuales o se ejecute en cualquier sistema operado por extensiones admitido tras la implementación.
Deshabilitar el procesamiento de la extensión
Hay varias maneras de deshabilitar el procesamiento de la extensión, en función de sus necesidades, pero antes de continuar, debe quitar todas las extensiones implementadas en la VM, por ejemplo, con 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 min.
Deshabilitar en el plano de control
Si no está seguro de si necesitará las extensiones en el futuro, puede dejar el agente Linux instalado en la VM y, a continuación, deshabilitar la capacidad de procesamiento de la extensión de la plataforma. Esta opción está disponible en la versión de la API Microsoft.Compute
2018-06-01
o superior y no depende de la versión del agente 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".
Quitar el agente Linux de una VM en ejecución
Asegúrese de que haber quitado todas las extensiones existentes de la VM antes, como se indicó anteriormente.
Paso 1: Quitar el agente Linux de Azure
Si solo quita el agente Linux, y no los artefactos de configuración asociados, puede volver a instalarlo después. Ejecute uno de los siguientes, como raíz, para quitar el agente Linux de Azure:
Para Ubuntu 18.04+
sudo apt -y remove walinuxagent
Para Redhat 7.X, 8.X y 9.X
sudo yum -y remove WALinuxAgent
Para SUSE 12.X, 15.X
sudo zypper --non-interactive remove python-azure-agent
Paso 2: (Opcional) Quitar los artefactos del agente Linux de Azure
Importante
Puede quitar todos los artefactos asociados del agente Linux, pero esto significa que no podrá volver a instalarlos. Por lo tanto, se recomienda encarecidamente primero deshabilitar el agente Linux y quitar el agente Linux solo con lo anterior.
Si sabe que nunca volverá a instalar el agente Linux, puede ejecutar lo siguiente:
Para 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
Para 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
Para 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
Preparación de una imagen sin el agente Linux
Si tiene una imagen que contiene cloud-init y quiere quitar el agente de Linux, pero todavía aprovisiona con cloud-init, ejecute los pasos del paso 2 (y, opcionalmente, el paso 3) como raíz para quitar el agente Linux de Azure y lo siguiente quitará la configuración de cloud-init y los datos en caché, y preparará la máquina para crear una imagen personalizada.
sudo cloud-init clean --logs --seed
Desaprovisionamiento y creación de una imagen
El agente Linux tiene la capacidad de limpiar algunos de los metadatos de imagen existentes, con el paso "waagent-deprovision + user". Sin embargo, una vez que se ha quitado, deberá realizar acciones como la que se muestra a continuación y quitar cualquier otro dato confidencial de este.
Quitar todas las claves de host de ssh existentes
sudo rm /etc/ssh/ssh_host_*key*
Eliminar la cuenta de administrador
sudo touch /var/run/utmp sudo userdel -f -r <admin_user_account>
Eliminar la contraseña raíz
sudo passwd -d root
Una vez que haya 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>
Creación de una versión de imagen en una instancia de Azure Compute Gallery
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 VM a partir de una imagen que no contiene un agente Linux
Al crear la VM a partir de la imagen sin agente Linux, debe asegurarse de que la configuración de implementación de la VM indica que las extensiones no se admiten en esta VM.
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 min.
Para implementar la VM 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
También puede hacerlo con las plantillas de Azure Resource Manager (ARM), al establecer "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.