Búsqueda y uso de imágenes de máquina virtual de Azure Marketplace con Azure PowerShell

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes

En este artículo se describe cómo usar Azure PowerShell para buscar imágenes de VM en Azure Marketplace. Después, puede especificar información sobre una imagen o un plan de Marketplace al crear una máquina virtual.

Puede examinar también las imágenes y ofertas disponibles medianteAzure Marketplaceo la CLI de Azure.

Terminología

Una imagen de Marketplace de Azure tiene los atributos siguientes:

  • Publicador: organización que ha creado la imagen. Ejemplos: Canonical, MicrosoftWindowsServer
  • Oferta: nombre de un grupo de imágenes relacionadas creado por un publicador. Ejemplos: Ubuntu Server, WindowsServer
  • SKU: instancia de una oferta, por ejemplo, una versión principal de una distribución. Ejemplos: 18.04-LTS, 2019-Datacenter
  • Versión: número de versión de una SKU de imagen.

Estos valores se pueden pasar individualmente o como un URN de imagen, combinando los valores separados por dos puntos (:). Por ejemplo: Publicador:Oferta:SKU:Versión. Puede reemplazar el número de versión del URN por latest para usar la versión más reciente de la imagen.

Si el editor de imágenes proporciona una licencia adicional y términos de compra, debe aceptarlos para poder usar la imagen. Para obtener más información, consulte Aceptación de los términos del plan de compra.

Lista de imágenes

Puede usar PowerShell para reducir la lista de imágenes. Reemplace los valores de las variables para que se adapten a sus necesidades.

  1. Muestre una lista de los editores de imágenes mediante Get-AzVMImagePublisher.

    $locName="<location>"
    Get-AzVMImagePublisher -Location $locName | Select PublisherName
    
  2. Puede mostrar una lista de las ofertas de un editor determinado mediante Get-AzVMImageOffer.

    $pubName="<publisher>"
    Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
    
  3. Puede mostrar una lista de las SKU disponibles de un editor y una oferta determinados mediante Get-AzVMImageSku.

    $offerName="<offer>"
    Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
    
  4. Puede mostrar las versiones de la imagen de una SKU mediante Get-AzVMImage.

    $skuName="<SKU>"
    Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Sku $skuName | Select Version
    

    También puede usar latest si quiere usar la imagen más reciente y no una versión anterior específica.

Ahora puede combinar el publicador, la oferta, la SKU y la versión que se seleccionó en un URN (valores separados por :). Pase este URN con el parámetro -Image al crear una VM con el cmdlet New-AzVM. También puede reemplazar el número de versión del URN por latest para obtener la versión más reciente de la imagen.

Si implementa una máquina virtual con una plantilla de Resource Manager, establecerá los parámetros de imagen individualmente en las propiedades imageReference. Consulte la referencia de plantilla.

Visualización de las propiedades del plan de compra

Algunas imágenes de máquina virtual en Azure Marketplace tienen términos adicionales de licencia y compra que debe aceptar antes de poder implementarlas mediante programación. Tendrá que aceptar los términos de la imagen una vez para cada suscripción.

Para ver la información del plan de compra de una imagen, ejecute el cmdlet Get-AzVMImage. Si la propiedad PurchasePlan de la salida no es null, la imagen tienen términos que debe aceptar antes de la implementación mediante programación.

Por ejemplo, la imagen Windows Server 2016 Datacenter no tiene términos adicionales, porque la información de PurchasePlan es null:

$version = "2016.127.20170406"
Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName -Version $version

La salida tendrá una apariencia parecida a la siguiente:

Id               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2016-Datacenter/Versions/2019.0.20190115
Location         : westus
PublisherName    : MicrosoftWindowsServer
Offer            : WindowsServer
Skus             : 2019-Datacenter
Version          : 2019.0.20190115
FilterExpression :
Name             : 2019.0.20190115
OSDiskImage      : {
                     "operatingSystem": "Windows"
                   }
PurchasePlan     : null
DataDiskImages   : []

En el ejemplo siguiente se muestra un comando similar para la imagen Data Science Virtual Machine - Windows 2016 que tiene las propiedades PurchasePlan siguientes: name, product y publisher. Algunas imágenes también tienen una propiedad promotion code. Para implementar esta imagen, consulte las secciones siguientes para aceptar los términos y habilitar la implementación mediante programación.

Get-AzVMImage -Location "westus" -PublisherName "microsoft-ads" -Offer "windows-data-science-vm" -Skus "windows2016" -Version "0.2.02"

La salida tendrá una apariencia parecida a la siguiente:

Id               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-ads/ArtifactTypes/VMImage/Offers/windows-data-science-vm/Skus/windows2016/Versions/19.01.14
Location         : westus
PublisherName    : microsoft-ads
Offer            : windows-data-science-vm
Skus             : windows2016
Version          : 19.01.14
FilterExpression :
Name             : 19.01.14
OSDiskImage      : {
                     "operatingSystem": "Windows"
                   }
PurchasePlan     : {
                     "publisher": "microsoft-ads",
                     "name": "windows2016",
                     "product": "windows-data-science-vm"
                   }
DataDiskImages   : []

Para ver los términos de licencia, use el cmdlet Get-AzMarketplaceterms y pase los parámetros del plan de compra. La salida proporciona un vínculo a los términos de la imagen de Marketplace y muestra si anteriormente aceptó los términos. Asegúrese de que todas las letras sean minúsculas en los valores de parámetros.

Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"

La salida tendrá una apariencia parecida a la siguiente:

