Creación de una máquina virtual a partir de una versión de imagen generalizada

Cree una máquina virtual a partir de una versión de imagen generalizada almacenada en Azure Compute Gallery (anteriormente conocida como Shared Image Gallery). Si desea crear una máquina virtual mediante una imagen especializada, consulte Creación de una máquina virtual a partir de una imagen especializada.

En este artículo se muestra cómo crear una máquina virtual a partir de una imagen generalizada:

Enumere las definiciones de imagen en una galería mediante az sig image-definition list para ver el nombre y el identificador de las definiciones.

resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list --resource-group $resourceGroup --gallery-name $gallery --query "[].[name, id]" --output tsv

Cree una máquina virtual mediante az vm create. Para usar la versión más reciente de la imagen, establezca --image en el identificador de la definición de la imagen.

Este ejemplo es para crear una máquina virtual Linux protegida con SSH. Para Windows o para proteger una máquina virtual Linux con una contraseña, quite --generate-ssh-keys para que se le solicite una contraseña. Si desea proporcionar una contraseña directamente, reemplace --generate-ssh-keys por --admin-password. Reemplace los nombres de los recursos según sea necesario en este ejemplo.

imgDef="/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

También puede usar una versión específica con el identificador de la versión de imagen del parámetro --image. Por ejemplo, para usar la versión de imagen 1.0.0, escriba: --image "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0".

RBAC - Compartido dentro de su organización

Si la suscripción donde reside la galería está dentro del mismo suscriptor, las imágenes compartidas mediante RBAC se pueden usar para crear máquinas virtuales mediante la CLI y PowerShell.

Necesitará la imageID de la imagen que quiere usar y asegurarse de que se replica en la región donde desea crear la máquina virtual.

Asegúrese de que el estado de la imagen sea Generalized. Si quiere usar una imagen con el estado Specialized, consulte Creación de una máquina virtual a partir de una versión de imagen especializada.

imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

RBAC - Compartido desde otro suscriptor

Si la imagen que quiere usar está almacenada en una galería que no está en el mismo inquilino (directorio), debe iniciar sesión en cada inquilino para comprobar que tiene acceso.

También necesita el valor imageID de la imagen que quiere usar y asegurarse de que se replica en la región donde quiere crear la máquina virtual. También necesitará tenantID para la galería de origen y la tenantID para ubicación en la que desea crear la máquina virtual.

En este ejemplo se muestra cómo crear una máquina virtual a partir de una imagen generalizada. Si está usando una imagen especializada, consulte Creación de una VM mediante una versión de imagen especializada.

Debe iniciar sesión en el suscriptor donde se almacena la imagen, obtener un token de acceso y, a continuación, iniciar sesión en el suscriptor donde desea crear la máquina virtual. Así es como Azure autentica que tiene acceso a la imagen.


tenant1='<ID for tenant 1>'
tenant2='<ID for tenant 2>'

az account clear
az login --tenant $tenant1
az account get-access-token 
az login --tenant $tenant2
az account get-access-token
az login --tenant $tenant1
az account get-access-token

Cree la máquina virtual. Reemplace la información del ejemplo por la suya. Antes de crear la máquina virtual, asegúrese de que la imagen se replica en la región donde desea crear la máquina virtual.

imageid="<ID of the image that you want to use>"
resourcegroup="<name for the resource group>"
location="<location where the image is replicated>"
user='<username for the VM>'
name='<name for the VM>'

az group create --location $location --resource-group $resourcegroup
az vm create \
  --resource-group $resourcegroup \
  --name $name \
  --image $imageid \
  --admin-username $user \
  --generate-ssh-keys

Importante

Microsoft no proporciona compatibilidad con las imágenes de la galería de la comunidad.

Notificación de problemas con una imagen de la comunidad

El uso de imágenes de máquina virtual enviadas por la comunidad tiene varios riesgos. Las imágenes podrían contener malware, vulnerabilidades de seguridad o infringir la propiedad intelectual de alguien. Para ayudar a crear una experiencia segura y de confianza para la comunidad, puede notificar imágenes cuando ve estos problemas.

