Creare e distribuire un set di scalabilità di macchine virtualiCreate and deploy a virtual machine scale set

I set di scalabilità di macchine virtuali semplificano la distribuzione e la gestione di macchine virtuali identiche come un set.Virtual machine scale sets make it easy for you to deploy and manage identical virtual machines as a set. I set di scalabilità offrono un livello di calcolo scalabile e personalizzabile per applicazioni con iperscalabilità e supportano le immagini della piattaforma Windows, le immagini della piattaforma Linux, le immagini personalizzate e le estensioni.Scale sets provide a highly scalable and customizable compute layer for hyperscale applications, and they support Windows platform images, Linux platform images, custom images, and extensions. Per altre informazioni sui set di scalabilità, vedere Set di scalabilità di macchine virtuali.For more information about scale sets, see Virtual machine scale sets.

Questa esercitazione mostra come creare un set di scalabilità di macchine virtuali senza usare il portale di Azure.This tutorial shows you how to create a virtual machine scale set without using the Azure portal. Per informazioni su come usare il portale di Azure, vedere Come creare un set di scalabilità di macchine virtuali tramite il portale di Azure.For information about how to use the Azure portal, see How to create a virtual machine scale set with the Azure portal.

Nota

Per altre informazioni sulle risorse di Azure Resource Manager, vedere Confronto tra distribuzione di Azure Resource Manager e classica.For more information about Azure Resource Manager resources, see Azure Resource Manager vs. classic deployment.

Accedere ad AzureSign in to Azure

Se si usa l'interfaccia della riga di comando di Azure 2.0 o Azure PowerShell per creare un set di scalabilità, per prima cosa è necessario accedere alla propria sottoscrizione.If you're using Azure CLI 2.0 or Azure PowerShell to create a scale set, you first need to sign in to your subscription.

Per altre informazioni su come installare, configurare e accedere ad Azure con l'interfaccia della riga di comando di Azure o con PowerShell, vedere Getting Started with Azure CLI 2.0 (Introduzione all'interfaccia della riga di comando di Azure 2.0) o Get started with Azure PowerShell cmdlets (Introduzione ai cmdlet di Azure PowerShell).For more information about how to install, set up, and sign in to Azure with Azure CLI or PowerShell, see Getting Started with Azure CLI 2.0 or Get started with Azure PowerShell cmdlets.

az login
Login-AzureRmAccount

Creare un gruppo di risorseCreate a resource group

Per prima cosa è necessario creare un gruppo di risorse a cui sia associato il set di scalabilità di macchine virtuali.You first need to create a resource group that the virtual machine scale set is associated with.

az group create --location westus2 --name MyResourceGroup1
New-AzureRmResourceGroup -Location westus2 -Name MyResourceGroup1

Creare un set di scalabilità dall'interfaccia della riga di comando di AzureCreate from Azure CLI

Con l'interfaccia della riga di comando di Azure, è possibile creare facilmente un set di scalabilità di macchine virtuali.With Azure CLI, you can create a virtual machine scale set with minimal effort. Se omessi, i valori predefiniti vengono forniti automaticamente.If you omit default values, they are provided for you. Ad esempio, se non si specificano le informazioni relative alla rete virtuale, ne verrà creata una automaticamente.For example, if you don't specify any virtual network information, a virtual network is created for you. Se si omettono le parti seguenti, queste verranno create:If you omit the following parts, they are created for you:

  • Un bilanciamento del caricoA load balancer
  • Una rete virtualeA virtual network
  • Un indirizzo IP pubblicoA public IP address

Quando si sceglie l'immagine della macchina virtuale da usare nel set di scalabilità di macchine virtuali, sono disponibili alcune opzioni:When choosing the virtual machine image that you want to use on the virtual machine scale set, you have a few choices:

  • URNURN
    L'identificatore di una risorsa:The identifier of a resource:
    Win2012R2DatacenterWin2012R2Datacenter

  • Alias URNURN alias
    Il nome descrittivo di un URN:The friendly name of a URN:
    MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latestMicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest

  • ID risorsa personalizzataCustom resource id
    Il percorso di una risorsa di Azure:The path to an Azure resource:
    /subscriptions/subscription-guid/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/images/MyImage/subscriptions/subscription-guid/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/images/MyImage

  • Risorsa WebWeb resource
    Il percorso di un URI HTTP:The path to an HTTP URI:
    http://contoso.blob.core.windows.net/vhds/osdiskimage.vhdhttp://contoso.blob.core.windows.net/vhds/osdiskimage.vhd

Suggerimento

È possibile ottenere un elenco di immagini disponibili con az vm image list.You can get a list of available images with az vm image list.

Per creare un set di scalabilità di macchine virtuali, è necessario specificare quanto segue:To create a virtual machine scale set, you must specify the following:

  • Resource groupResource group
  • NomeName
  • Immagine del sistema operativoOperating system image
  • Informazioni di autenticazioneAuthentication information

L'esempio seguente crea un set di scalabilità di macchine virtuali di base (questo passaggio può richiedere alcuni minuti).The following example creates a basic virtual machine scale set (this step might take a few minutes).