Publisher         : microsoft-ads
Product           : windows-data-science-vm
Plan              : windows2016
LicenseTextLink   : https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_MICROSOFT%253a2DADS%253a24WINDOWS%253a2DDATA%253a2DSCIENCE%253a2DVM%253a24WINDOWS2016%253a24OC5SKMQOXSED66BBSNTF4XRCS4XLOHP7QMPV54DQU7JCBZWYFP35IDPOWTUKXUC7ZAG7W6ZMDD6NHWNKUIVSYBZUTZ245F44SU5AD7Q.txt
PrivacyPolicyLink : https://www.microsoft.com/EN-US/privacystatement/OnlineServices/Default.aspx
Signature         : 2UMWH6PHSAIM4U22HXPXW25AL2NHUJ7Y7GRV27EBL6SUIDURGMYG6IIDO3P47FFIBBDFHZHSQTR7PNK6VIIRYJRQ3WXSE6BTNUNENXA
Accepted          : False
Signdate          : 1/25/2019 7:43:00 PM

Aceptación de los términos del plan de compra

Use el cmdlet Set-AzMarketplaceterms para aceptar o rechazar los términos. Solo debe aceptar los términos una vez por suscripción para la imagen. Asegúrese de que todas las letras sean minúsculas en los valores de parámetros.

$agreementTerms=Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"

Set-AzMarketplaceTerms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016" -Terms $agreementTerms -Accept
Publisher         : microsoft-ads
Product           : windows-data-science-vm
Plan              : windows2016
LicenseTextLink   : https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_MICROSOFT%253a2DADS%253a24WINDOWS%253a2DDATA%253a2DSCIENCE%253a2DV
                    M%253a24WINDOWS2016%253a24OC5SKMQOXSED66BBSNTF4XRCS4XLOHP7QMPV54DQU7JCBZWYFP35IDPOWTUKXUC7ZAG7W6ZMDD6NHWNKUIVSYBZUTZ245F44SU5AD7Q.txt
PrivacyPolicyLink : https://www.microsoft.com/EN-US/privacystatement/OnlineServices/Default.aspx
Signature         : XXXXXXK3MNJ5SROEG2BYDA2YGECU33GXTD3UFPLPC4BAVKAUL3PDYL3KBKBLG4ZCDJZVNSA7KJWTGMDSYDD6KRLV3LV274DLBXXXXXX
Accepted          : True
Signdate          : 2/23/2018 7:49:31 PM

Creación de una máquina virtual con una imagen de Marketplace

Si ya tiene información sobre la imagen que quiere usar, puede pasarla al cmdlet Set-AzVMSourceImage para agregar datos de la imagen a la configuración de la máquina virtual. Consulte las secciones siguientes para buscar y enumerar las imágenes disponibles en Marketplace.

Algunas imágenes de pago también requieren que proporcione información del plan de compra mediante el cmdlet Set-AzVMPlan.

...

$vmConfig = New-AzVMConfig -VMName "myVM" -VMSize Standard_D1

# Set the Marketplace image
$offerName = "windows-data-science-vm"
$skuName = "windows2016"
$version = "19.01.14"
$vmConfig = Set-AzVMSourceImage -VM $vmConfig -PublisherName $publisherName -Offer $offerName -Skus $skuName -Version $version

# Set the Marketplace plan information, if needed
$publisherName = "microsoft-ads"
$productName = "windows-data-science-vm"
$planName = "windows2016"
$vmConfig = Set-AzVMPlan -VM $vmConfig -Publisher $publisherName -Product $productName -Name $planName

...

Luego, la configuración de la máquina virtual se pasará junto con los demás objetos de configuración al cmdlet New-AzVM. Para ver un ejemplo detallado de uso de una configuración de máquina virtual con PowerShell, consulte este script.

Si aparece un mensaje sobre la aceptación de los términos de la imagen, consulte la sección Aceptación de los términos del plan de compra más arriba.

Creación de una nueva VM a partir de un VHD con la información del plan de compra

Si tiene un disco duro virtual que se creó mediante una imagen de Azure Marketplace, puede que tenga que proporcionar la información del plan de compra al crear una máquina virtual con él.

Si todavía tiene la máquina virtual original, u otra máquina virtual creada con la misma imagen, puede obtener información sobre el nombre del plan, el editor y el producto mediante Get-AzVM. En este ejemplo se obtiene una máquina virtual llamada myVM en el grupo de recursos myResourceGroup y, después, se muestra la información del plan de compra.

$vm = Get-azvm `
   -ResourceGroupName myResourceGroup `
   -Name myVM
$vm.Plan

Si no recibió la información del plan antes de que se eliminara la máquina virtual original, puede presentar una solicitud de soporte técnico. Deberá proporcionar el nombre de la máquina virtual, el identificador de la suscripción y la marca de tiempo de la operación de eliminación.

Para crear una máquina virtual con un disco duro virtual, consulte el artículo Creación de una máquina virtual a partir de un VHD especializado e incorpore una línea para agregar la información del plan a la configuración de máquina virtual mediante Set-AzVMPlan, como en el ejemplo siguiente:

$vmConfig = Set-AzVMPlan `
   -VM $vmConfig `
   -Publisher "publisherName" `
   -Product "productName" `
   -Name "planName"

Pasos siguientes

Para crear una máquina virtual rápidamente con el cmdlet New-AzVM mediante información de imagen básica, consulte Creación de una máquina virtual Windows con PowerShell.

Para más información sobre el uso de imágenes de Azure Marketplace para crear imágenes personalizadas en Azure Compute Gallery (anteriormente denominada Shared Image Gallery), vea Indicación de la información del plan de compra de Azure Marketplace al crear imágenes.