Dela via


Guide för att skapa en virtuell SQL Server-dator med PowerShell

Gäller för:SQL Server på en virtuell Azure-dator

Den här guiden beskriver alternativ för att använda PowerShell för att skapa en SQL Server på en virtuell Azure-dator (VM). Ett effektiviserat Azure PowerShell-exempel som förlitar sig på standardvärden finns i snabbstarten SQL Server på den virtuella Azure-datorn PowerShell eller för ett skript från slutpunkt till slutpunkt i Skapa virtuell SQL Server-dator med PowerShell-skript.

Förutsättningar

För att slutföra den här guiden bör du ha följande:

  • Ett Azure-abonnemang. Om du inte har en Azure-prenumeration, skapa ett gratis konto innan du börjar.
  • Den senaste versionen av Azure PowerShell

Anmärkning

Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. Information om hur du kommer igång med Az PowerShell-modulen finns i Installera Azure PowerShell. För att lära dig hur du migrerar till Az PowerShell-modulen, se Migrera Azure PowerShell från AzureRM till Az.

Definiera variabler

Om du vill återanvända värden och förenkla skapandet av skript börjar du med att definiera ett antal variabler. Ändra parametervärdena som du vill, men var medveten om namngivningsbegränsningar relaterade till namnlängder och specialtecken när du ändrar de angivna värdena.

Börja med att definiera de parametrar som ska användas i hela skriptet, till exempel plats, namn på resursgruppen, SQL Server-avbildningen och lagringskontot som du vill använda, samt egenskaperna för nätverket och den virtuella datorn.

Plats och resursgrupp

Definiera den dataregion, resursgrupp och prenumeration där du vill skapa din virtuella SQL Server-dator och associerade resurser.

Ändra som du vill och kör sedan dessa cmdletar för att initiera dessa variabler.

$SubscriptionId = "<Enter Subscription ID>"
$Location = "<Enter Location>"
$ResourceGroupName = "<Enter Resource Group Name>"
$userName = "<Enter User Name for the virtual machine"

Lagringsegenskaper

Definiera lagringskontot och vilken typ av lagring som ska användas av den virtuella datorn.

Ändra som du vill och kör sedan följande cmdlet för att initiera dessa variabler. Vi rekommenderar att du använder Premium SSD för produktionsarbetsbelastningar.

$StorageName = "sqlvm" + "storage"
$StorageSku = "Premium_LRS"

Anmärkning

Lagringskontots namn måste vara mellan 3 och 24 tecken långt och endast använda siffror och gemener, så se till att resursgruppens namn inte har några specialtecken eller ändra namnet på lagringskontot så att det använder ett annat namn än $ResourceGroupName.

Nätverksegenskaper

Definiera de egenskaper som ska användas av nätverket på den virtuella datorn.

  • Nätverksgränssnitt
  • TCP/IP-allokeringsmetod
  • Namn på virtuellt nätverk
  • Namn på virtuellt undernät
  • Intervall med IP-adresser för det virtuella nätverket
  • Område av IP-adresser för undernät
  • Etikett för offentligt domännamn

Ändra som du vill och kör sedan den här cmdleten för att initiera dessa variabler.

$InterfaceName = $ResourceGroupName + "ServerInterface"
$NsgName = $ResourceGroupName + "nsg"
$TCPIPAllocationMethod = "Dynamic"
$VNetName = $ResourceGroupName + "VNet"
$SubnetName = "Default"
$VNetAddressPrefix = "10.0.0.0/16"
$VNetSubnetAddressPrefix = "10.0.0.0/24"
$DomainName = $ResourceGroupName

Egenskaper för virtuella datorer

Definiera följande egenskaper:

  • Namn på virtuell maskin
  • Datornamn
  • Storlek för virtuell dator
  • Namnet på operativsystemdisken för den virtuella datorn

Ändra som du vill och kör sedan den här cmdleten för att initiera dessa variabler.

$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"

Välj en SQL Server-avbildning