az vmss create --resource-group MyResourceGroup1 --name MyScaleSet --image UbuntuLTS --authentication-type password --admin-username azureuser --admin-password P@ssw0rd!

Dopo il completamento del comando il set di scalabilità di macchine virtuali è stato creato.Once the command finishes you will now have your virtual machine scale set created. Potrebbe essere necessario ottenere l'indirizzo IP della macchina virtuale per stabilire la connessione.You may need to get the IP address of the virtual machine so that you can connect to it. È possibile ottenere varie informazioni relative alla macchina virtuale (incluso l'indirizzo IP) con il comando seguente.You can get a lot of different information about the virtual machine (including the IP address) with the following command.

az vmss list-instance-connection-info --resource-group MyResourceGroup1 --name MyScaleSet

Creare un set di scalabilità da PowerShellCreate from PowerShell

PowerShell è più complicato da usare rispetto all'interfaccia della riga di comando di Azure.PowerShell is more complicated to use than Azure CLI. Mentre l'interfaccia della riga di comando di Azure fornisce automaticamente le opzioni predefinite per le risorse di rete (bilanciamenti del carico, indirizzi IP, reti virtuali), questo non avviene in PowerShell.While Azure CLI provides defaults for networking-related resources (such as load balancers, IP addresses, and virtual networks), PowerShell does not. Anche fare riferimento a un'immagine con PowerShell è leggermente più complicato.Referencing an image with PowerShell is a slightly more complicated too. È possibile ottenere immagini con i cmdlet seguenti:You can get images with the following cmdlets:

  1. Get-AzureRMVMImagePublisherGet-AzureRMVMImagePublisher
  2. Get-AzureRMVMImageOfferGet-AzureRMVMImageOffer
  3. Get-AzureRmVMImageSkuGet-AzureRmVMImageSku

Il lavoro dei cmdlet può essere reindirizzato in sequenza.The cmdlets work can be piped in sequence. Di seguito è riportato un esempio di come ottenere tutte le immagini per l'area West US 2 (Stati Uniti occidentali 2) il cui nome dell'editore contiene microsoft.Here is an example of how to get all images for the West US 2 region with a publisher that has the name microsoft in it.

Get-AzureRMVMImagePublisher -Location WestUS2 | Where-Object PublisherName -Like *microsoft* | Get-AzureRMVMImageOffer | Get-AzureRmVMImageSku | Select-Object PublisherName, Offer, Skus
PublisherName              Offer                    Skus
-------------              -----                    ----
microsoft-ads              linux-data-science-vm    linuxdsvm
microsoft-ads              standard-data-science-vm standard-data-science-vm
MicrosoftAzureSiteRecovery Process-Server           Windows-2012-R2-Datacenter
MicrosoftBizTalkServer     BizTalk-Server           2013-R2-Enterprise
MicrosoftBizTalkServer     BizTalk-Server           2013-R2-Standard
MicrosoftBizTalkServer     BizTalk-Server           2016-Developer
MicrosoftBizTalkServer     BizTalk-Server           2016-Enterprise
...

Il flusso di lavoro per la creazione di un set di scalabilità di macchine virtuali è il seguente:The workflow for creating a virtual machine scale set is as follows:

  1. Creare un oggetto di configurazione contenente informazioni sul set di scalabilità.Create a config object that holds information about the scale set.
  2. Fare riferimento all'immagine del sistema operativo di base.Reference the base OS image.
  3. Configurare le impostazioni del sistema operativo: autenticazione, prefisso del nome della VM e utente/password.Configure the operating system settings: authentication, VM name prefix, and user/pass.
  4. Configurare le impostazioni di rete.Configure networking.
  5. Creare il set di scalabilità.Create the scale set.

Questo esempio consente di creare un set di scalabilità di base a due istanze per un computer con installato Windows Server 2016.This example creates a basic two-instance scale set for a computer that has Windows Server 2016 installed.

# Resource group name from above
$rg = "MyResourceGroup1"
$location = "WestUS2"

# Create a config object
$vmssConfig = New-AzureRmVmssConfig -Location $location -SkuCapacity 2 -SkuName Standard_A0  -UpgradePolicyMode Automatic

# Reference a virtual machine image from the gallery
Set-AzureRmVmssStorageProfile $vmssConfig -ImageReferencePublisher MicrosoftWindowsServer -ImageReferenceOffer WindowsServer -ImageReferenceSku 2016-Datacenter -ImageReferenceVersion latest

# Set up information for authenticating with the virtual machine
Set-AzureRmVmssOsProfile $vmssConfig -AdminUsername azureuser -AdminPassword P@ssw0rd! -ComputerNamePrefix myvmssvm

# Create the virtual network resources

## Basics
$subnet = New-AzureRmVirtualNetworkSubnetConfig -Name "my-subnet" -AddressPrefix 10.0.0.0/24
$vnet = New-AzureRmVirtualNetwork -Name "my-network" -ResourceGroupName $rg -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet

## Load balancer
$publicIP = New-AzureRmPublicIpAddress -Name "PublicIP" -ResourceGroupName $rg -Location $location -AllocationMethod Static -DomainNameLabel "myuniquedomain"
$frontendIP = New-AzureRmLoadBalancerFrontendIpConfig -Name "LB-Frontend" -PublicIpAddress $publicIP
$backendPool = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name "LB-backend"
$probe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe" -Protocol Tcp -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$inboundNATRule1= New-AzureRmLoadBalancerRuleConfig -Name "webserver" -FrontendIpConfiguration $frontendIP -Protocol Tcp -FrontendPort 80 -BackendPort 80 -IdleTimeoutInMinutes 15 -Probe $probe -BackendAddressPool $backendPool
$inboundNATPool1 = New-AzureRmLoadBalancerInboundNatPoolConfig -Name "RDP" -FrontendIpConfigurationId $frontendIP.Id -Protocol TCP -FrontendPortRangeStart 53380 -FrontendPortRangeEnd 53390 -BackendPort 3389

New-AzureRmLoadBalancer -ResourceGroupName $rg -Name "LB1" -Location $location -FrontendIpConfiguration $frontendIP -LoadBalancingRule $inboundNATRule1 -InboundNatPool $inboundNATPool1 -BackendAddressPool $backendPool -Probe $probe

## IP address config
$ipConfig = New-AzureRmVmssIpConfig -Name "my-ipaddress" -LoadBalancerBackendAddressPoolsId $backendPool.Id -SubnetId $vnet.Subnets[0].Id -LoadBalancerInboundNatPoolsId $inboundNATPool1.Id

# Attach the virtual network to the IP object
Add-AzureRmVmssNetworkInterfaceConfiguration -VirtualMachineScaleSet $vmssConfig -Name "network-config" -Primary $true -IPConfiguration $ipConfig

# Create the scale set with the config object (this step might take a few minutes)
New-AzureRmVmss -ResourceGroupName $rg -Name "MyScaleSet1" -VirtualMachineScaleSet $vmssConfig

Usare un'immagine di macchina virtuale personalizzataUsing a custom virtual machine image

Se si sta creando un set di scalabilità da un'immagine personalizzata anziché fare riferimento a un'immagine di macchina virtuale dalla raccolta, il comando Set AzureRmVmssStorageProfile avrà l'aspetto seguente:If you are creating a scale set from your own custom image, instead of referencing a virtual machine image from the gallery, the Set-AzureRmVmssStorageProfile command would look like this:

Set-AzureRmVmssStorageProfile -OsDiskCreateOption FromImage -ManagedDisk PremiumLRS -OsDiskCaching "None" -OsDiskOsType Linux -ImageReferenceId (Get-AzureRmImage -ImageName $VMImage -ResourceGroupName $rg).id

Creare un set di scalabilità da un modelloCreate from a template

È possibile distribuire un set di scalabilità di macchine virtuali usando un modello di Azure Resource Manager.You can deploy a virtual machine scale set by using an Azure Resource Manager template. È possibile creare un modello personalizzato o usarne uno del repository di modelli.You can create your own template or use one from the template repository. Questi modelli possono essere distribuiti direttamente alla sottoscrizione di Azure.These templates can be deployed directly to your Azure subscription.

Nota

Per creare un modello personalizzato, si crea un file di testo JSON.To create your own template, you create a JSON text file. Per informazioni generali su come creare e personalizzare un modello, vedere Modelli di Azure Resource Manager.For general information about how to create and customize a template, see Azure Resource Manager templates.

Un modello di esempio è disponibile in GitHub.A sample template is available on GitHub. Per altre informazioni su come creare e usare tale esempio, vedere Un set di scalabilità a validità minima.For more information about how to create and use that sample, see Minimum viable scale set.

Creare un set di scalabilità da Visual StudioCreate from Visual Studio

Con Visual Studio, è possibile creare un progetto del gruppo di risorse di Azure e aggiungervi un modello di set di scalabilità di macchine virtuali.With Visual Studio, you can create an Azure resource group project and add a virtual machine scale set template to it. È possibile scegliere se si desidera eseguire l'importazione da GitHub o dalla raccolta di applicazioni Web di Azure.You can choose whether you want to import it from GitHub or the Azure Web Application Gallery. Viene inoltre generato automaticamente uno script di PowerShell per la distribuzione.A deployment PowerShell script is also generated for you. Per altre informazioni, vedere Come creare un set di scalabilità di macchine virtuali con Visual Studio.For more information, see How to create a virtual machine scale set with Visual Studio.

Creare un set di scalabilità dal portale di AzureCreate from the Azure portal

Il portale di Azure costituisce un modo semplice per creare rapidamente un set di scalabilità.The Azure portal provides a convenient way to quickly create a scale set. Per altre informazioni, vedere Come creare un set di scalabilità di macchine virtuali tramite il portale di Azure.For more information, see How to create a virtual machine scale set with the Azure portal.

Passaggi successiviNext steps

Altre informazioni su dischi dati.Learn more about data disks.

Informazioni su come gestire le app.Learn how to manage your apps.