La manera más fácil de notificar problemas con una galería de la comunidad es usar el portal, que rellenará automáticamente la información necesaria para el informe:

  • Para problemas con vínculos u otra información en los campos de una definición de imagen, seleccione Notificar imagen de la comunidad.
  • Si una versión de imagen contiene código malintencionado o hay otros problemas con una versión específica de una imagen, seleccione Notificar en la columna Versión del informe de la tabla de versiones de la imagen.

También puede usar los vínculos siguientes para notificar problemas, pero los formularios no se rellenarán previamente:

Para crear una máquina virtual con una imagen compartida en una galería de la comunidad, use el identificador único de la imagen para --image que tendrá el siguiente formato:

/CommunityGalleries/<community gallery name, like: ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/<image name>/Versions/latest

Siga estas instrucciones para obtener la lista de imágenes de Community mediante la CLI:

Step 1:  Show all 'Community images' in a specific location
az sig list-community --location westus2

Step 2: Once you have the public gallery name from Step 1, Get the Image definition (Name) of the image by running the following command
az sig image-definition list-community --public-gallery-name <<public gallery name>> --location westus2

Step 3: Finally, run the following command to list different image versions available for the specific image
az sig image-version list-community --public-gallery-name <<galleryname>> --gallery-image-definition <<image name>> --location westus2

Para obtener el nombre público de una galería de comunidad desde el portal. Vaya a Máquinas virtuales>Crear>Máquina virtual de Azure>Imagen>Ver todas las imágenes>Imágenes de la comunidad>Nombre público de la galería.

En este ejemplo, vamos a crear una máquina virtual a partir de una imagen de Linux y a crear claves SSH para la autenticación.

imgDef="/CommunityGalleries/ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/myLinuxImage/Versions/latest"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Al usar una imagen de la comunidad, se le pedirá que acepte los términos legales. El mensaje tiene este aspecto:

To create the VM from community gallery image, you must accept the license agreement and privacy statement: http://contoso.com. (If you want to accept the legal terms by default, please use the option '--accept-term' when creating VM/VMSS) (Y/n): 

Importante

Azure Compute Gallery: la galería compartida directa está actualmente en versión preliminar y sujeta a los Términos de versión preliminar de Azure Compute Gallery.

Para publicar imágenes en una galería compartida directa durante la versión preliminar, debe registrarse en https://aka.ms/directsharedgallery-preview. La creación de máquinas virtuales desde la galería de compartida está disponible para todos los usuarios de Azure.

Durante la versión preliminar, debe crear una nueva galería, con la propiedad sharingProfile.permissions establecida en Groups. Al usar la CLI para crear una galería, especifique el parámetro --permissions groups. No se puede usar una galería existente, la propiedad no se puede actualizar en este momento.

Para crear una máquina virtual con una imagen compartida en su suscripción o inquilino, necesita el identificador de la imagen en el siguiente formato:

/SharedGalleries/<uniqueID>/Images/<image name>/Versions/latest

Para buscar el elemento uniqueID de una galería que se comparte con el usuario, use az sig list-shared. En este ejemplo, estamos buscando galerías en la región Oeste de EE. UU.

region=westus
az sig list-shared --location $region --query "[].name" -o tsv

Use el nombre de la galería para buscar las imágenes disponibles. En este ejemplo, se enumeran todas las imágenes en la región Oeste de EE. UU. y por nombre, el identificador único necesario para crear una máquina virtual, el sistema operativo y el estado del sistema operativo.

galleryName="1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-myDirectShared"
 az sig image-definition list-shared \
   --gallery-unique-name $galleryName \
   --location $region \
   --query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table

Asegúrese de que el estado de la imagen sea Generalized. Si quiere usar una imagen con el estado Specialized, consulte Creación de una máquina virtual a partir de una versión de imagen especializada.

Use el Id de la salida, anexado a /Versions/latest para usar la versión más reciente, como valor de --image para crear una máquina virtual. En este ejemplo, vamos a crear una máquina virtual a partir de una imagen de Linux que se comparte con nosotros directamente y a crear claves SSH para la autenticación.

imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Pasos siguientes