Det går att distribuera en äldre avbildning av SQL Server som inte är tillgänglig i Azure-portalen med hjälp av PowerShell.

Använd följande variabler för att definiera SQL Server-avbildningen som ska användas för den virtuella datorn.

  1. Visa en lista över alla SQL Server-avbildningserbjudanden med kommandot Get-AzVMImageOffer för att visa de aktuella tillgängliga avbildningarna i Azure-portalen samt äldre avbildningar som du bara kan distribuera med PowerShell:

    Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
    

    Anmärkning

    SQL Server 2012 och SQL Server 2014 saknar mainstream-stöd och är inte längre tillgängliga från Azure Marketplace.

  2. Lista de tillgängliga utgåvorna för ditt erbjudande med Get-AzVMImageSku.

    Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
    

I den här självstudien använder du SQL Server 2022 Developer Edition (SQLDEV-GEN2) på Windows Server 2022. Developer-utgåvan är fritt licensierad för testning och utveckling och du betalar bara för kostnaden för att köra den virtuella datorn:

$OfferName = "SQL2022-WS2022"
$PublisherName = "MicrosoftSQLServer"
$Version = "latest"
$Sku = "SQLDEV-GEN2"
$License = 'PAYG'

# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
   -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)

Skapa en resursgrupp

Öppna PowerShell och upprätta åtkomst till ditt Azure-konto genom att köra kommandot Connect-AzAccount och ange din prenumerationskontext med Set-AzContext. När du uppmanas till det anger du dina autentiseringsuppgifter. Använd samma e-post och lösenord som du använder för att logga in på Azure-portalen.

När du har upprättat prenumerationskontexten är det första objektet som du skapar resursgruppen. Använd kommandot Connect-AzAccount för att ansluta till Azure och ange din prenumerationskontext med Set-AzContext. Använd cmdleten New-AzResourceGroup för att skapa en Azure-resursgrupp och dess resurser. Ange de variabler som du tidigare initierade för resursgruppens namn och plats.

Kör den här cmdleten för att ansluta till Azure, upprätta prenumerationskontext och skapa din nya resursgrupp:


# Set subscription context
Connect-AzAccount
$subscriptionContextParams = @{
    SubscriptionId = $SubscriptionId
}
Set-AzContext @subscriptionContextParams

# Create a resource group
$resourceGroupParams = @{
    Name = $resourceGroupName
    Location = $Location
    Tag = @{Owner="SQLDocs-Samples"}
}
$resourceGroup = New-AzResourceGroup @resourceGroupParams

Skapa ett lagringskonto

Den virtuella datorn kräver lagringsresurser för operativsystemdisken och för SQL Server-data och loggfiler. För enkelhetens skull skapar du en enda disk för båda. Du kan ansluta ytterligare diskar senare med hjälp av cmdleten Add-Azure Disk för att placera dina SQL Server-data och loggfiler på dedikerade diskar. Använd cmdleten New-AzStorageAccount för att skapa ett standardlagringskonto i den nya resursgruppen. Ange de variabler som du tidigare initierade för lagringskontots namn, lagrings-SKU-namn och plats.

Kör den här cmdleten för att skapa ditt nya lagringskonto:

# Create storage account
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
   -Name $StorageName -SkuName $StorageSku `
   -Kind "Storage" -Location $Location

Tips/Råd

Det kan ta några minuter att skapa lagringskontot.

Skapa nätverksresurser

Den virtuella datorn kräver ett antal nätverksresurser för nätverksanslutning.

  • Varje virtuell dator kräver ett virtuellt nätverk.
  • Ett virtuellt nätverk måste ha minst ett definierat undernät.
  • Ett nätverksgränssnitt måste definieras med antingen en offentlig eller en privat IP-adress.

Skapa en undernätskonfiguration för virtuellt nätverk

Börja med att skapa en undernätskonfiguration för ditt virtuella nätverk. I den här självstudien skapar du ett standardundernät med cmdleten New-AzVirtualNetworkSubnetConfig . Ange de variabler som du tidigare initierade för undernätets namn och adressprefix.

Anmärkning

Du kan definiera ytterligare egenskaper för konfigurationen av det virtuella nätverkets undernät med den här cmdleten, men det ligger utanför omfånget för den här självstudien.

Kör den här cmdleten för att skapa konfigurationen av det virtuella undernätet.

# Create a subnet configuration
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix

Skapa ett virtuellt nätverk

Skapa sedan ditt virtuella nätverk i den nya resursgruppen med hjälp av cmdleten New-AzVirtualNetwork . Ange de variabler som du tidigare initierade för prefixet namn, plats och adress. Använd den undernätskonfiguration som du definierade i föregående steg.

Kör den här cmdleten för att skapa ditt virtuella nätverk:

# Create a virtual network
$VNet = New-AzVirtualNetwork -Name $VNetName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig

Skapa den offentliga IP-adressen

Nu när det virtuella nätverket har definierats måste du konfigurera en IP-adress för att ansluta till den virtuella datorn. I den här självstudien skapar du en offentlig IP-adress med dynamisk IP-adressering för att stödja Internetanslutning. Använd cmdleten New-AzPublicIpAddress för att skapa den offentliga IP-adressen i den nya resursgruppen. Ange de variabler som du tidigare initierade för namn, plats, allokeringsmetod och DNS-domännamnsetikett.

Anmärkning

Du kan definiera ytterligare egenskaper för den offentliga IP-adressen med den här cmdleten, men det ligger utanför omfånget för den här inledande självstudien. Du kan också skapa en privat adress eller en adress med en statisk IP-adress, men det ligger utanför handledningen.

Kör den här cmdleten för att skapa din offentliga IP-adress.

# Create a public IP address
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName

Skapa nätverkssäkerhetsgruppen

Skapa en nätverkssäkerhetsgrupp för att skydda den virtuella datorn och SQL Server-trafiken.

  1. Skapa två regler för nätverkssäkerhetsgrupp med hjälp av New-AzNetworkSecurityRuleConfig, en regel för fjärrskrivbord (RDP) för att tillåta RDP-anslutningar och en regel som tillåter trafik på TCP-port 1433. Detta möjliggör anslutningar till SQL Server via Internet.

    # Create a network security group rule
    $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp `
    -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
    
    $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule"  -Protocol Tcp `
    -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
    
  2. Skapa nätverkssäkerhetsgruppen med hjälp av New-AzNetworkSecurityGroup.

    # Create a network security group
    $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName `
    -Location $Location -Name $NsgName `
    -SecurityRules $NsgRuleRDP,$NsgRuleSQL
    

Skapa nätverksgränssnittet

Nu är du redo att skapa nätverksgränssnittet för den virtuella datorn. Använd cmdleten New-AzNetworkInterface för att skapa nätverksgränssnittet i den nya resursgruppen. Ange namn, plats, undernät och offentlig IP-adress som tidigare definierats.

Kör den här cmdleten för att skapa nätverksgränssnittet.

