Effettuare il provisioning di una macchina virtuale di SQL Server con Azure PowerShell (classico)Provision a SQL Server virtual machine using Azure PowerShell (Classic)

In questo articolo viene descritta la procedura per creare una macchina virtuale SQL Server in Azure usando i cmdlet di PowerShell.This article provides steps for how to create a SQL Server virtual machine in Azure by using the PowerShell cmdlets.

Importante

Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and Classic. Questo articolo illustra l'uso del modello di distribuzione classica.This article covers using the Classic deployment model. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti.Microsoft recommends that most new deployments use the Resource Manager model.

Per la versione di Resource Manager di questo argomento, vedere Effettuare il provisioning di una macchina virtuale di SQL Server con Azure PowerShell (Resource Manager).For the Resource Manager version of this topic, see Provision a SQL Server virtual machine using Azure PowerShell Resource Manager.

Installare e configurare PowerShell:Install and configure PowerShell:

  1. Se non si dispone di un account Azure, provare la versione di valutazione gratuita di Azure.If you do not have an Azure account, visit Azure free trial.
  2. Scaricare e installare i comandi di Azure PowerShell più recenti.Download and install the latest Azure PowerShell commands.
  3. Avviare Windows PowerShell e connetterlo alla sottoscrizione di Azure mediante il comando Add-AzureAccount .Start Windows PowerShell, and connect it to your Azure subscription with the Add-AzureAccount command.

    Add-AzureAccount
    

Determinare l'area di destinazione di AzureDetermine your target Azure region

La macchina virtuale di SQL Server verrà ospitata in un servizio cloud che si trova un'area di Azure specifica.Your SQL Server Virtual Machine will be hosted in a cloud service that resides a specific Azure region. I passaggi seguenti consentono di determinare l'area, l'account di archiviazione e il servizio cloud che verranno usati nel resto dell'esercitazione.The following steps help you to determine your region, storage account, and cloud service that will be used for the rest of the tutorial.

  1. Determinare il data center che si desidera usare per ospitare la macchina virtuale di SQL Server.Determine the data center that you want to use to host your SQL Server VM. Il comando PowerShell seguente visualizza un elenco di nomi di aree disponibili.The following PowerShell command displays a list of available region names.

    (Get-AzureLocation).Name
    
  2. Dopo che è stata identificata la località preferita, impostare una variabile denominata $dcLocation su quell'area.Once you've identified your preferred location, set a variable named $dcLocation to that region. Il comando seguente, ad esempio, imposta l'area su "Stati Uniti orientali":For example, the following command sets the region to "East US":

    $dcLocation = "East US"
    

Impostare l'account di archiviazione e la sottoscrizioneSet your subscription and storage account

  1. Determinare la sottoscrizione di Azure da usare per la nuova macchina virtuale.Determine the Azure subscription you will use for the new virtual machine.

    (Get-AzureSubscription).SubscriptionName
    
  2. Assegnare la sottoscrizione di Azure di destinazione alla variabile $subscr .Assign your target Azure subscription to the $subscr variable. Quindi, impostarla come la sottoscrizione di Azure corrente.Then set this as your current Azure subscription.

    $subscr="<subscription name>"
    Select-AzureSubscription -SubscriptionName $subscr –Current
    
  3. Verificare la presenza di account di archiviazione esistenti.Then check for existing storage accounts. Lo script seguente consente di visualizzare tutti gli account di archiviazione presenti nell'area selezionata:The following script displays all storage accounts that exist in your chosen region:

    (Get-AzureStorageAccount | where { $_.GeoPrimaryLocation -eq $dcLocation }).StorageAccountName
    

    Nota

    Se è necessario un nuovo account di archiviazione, creare prima un nome account di archiviazione tutto in minuscolo con il comando New-AzureStorageAccount come nell'esempio seguente: New-AzureStorageAccount -StorageAccountName "<storage account name>" -Location $dcLocationIf you require a new storage account, first create an all-lower-case storage account name with the New-AzureStorageAccount command as in the following example: New-AzureStorageAccount -StorageAccountName "<storage account name>" -Location $dcLocation

  4. Assegnare il nome dell'account di archiviazione di destinazione a $staccount.Assign the target storage account name to the $staccount. Usare quindi Set-AzureSubscription per impostare la sottoscrizione e l'account di archiviazione corrente.Then use Set-AzureSubscription to set the subscription and current storage account.

    $staccount="<storage account name>"
    Set-AzureSubscription -SubscriptionName $subscr -CurrentStorageAccountName $staccount
    

Selezionare un'immagine di macchina virtuale di SQL ServerSelect a SQL Server virtual machine image

  1. Trovare l'elenco delle immagini delle macchine virtuali di SQL Server disponibili nella raccolta.Find out the list of available SQL Server virtual machines images from the gallery. Queste immagini hanno la proprietà ImageFamily che inizia con "SQL".These images all have an ImageFamily property that starts with "SQL". La query seguente consente di visualizzare la famiglia di immagini disponibile che include SQL Server preinstallato.The following query displays the image family available to you that have SQL Server preinstalled.

    Get-AzureVMImage | where { $_.ImageFamily -like "SQL*" } | select ImageFamily -Unique | Sort-Object -Property ImageFamily
    
  2. Nella famiglia di immagini di macchina virtuale trovata potrebbero esserci più immagini pubblicate.When you find the virtual machine image family, there could be multiple published images in this family. Usare lo script seguente per trovare il nome dell'immagine di macchina virtuale pubblicata più recente per la famiglia di immagini selezionata (ad esempio SQL Server 2016 RTM Enterprise in Windows Server 2012 R2):Use the following script to find the latest published virtual machine image name for your selected image family (such as SQL Server 2016 RTM Enterprise on Windows Server 2012 R2):

    $family="<ImageFamily value>"
    $image=Get-AzureVMImage | where { $_.ImageFamily -eq $family } | sort PublishedDate -Descending | select -ExpandProperty ImageName -First 1
    
    echo "Selected SQL Server image name:"
    echo "   $image"
    

Creare la macchina virtualeCreate the virtual machine

Infine, creare la macchina virtuale con PowerShell.Finally, create the virtual machine with PowerShell:

  1. Creare un servizio cloud per ospitare la nuova macchina virtuale.Create a cloud service to host the new VM. Si noti che è anche possibile usare un servizio cloud esistente.Note that it is also possible to use an existing cloud service instead. Creare una nuova variabile $svcname con il nome breve del servizio cloud.Create a new variable $svcname with the short name of the cloud service.

    $svcname = "<cloud service name>"
    New-AzureService -ServiceName $svcname -Label $svcname -Location $dcLocation
    
  2. Specificare il nome della macchina virtuale e le dimensioni.Specify the virtual machine name and a size. Per altre informazioni sulle dimensioni della macchina virtuale, vedere Dimensioni delle macchine virtuali in Azure.For more information about virtual machine sizes, see Virtual Machine Sizes for Azure.

    $vmname="<machine name>"
    $vmsize="<Specify one: Large, ExtraLarge, A5, A6, A7, A8, A9, or see the link to the other VM sizes>"
    $vm1=New-AzureVMConfig -Name $vmname -InstanceSize $vmsize -ImageName $image
    
  3. Specificare l'account amministratore locale e la password.Specify the local administrator account and password.

    $cred=Get-Credential -Message "Type the name and password of the local administrator account."
    $vm1 | Add-AzureProvisioningConfig -Windows -AdminUsername $cred.GetNetworkCredential().Username -Password $cred.GetNetworkCredential().Password
    
  4. Eseguire lo script seguente per creare la macchina virtuale.Run the following script to create the virtual machine.

    New-AzureVM –ServiceName $svcname -VMs $vm1
    

Nota

Per le opzioni di configurazione e le spiegazioni aggiuntive, vedere la sezione Compilare il set di comandi in Uso di Azure PowerShell per creare e preconfigurare macchine virtuali basate su Windows.For additional explanation and configuration options, see the Build your command set section in Use Azure PowerShell to create and preconfigure Windows-based Virtual Machines.

Script di PowerShell di esempioExample PowerShell script

Lo script seguente costituisce un esempio di uno script completo che crea una macchina virtuale SQL Server 2016 RTM Enterprise in Windows Server 2012 R2.The following script provides an example of a complete script that creates a SQL Server 2016 RTM Enterprise on Windows Server 2012 R2 virtual machine. Se si usa questo script, è necessario personalizzare le variabili iniziali sulla base dei passaggi precedenti di questo argomento.If you use this script, you must customize the initial variables based on the previous steps in this topic.

# Customize these variables based on your settings and requirements:
$dcLocation = "East US"
$subscr="mysubscription"
$staccount="mystorageaccount"
$family="SQL Server 2016 RTM Enterprise on Windows Server 2012 R2"
$svcname = "mycloudservice"
$vmname="myvirtualmachine"
$vmsize="A5"

# Set the current subscription and storage account
# Comment out the New-AzureStorageAccount line if the account already exists
Select-AzureSubscription -SubscriptionName $subscr –Current
New-AzureStorageAccount -StorageAccountName $staccount -Location $dcLocation
Set-AzureSubscription -SubscriptionName $subscr -CurrentStorageAccountName $staccount

# Select the most recent VM image in this image family:
$image=Get-AzureVMImage | where { $_.ImageFamily -eq $family } | sort PublishedDate -Descending | select -ExpandProperty ImageName -First 1

# Create the new cloud service; comment out this line if cloud service exists already:
New-AzureService -ServiceName $svcname -Label $svcname -Location $dcLocation

# Create the VM config:
$vm1=New-AzureVMConfig -Name $vmname -InstanceSize $vmsize -ImageName $image

# Set administrator credentials:
$cred=Get-Credential -Message "Type the name and password of the local administrator account."
$vm1 | Add-AzureProvisioningConfig -Windows -AdminUsername $cred.GetNetworkCredential().Username -Password $cred.GetNetworkCredential().Password

# Create the SQL Server VM:
New-AzureVM –ServiceName $svcname -VMs $vm1

Connettersi a Desktop remotoConnect with remote desktop

  1. Creare i file con estensione rdp nella cartella documenti dell'utente corrente per avviare queste macchine virtuali e completare l'installazione:Create the RDP files in the current user's document folder to launch these virtual machines to complete setup:

    $documentspath = [environment]::getfolderpath("mydocuments")
    Get-AzureRemoteDesktopFile -ServiceName $svcname -Name $vmname -LocalPath "$documentspath\vm1.rdp"
    
  2. Nella directory dei documenti avviare il file con estensione rdp.In the documents directory, launch the RDP file. Connettersi con il nome utente e la password dell'amministratore specificati in precedenza (ad esempio, se è stato specificato il nome utente VMAdmin, specificare "\VMAdmin" come utente e fornire la password).Connect with the administrator user name and password provided earlier (for example, if your user name was VMAdmin, specify "\VMAdmin" as the user and provide the password).

    cd $documentspath
    .\vm1.rdp
    

Completare la configurazione del computer SQL Server per l'accesso remotoComplete the configuration of the SQL Server Machine for remote access

Dopo aver eseguito l'accesso al computer con desktop remoto, configurare SQL Server in base alle istruzioni presenti in Procedura per la configurazione della connettività di SQL Server in una macchina virtuale di Azure.After logging on to the machine with remote desktop, configure SQL Server based on the instructions in Steps for configuring SQL Server connectivity in an Azure VM.

Passaggi successiviNext steps

Per istruzioni aggiuntive sul provisioning delle macchine virtuali con PowerShell, vedere la documentazione delle macchine virtuali.You can find additional instructions for provisioning virtual machines with PowerShell in the virtual machines documentation.

In molti casi, il passaggio successivo consiste nella migrazione dei database in questa nuova macchina virtuale di SQL Server.In many cases, the next step is to migrate your databases to this new SQL Server VM. Per linee guida sulla migrazione dei database, vedere Migrazione di un database a SQL Server in una VM di Azure.For database migration guidance, see Migrating a Database to SQL Server on an Azure VM.

Se si è interessati anche all'uso del portale di Azure per creare macchine virtuali di SQL Server, vedere Effettuare il provisioning di una macchina virtuale di SQL Server nel portale di Azure.If you're also interested in using the Azure portal to create SQL Virtual Machines, see Provisioning a SQL Server Virtual Machine on Azure. Si noti che l'esercitazione che illustra il portale descrive la creazione di macchine virtuali mediante il modello consigliato di Gestione risorse anziché il modello classico impiegato in questo argomento di PowerShell.Note that the tutorial that walks you through the portal creates VMs using the recommended Resource Manager model, rather than the classic model used in this PowerShell topic.

Oltre a queste risorse, è consigliabile esaminare altri argomenti relativi all'esecuzione di SQL Server in Macchine virtuali di Azure.In addition to these resources, we recommend that you review other topics related to running SQL Server in Azure Virtual Machines.