Tutorial: Creación de una imagen personalizada de una máquina virtual de Azure con la CLI de Azure

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

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. En este tutorial, creará su propia imagen personalizada de una máquina virtual de Azure. Aprenderá a:

  • Crear una instancia de Azure Compute Gallery (anteriormente denominada Shared Image Gallery)
  • Creación de la definición de una imagen
  • Creación de la versión de una imagen
  • Crear una máquina virtual a partir de una imagen
  • Uso compartido de una galería

En este tutorial se usa la CLI dentro de Azure Cloud Shell, que se actualiza constantemente a la versión más reciente. Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior de cualquier bloque de código.

Si decide instalar y usar la CLI localmente, en este tutorial es preciso que ejecute la versión 2.35.0 u otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

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, en qué regiones desea que estén disponibles y con quién desea compartirlas.

La característica Azure Compute Gallery tiene varios tipos de recursos:

Resource Descripción
Origen de imagen Se trata de un recurso que se puede usar para crear una versión de imagen en una galería. Un origen de imagen puede ser una máquina virtual de Azure existente, ya sea generalizada o especializada, una imagen administrada, una instantánea o una versión de imagen de otra galería.
Galería Al igual que Azure Marketplace, una galería es un repositorio para administrar y compartir imágenes y aplicaciones de máquina virtual, pero con control sobre quién tiene acceso.
Definición de la imagen Las definiciones de imagen se crean dentro de una galería y contienen información sobre la imagen y los requisitos para usarla internamente. Esto incluye si la imagen es Windows o Linux, notas de la versión y los requisitos de memoria mínima y máxima. Es una definición de un tipo de imagen.
Versión de la imagen Una versión de la imagen es lo que se usa para crear una VM cuando se usa una galería. Puede tener varias versiones de una imagen según sea necesario para su entorno. Al igual que una imagen administrada, cuando se usa una versión de la imagen para crear una VM, la versión de la imagen se usa para crear nuevos discos para la VM. Las versiones de las imágenes pueden usarse varias veces.

Antes de empezar

Los siguientes pasos muestran cómo tomar una máquina virtual existente y convertirla en una imagen personalizada reutilizable que puede usar para crear nuevas instancias de máquinas virtuales.

Para completar el ejemplo de este tutorial, debe tener una máquina virtual. Si es necesario, puede consultar el inicio rápido de la CLI para crear una máquina virtual y usarla en este tutorial. Al trabajar en el tutorial, reemplace los nombres de recursos cuando sea necesario.

Inicio de Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.

Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También puede ir a https://shell.azure.com/powershell para iniciar Cloud Shell en una pestaña independiente del explorador. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para ejecutarlos.

Una galería 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 mediante az sig 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

Obtención de información acerca de la máquina virtual

Puede ver una lista de las máquinas virtuales que están disponibles mediante az vm list.

az vm list --output table

Una vez que conozca el nombre de la máquina virtual y el grupo de recursos en el que se encuentra, obtenga el identificador de la máquina virtual con az vm get-instance-view.

az vm get-instance-view -g MyResourceGroup -n MyVm --query id

Copie el identificador de la máquina virtual para usarlo más adelante.

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.

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.

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

Copie el identificador de la definición de imagen de la salida para usarla más adelante.

Creación de la versión de la imagen

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

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, es la versión de la imagen es la 1.0.0 y vamos a crear dos réplicas en la región Centro-oeste de EE. UU., una réplica en la región Centro-sur de EE. UU. y una réplica en la región Este de EE. UU. 2 mediante almacenamiento con redundancia de zona. 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 "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
   --replica-count 2 \
   --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 la máquina virtual

Cree la máquina virtual con az vm create, usando el parámetro --specialized para indicar que la imagen es una imagen especializada.

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

En este ejemplo, se creará una máquina virtual a partir de la versión más reciente de la imagen myImageDefinition.

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

Puede compartir imágenes entre suscripciones mediante el control de acceso basado en rol (Azure RBAC) de Azure. Puede compartir imágenes en el nivel de la galería, la definición de imagen o la versión de imagen. Cualquier usuario que tenga permisos de lectura para una versión de la imagen, incluso entre suscripciones, podrá implementar una VM 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 Azure Compute Gallery. 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.

Azure Image Builder

Azure también ofrece un servicio, basado en Packer, Azure VM Image Builder. Describa sus personalizaciones en una plantilla y esta servirá para crear la imagen.

Pasos siguientes

En este tutorial, ha creado una imagen de máquina virtual personalizada. Ha aprendido a:

  • Crear una instancia de Azure Compute Gallery
  • Creación de la definición de una imagen
  • Creación de la versión de una imagen
  • Crear una máquina virtual a partir de una imagen
  • Uso compartido de una galería

Avance al siguiente tutorial para informarse sobre los conjuntos de escalado de máquinas virtuales.