# Create a network interface
$Interface = New-AzNetworkInterface -Name $InterfaceName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id `
   -NetworkSecurityGroupId $Nsg.Id

Konfigurera ett VM-objekt

Nu när lagrings- och nätverksresurser har definierats är du redo att definiera beräkningsresurser för den virtuella datorn.

  • Ange storleken på den virtuella datorn och olika operativsystemegenskaper.
  • Ange det nätverksgränssnitt som du skapade tidigare.
  • Definiera bloblagring.
  • Ange diskpartitionen för operativsystemet.

Skapa den virtuella SQL Server-datorn

Skapa den virtuella SQL Server-datorn genom att först skapa ett autentiseringsobjekt och sedan skapa den virtuella datorn.

Skapa ett autentiseringsobjekt för att lagra namn och lösenord för autentiseringsuppgifterna för den lokala administratören

Innan du kan ange operativsystemets egenskaper för den virtuella datorn måste du ange autentiseringsuppgifterna för det lokala administratörskontot som en säker sträng. Det gör du genom att använda cmdleten Get-Credential .

Kör följande cmdlet. Du måste ange den virtuella datorns lokala administratörsnamn och lösenord i fönstret för PowerShell-begäran om autentiseringsuppgifter.

# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
   -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)

Definiera egenskaper och skapa den virtuella datorn

Nu är du redo att ange den virtuella datorns operativsystemegenskaper med New-AzVMConfig, skapa den virtuella datorn med New-AzVM och använda cmdleten Add-AzVMNetworkInterface för att lägga till nätverksgränssnittet med hjälp av variabeln som du definierade tidigare.

Exempelskriptet gör följande:

  • Kräv att den virtuella datoragenten installeras.
  • Anger att cmdleten aktiverar automatisk uppdatering.
  • Anger de variabler som du tidigare initierade för namnet på den virtuella datorn, datornamnet och autentiseringsuppgifterna.

Kör den här cmdleten för att ange operativsystemegenskaperna för den virtuella datorn.

# Create a virtual machine configuration
$VMName = $ResourceGroupName + "VM"
$VMConfig = New-AzVMConfig -VMName $VMName -VMSize $VMSize |
    Set-AzVMOperatingSystem -Windows -ComputerName $VMName -Credential $Cred -ProvisionVMAgent -EnableAutoUpdate |
    Set-AzVMSourceImage -PublisherName $PublisherName -Offer $OfferName -Skus $Sku  -Version $Version |
    Add-AzVMNetworkInterface -Id $Interface.Id

# Create the VM
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VMConfig

Den virtuella datorn skapas.

Anmärkning

Om du får ett fel om startdiagnostik kan du ignorera det. Ett standardlagringskonto skapas för startdiagnostik eftersom det angivna lagringskontot för den virtuella datorns disk är ett Premium Storage-konto.

Installera SQL IaaS-agenttillägget

Virtuella SQL Server-datorer stöder automatiserade hanteringsfunktioner med SQL Server IaaS-agenttillägget. Om du vill registrera DIN SQL Server med tillägget kör du kommandot New-AzSqlVM när den virtuella datorn har skapats. Ange licenstypen för den virtuella SQL Server-datorn och välj mellan betala per användning (PAYG), egen licens via Azure Hybrid-förmånen (AHUB), katastrofåterställning (DR) för att aktivera den kostnadsfria DR-replikalicensen. Mer information om licensiering finns i licensieringsmodellen.

Registrera din virtuella SQL Server-dator med SQL IaaS-agenttillägget genom att först registrera din prenumeration hos resursprovidern med hjälp av Register-AzResourceProvider och sedan registrera din virtuella SQL Server-dator med SQL IaaS-agenttillägget med hjälp av New-AzSqlVM:


# Register the SQL IaaS Agent extension to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine

# Register SQL Server VM with the extension
New-AzSqlVM -Name $VMName -ResourceGroupName $ResourceGroupName -Location $Location `
-LicenseType $License

Det finns tre sätt att registrera för tillägget:

Stoppa eller ta bort en virtuell dator

Om du inte behöver den virtuella datorn för att köras kontinuerligt kan du undvika onödiga avgifter genom att stoppa den när den inte används. Följande kommando stoppar den virtuella datorn men lämnar den tillgänglig för framtida användning.

Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName

Du kan också ta bort alla resurser som är associerade med den virtuella datorn permanent med kommandotRemove-AzResourceGroup. Om du gör det tas även den virtuella datorn bort permanent, så använd det här kommandot med försiktighet.

Fullständigt skript

Ett fullständigt PowerShell-skript som ger en upplevelse från slutpunkt till slutpunkt finns i Distribuera SQL Server på en virtuell Azure-dator med PowerShell.

När den virtuella datorn har skapats kan du: