Tutorial: Creación y uso de una imagen personalizada para conjunto de escalado de máquinas virtuales con la CLI de Azure

Al crear el conjunto de escalado, se especifica la imagen que se usará cuando se implementen las instancias de máquina virtual. Para reducir el número de tareas después de implementar las instancias de máquina virtual, puede usar una imagen de máquina virtual personalizada. Esta imagen de máquina virtual personalizada incluye la instalación o configuración de las aplicaciones necesarias. Las instancias de máquina virtual creadas en el conjunto de escalado usan la imagen de máquina virtual personalizada y están listas para atender el tráfico de la aplicación. En este tutorial, aprenderá a:

  • Crear una instancia de Azure Compute Gallery
  • Creación de una definición de imagen especializada
  • Creación de la versión de una imagen
  • Creación de un conjunto de escalado a partir de una imagen especializada
  • Compartir una galería de imágenes

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

  • En este artículo se necesita la versión 2.4.0 de la CLI de Azure, o cualquier versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Información general

Una instancia de Azure Compute Gallery simplifica el uso compartido de imágenes personalizadas en las organizaciones. Las imágenes personalizadas son como las imágenes de Marketplace, pero las puede crear usted mismo. Las imágenes personalizadas pueden usarse para configuraciones de arranque como la carga previa de aplicaciones, configuraciones de aplicaciones y otras configuraciones del sistema operativo.

Azure Compute Gallery permite compartir sus imágenes de máquina virtual personalizadas con otros usuarios. Elija las imágenes que desea compartir, qué regiones desea que estén disponibles en ellas y con quién desea compartirlas.

Creación y configuración de una máquina virtual de origen

En primer lugar, cree un grupo de recursos con az group create y luego cree una máquina virtual con az vm create. Esta máquina virtual se usa después como origen de la imagen. En el ejemplo siguiente, se crea una máquina virtual llamada myVM en el grupo de recursos llamado myResourceGroup:

az group create --name myResourceGroup --location eastus

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

Importante

El identificador de la máquina virtual se muestra en la salida del comando az vm create. Cópielo en un lugar seguro para poder usarlo más adelante en este tutorial.

Una galería de imágenes es el recurso principal que se usa para habilitar el uso compartido de imágenes.

Los caracteres permitidos para el nombre de la Galería son letras mayúsculas o minúsculas, números y puntos. El nombre de la galería no puede contener guiones. Los nombres de las galerías deben ser únicos dentro de su suscripción.

Cree una galería de imágenes mediante az sig az create. En el ejemplo siguiente se crea un grupo de recursos denominado myGalleryRG en la región Este de EE. UU. y una galería denominada myGallery.

az group create --name myGalleryRG --location eastus
az sig create --resource-group myGalleryRG --gallery-name myGallery

Creación de la definición de una imagen

Las definiciones de imagen crean una agrupación lógica de imágenes. Estas se usan para administrar la información sobre las versiones de la imagen que se crean dentro de ellas.

Los nombres de las definiciones de imagen pueden estar formados por letras mayúsculas o minúsculas, números, puntos y guiones.

Asegúrese de que la definición de la imagen sea del tipo correcto. Si ha generalizado la máquina virtual (con Sysprep para Windows o waagent-deprovision para Linux), debe crear una definición de imagen generalizada mediante --os-state generalized. Si quiere usar la máquina virtual sin quitar las cuentas de usuario existentes, cree una definición de imagen especializada mediante --os-state specialized.

Para más información sobre los valores que se pueden especificar para una definición de imagen, consulte Definiciones de imagen.

Cree una definición de imagen en la galería mediante az sig image-definition create.

En este ejemplo, la definición de la imagen se denomina myImageDefinition y es para una imagen del sistema operativo Linux especializada. Para crear una definición para las imágenes que usan un sistema operativo Windows, utilice --os-type Windows.

az sig image-definition create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --publisher myPublisher \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized

Importante

El identificador de la definición de la imagen se muestra en la salida del comando. Cópielo en un lugar seguro para poder usarlo más adelante en este tutorial.

Creación de la versión de la imagen

Cree una versión de la imagen a partir de la máquina virtual con az image gallery create-image-version.

Los caracteres permitidos para la versión de una imagen son números y puntos. Los números deben estar dentro del rango de un entero de 32 bits. Formato: VersiónPrincipal.VersiónSecundaria.Revisión.

En este ejemplo, la versión de la imagen es 1.0.0 y vamos a crear una réplica en la región Centro-sur de EE. UU. y otra réplica en la región Este de EE. UU. 2. Las regiones de replicación deben incluir la región donde se encuentra la máquina virtual de origen.

Reemplace el valor de --managed-image en este ejemplo por el identificador de la máquina virtual del paso anterior.

az sig image-version create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --target-regions "southcentralus=1" "eastus=1" \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Nota

Deberá esperar a que la versión de la imagen termine de compilarse y replicarse por completo antes de poder usar la misma imagen administrada para crear otra versión de la imagen.

También puede almacenar la imagen en almacenamiento Premium agregando --storage-account-type premium_lrs o en almacenamiento con redundancia de zona agregando --storage-account-type standard_zrs al crear la versión de la imagen.

Creación de un conjunto de escalado a partir de una imagen

Importante

A partir de noviembre de 2023, los conjuntos de escalado de máquinas virtuales creados con PowerShell y la CLI de Azure tendrán como valor predeterminado el modo de orquestación flexible si no se especifica ningún modo de orquestación. Para más información sobre este cambio y las acciones que debe realizar, vaya a Cambio importante para clientes de PowerShell o la CLI de VMSS: Centro de comunidad de Microsoft

Cree un conjunto de escalado a partir de la imagen especializada mediante az vmss create.

Cree el conjunto de escalado mediante az vmss create con el parámetro --specialized para indicar que la imagen es una imagen especializada.

Use el identificador de definición de imagen en --image a fin de crear las instancias del conjunto de escalado a partir de la versión más reciente de la imagen que esté disponible. También puede crear las instancias del conjunto de escalado a partir de una versión específica si proporciona el identificador de la versión de la imagen en --image.

Cree un conjunto de escalado denominado myScaleSet con la versión más reciente de la imagen myImageDefinition que hemos creado anteriormente.

az group create --name myResourceGroup --location eastus
az vmss create \
   --resource-group myResourceGroup \
   --name myScaleSet \
   --orchestration-mode flexible \
   --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
   --specialized

Se tardan unos minutos en crear y configurar todos los recursos de conjunto de escalado y máquinas virtuales.

Puede compartir imágenes entre suscripciones mediante el control de acceso basado en rol (Azure RBAC) de Azure. Puede compartir imágenes en la galería, la definición de la imagen o la versión de la imagen. Cualquier usuario que tenga permisos de lectura para una versión de la imagen, incluso entre suscripciones, podrá implementar una máquina virtual con la versión de la imagen.

Se recomienda que el uso compartido con otros usuarios se realice en el nivel de la galería. Para obtener el identificador de objeto de la galería, use az sig show.

az sig show \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --query id

Use el identificador de objeto como ámbito, junto con una dirección de correo electrónico y az role assignment create para dar a un usuario acceso a la galería de imágenes compartidas. Reemplace <email-address> y <gallery iD> por su propia información.

az role assignment create \
   --role "Reader" \
   --assignee <email address> \
   --scope <gallery ID>

Para más información sobre cómo compartir recursos con Azure RBAC, consulte Incorporación o eliminación de asignaciones de roles de Azure mediante la CLI de Azure.

Limpieza de recursos

Para quitar el conjunto de escalado y los recursos adicionales, elimine el grupo de recursos y todos sus recursos con az group delete. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación. El parámetro --yes confirma que desea eliminar los recursos sin pedir confirmación adicional.

az group delete --name myResourceGroup --no-wait --yes

Pasos siguientes

En este tutorial, aprendió a crear y utilizar una imagen de máquina virtual personalizada para los conjuntos de escalado con la CLI de Azure:

  • Crear una instancia de Azure Compute Gallery
  • Creación de una definición de imagen especializada
  • Creación de la versión de una imagen
  • Creación de un conjunto de escalado a partir de una imagen especializada
  • Compartir una galería de imágenes

Vaya al siguiente tutorial para aprender cómo implementar aplicaciones en el conjunto de escalado.