Megosztás a következőn keresztül:


SQL Server létrehozása Azure-beli virtuális gépen az Azure PowerShell használatával

A következőre vonatkozik:SQL Server azure-beli virtuális gépen

Ez az útmutató az SQL Server Azure-beli virtuális gépen (VM) való kiépítéséhez használható PowerShell-beállításokat ismerteti. Az alapértelmezett értékekre támaszkodó egyszerűsített Azure PowerShell-példaért tekintse meg az Azure-beli virtuális gépeken futó SQL Server rövid útmutatót.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Megjegyzés:

Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Az előfizetés konfigurálása

  1. Nyissa meg a PowerShellt, és hozzon létre hozzáférést az Azure-fiókjához az Csatlakozás-AzAccount parancs futtatásával.

    Connect-AzAccount
    
  2. Amikor a rendszer kéri, adja meg a hitelesítő adatait. Használja ugyanazt az e-mail-címet és jelszót, amelyet az Azure Portalra való bejelentkezéshez használ.

Képváltozók definiálása

Az értékek újrafelhasználása és a szkriptek létrehozásának egyszerűsítése érdekében először adjon meg számos változót. Módosítsa a paraméterértékeket a kívánt módon, de a megadott értékek módosításakor vegye figyelembe a névhosszokhoz és a speciális karakterekhez kapcsolódó elnevezési korlátozásokat.

Hely és erőforráscsoport

Adja meg azt az adatrégiót és erőforráscsoportot, ahol a többi virtuálisgép-erőforrást létre szeretné hozni.

Módosítsa a kívánt módon, majd futtassa ezeket a parancsmagokat a változók inicializálásához.

$Location = "SouthCentralUS"
$ResourceGroupName = "sqlvm2"

Tárolási tulajdonságok

Adja meg a tárfiókot és a virtuális gép által használandó tárterület típusát.

Módosítsa a kívánt módon, majd futtassa a következő parancsmagot a változók inicializálásához. Az éles számítási feladatokhoz prémium SSD-k használatát javasoljuk.

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

Hálózati tulajdonságok

Határozza meg a hálózat által a virtuális gépen használni kívánt tulajdonságokat.

  • Hálózati adapter
  • TCP/IP-foglalási módszer
  • Virtuális hálózat neve
  • Virtuális alhálózat neve
  • A virtuális hálózat IP-címeinek tartománya
  • Az alhálózat IP-címtartománya
  • Nyilvános tartománynév címkéje

Módosítsa a kívánt módon, majd futtassa ezt a parancsmagot a változók inicializálásához.

$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

Virtuális gép tulajdonságai

Adja meg a következő tulajdonságokat:

  • Virtuális gép neve
  • Számítógép neve
  • Virtuális gép mérete
  • A virtuális gép operációsrendszer-lemezének neve

Módosítsa a kívánt módon, majd futtassa ezt a parancsmagot a változók inicializálásához.

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

SQL Server-rendszerkép kiválasztása

A virtuális géphez használandó SQL Server-rendszerkép meghatározásához használja az alábbi változókat.

  1. Először sorolja fel az ÖSSZES SQL Server-rendszerkép-ajánlatot a Get-AzVMImageOffer paranccsal. Ez a parancs felsorolja az Azure Portalon elérhető aktuális lemezképeket, valamint azokat a régebbi lemezképeket is, amelyek csak a PowerShell-lel telepíthetők:

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

    Megjegyzés:

    Az SQL Server 2008 és az SQL Server 2008 R2 nem támogatott, és már nem érhető el az Azure Marketplace-en.

  2. Ebben az oktatóanyagban az alábbi változókkal adhatja meg az SQL Server 2022-t Windows Server 2022 rendszeren.

    $OfferName = "SQL2022-WS2022"
    $PublisherName = "MicrosoftSQLServer"
    $Version = "latest"
    
  3. Ezután listázhatja az ajánlathoz elérhető kiadásokat.

    Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
    
  4. Ebben az oktatóanyagban használja az SQL Server 2022 Developer Editiont (SQLDEV). A Fejlesztői kiadás ingyenesen licencelve van a teszteléshez és a fejlesztéshez, és csak a virtuális gép futtatásának költségeit kell fizetnie.

    $Sku = "SQLDEV"
    

Erőforráscsoport létrehozása

A Resource Manager üzemi modellel az első létrehozott objektum az erőforráscsoport. A New-AzResourceGroup parancsmaggal hozzon létre egy Azure-erőforráscsoportot és annak erőforrásait. Adja meg az erőforráscsoport nevének és helyének korábban inicializált változóit.

Futtassa ezt a parancsmagot az új erőforráscsoport létrehozásához.

New-AzResourceGroup -Name $ResourceGroupName -Location $Location

Tárfiók létrehozása

A virtuális géphez tárolóerőforrások szükségesek az operációs rendszer lemezéhez, valamint az SQL Server-adatokhoz és naplófájlokhoz. Az egyszerűség kedvéért egyetlen lemezt fog létrehozni mindkettőhöz. Később további lemezeket is csatolhat az Add-Azure Disk parancsmaggal az SQL Server-adatok és naplófájlok dedikált lemezekre való elhelyezéséhez. A New-AzStorageAccount parancsmaggal hozzon létre egy standard tárfiókot az új erőforráscsoportban. Adja meg a tárfiók nevéhez, a tárváltozat nevéhez és a helyhez korábban inicializált változókat.

Futtassa ezt a parancsmagot az új tárfiók létrehozásához.

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

Tipp.

A tárfiók létrehozása eltarthat néhány percig.

Hálózati erőforrások létrehozása

A virtuális géphez számos hálózati erőforrás szükséges a hálózati kapcsolathoz.

  • Minden virtuális géphez virtuális hálózat szükséges.
  • A virtuális hálózatnak legalább egy alhálózattal kell rendelkeznie.
  • A hálózati adaptert nyilvános vagy magánhálózati IP-címmel kell definiálni.

Virtuális hálózati alhálózat konfigurációjának létrehozása

Először hozzon létre egy alhálózat-konfigurációt a virtuális hálózathoz. Ebben az oktatóanyagban hozzon létre egy alapértelmezett alhálózatot a New-AzVirtualNetworkSubnetConfig parancsmaggal. Adja meg az alhálózat nevének és címelőtagjának korábban inicializált változóit.

Megjegyzés:

A virtuális hálózat alhálózati konfigurációjának további tulajdonságait ezzel a parancsmaggal határozhatja meg, de ez nem terjed ki az oktatóanyag hatókörére.

Futtassa ezt a parancsmagot a virtuális alhálózat konfigurációjának létrehozásához.

$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix

Virtuális hálózat létrehozása

Ezután hozza létre a virtuális hálózatot az új erőforráscsoportban a New-AzVirtualNetwork parancsmaggal. Adja meg a név, hely és cím előtaghoz korábban inicializált változókat. Használja az előző lépésben definiált alhálózat-konfigurációt.

Futtassa ezt a parancsmagot a virtuális hálózat létrehozásához.

$VNet = New-AzVirtualNetwork -Name $VNetName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig

A nyilvános IP-cím létrehozása

A virtuális hálózat definiálása után konfigurálnia kell egy IP-címet a virtuális géphez való kapcsolódáshoz. Ebben az oktatóanyagban hozzon létre egy nyilvános IP-címet dinamikus IP-címzés használatával az internetkapcsolat támogatásához. A New-AzPublicIpAddress parancsmaggal hozza létre a nyilvános IP-címet az új erőforráscsoportban. Adja meg azokat a változókat, amelyeket korábban inicializált a névhez, a helyhez, a foglalási módszerhez és a DNS-tartománynév címkéhez.

Megjegyzés:

Ezzel a parancsmaggal további tulajdonságokat határozhat meg a nyilvános IP-címhez, de ez túlmutat a kezdeti oktatóanyag hatókörén. Létrehozhat egy privát címet vagy egy statikus címmel rendelkező címet is, de ez az oktatóanyag hatókörén kívül esik.

Futtassa ezt a parancsmagot a nyilvános IP-cím létrehozásához.

$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName

A hálózati biztonsági csoport létrehozása

A virtuális gép és az SQL Server forgalmának védelméhez hozzon létre egy hálózati biztonsági csoportot.

  1. Először hozzon létre egy hálózati biztonsági csoportszabályt a távoli asztalhoz (RDP) az RDP-kapcsolatok engedélyezéséhez.

    $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp `
       -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
    
  2. Konfiguráljon egy hálózati biztonságicsoport-szabályt, amely engedélyezi a forgalmat az 1433-as TCP-porton. Ez lehetővé teszi az SQL Serverrel való internetkapcsolatot az interneten keresztül.

    $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule"  -Protocol Tcp `
       -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
    
  3. Hozza létre a hálózati biztonsági csoportot.

    $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName `
       -Location $Location -Name $NsgName `
       -SecurityRules $NsgRuleRDP,$NsgRuleSQL
    

A hálózati adapter létrehozása

Most már készen áll a virtuális gép hálózati adapterének létrehozására. A New-AzNetworkInterface parancsmaggal hozza létre a hálózati adaptert az új erőforráscsoportban. Adja meg a korábban definiált nevet, helyet, alhálózatot és nyilvános IP-címet.

Futtassa ezt a parancsmagot a hálózati adapter létrehozásához.

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

Virtuálisgép-objektum konfigurálása

A tárolási és hálózati erőforrások definiálása után készen áll a virtuális gép számítási erőforrásainak meghatározására.

  • Adja meg a virtuális gép méretét és az operációs rendszer különböző tulajdonságait.
  • Adja meg a korábban létrehozott hálózati adaptert.
  • Blobtároló definiálása.
  • Adja meg az operációsrendszer-lemezt.

A virtuálisgép-objektum létrehozása

Először adja meg a virtuális gép méretét. Ebben az oktatóanyagban adjon meg egy DS13-at. Konfigurálható virtuálisgép-objektum létrehozásához használja a New-AzVMConfig parancsmagot. Adja meg a névhez és mérethez korábban inicializált változókat.

Futtassa ezt a parancsmagot a virtuálisgép-objektum létrehozásához.

$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize

Hitelesítő objektum létrehozása a helyi rendszergazdai hitelesítő adatok nevének és jelszavának tárolásához

Mielőtt beállíthatja a virtuális gép operációsrendszer-tulajdonságait, biztonságos sztringként kell megadnia a helyi rendszergazdai fiók hitelesítő adatait. Ehhez használja a Get-Credential parancsmagot.

Futtassa a következő parancsmagot. Be kell gépelnie a virtuális gép helyi rendszergazdai nevét és jelszavát a PowerShell hitelesítőadat-kérés ablakába.

$Credential = Get-Credential -Message "Type the name and password of the local administrator account."

A virtuális gép operációs rendszerének tulajdonságainak beállítása

Most már készen áll a virtuális gép operációsrendszer-tulajdonságainak beállítására a Set-AzVMOperatingSystem parancsmaggal.

  • Állítsa be az operációs rendszer típusát Windowsként.
  • A virtuálisgép-ügynök telepítésének megkövetelése.
  • Adja meg, hogy a parancsmag engedélyezi-e az automatikus frissítést.
  • Adja meg a virtuális gép nevéhez, a számítógép nevéhez és a hitelesítő adatokhoz korábban inicializált változókat.

Futtassa ezt a parancsmagot a virtuális gép operációsrendszer-tulajdonságainak beállításához.

$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine `
   -Windows -ComputerName $ComputerName -Credential $Credential `
   -ProvisionVMAgent -EnableAutoUpdate

A hálózati adapter hozzáadása a virtuális géphez

Ezután az Add-AzVMNetworkInterface parancsmaggal adja hozzá a hálózati adaptert a korábban definiált változóval.

Futtassa ezt a parancsmagot a virtuális gép hálózati adapterének beállításához.

$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id

A virtuális gép által használt lemez blobtároló helyének beállítása

Ezután állítsa be a virtuális gép lemezének blobtároló helyét a korábban definiált változókkal.

Futtassa ezt a parancsmagot a blobtároló helyének beállításához.

$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"

A virtuális gép operációsrendszer-lemeztulajdonságainak beállítása

Ezután állítsa be a virtuális gép operációsrendszer-lemeztulajdonságát a Set-AzVMOSDisk parancsmaggal.

  • Adja meg, hogy a virtuális gép operációs rendszere egy rendszerképből származik-e.
  • Állítsa be a gyorsítótárazást írásvédettre (mivel az SQL Server ugyanazon a lemezen van telepítve).
  • Adja meg a virtuális gép nevéhez és az operációsrendszer-lemezhez korábban inicializált változókat.

Futtassa ezt a parancsmagot a virtuális gép operációsrendszer-lemeztulajdonságainak beállításához.

$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name `
   $OSDiskName -VhdUri $OSDiskUri -Caching ReadOnly -CreateOption FromImage

A virtuális gép platformképének megadása

Az utolsó konfigurációs lépés a virtuális gép platformrendszerképének megadása. Ebben az oktatóanyagban használja a legújabb SQL Server 2016 CTP-lemezképet. A Set-AzVMSourceImage parancsmaggal használja ezt a képet a korábban definiált változókkal.

Futtassa ezt a parancsmagot a virtuális gép platformképének megadásához.

$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine `
   -PublisherName $PublisherName -Offer $OfferName `
   -Skus $Sku -Version $Version

Az SQL virtuális gép létrehozása

Most, hogy befejezte a konfigurációs lépéseket, készen áll a virtuális gép létrehozására. A New-AzVM parancsmaggal hozza létre a virtuális gépet a megadott változók használatával.

Tipp.

A virtuális gépek létrehozása néhány percet is igénybe vehet.

Futtassa ezt a parancsmagot a virtuális gép létrehozásához.

New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine

Létrejön a virtuális gép.

Megjegyzés:

Ha hibaüzenetet kap a rendszerindítási diagnosztika kapcsán, figyelmen kívül hagyhatja. A rendszerindítási diagnosztikához standard tárfiók jön létre, mert a virtuális gép lemezének megadott tárfiókja egy prémium szintű tárfiók.

Telepítse az SQL IaaS Agent bővítményt

Az SQL Server virtuális gépek az SQL Server IaaS-ügynökbővítménnyel támogatják az automatizált felügyeleti funkciókat. Ha regisztrálni szeretné az SQL Servert a bővítményrel, futtassa a New-AzSqlVM parancsot a virtuális gép létrehozása után. Adja meg az SQL Server virtuális gép licenctípusát, és válasszon a használatalapú fizetés vagy a saját licenc használata között az Azure Hybrid Benefit használatával. A licenceléssel kapcsolatos további információkért tekintse meg a licencelési modellt.

New-AzSqlVM -ResourceGroupName $ResourceGroupName -Name $VMName -Location $Location -LicenseType <PAYG/AHUB> 

A bővítményre háromféleképpen regisztrálhat:

Virtuális gép leállítása vagy eltávolítása

Ha nincs szüksége a virtuális gép folyamatos futtatására, akkor elkerülheti a szükségtelen díjakat, ha leállítja azt, ha nincs használatban. A következő parancs leállítja a virtuális gépet, de elérhető állapotban hagyja későbbi használat céljából.

Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName

A Remove-AzResourceGroup paranccsal véglegesen törölheti a virtuális géphez társított összes erőforrást is. Ezzel véglegesen törli a virtuális gépet is, ezért óvatosan használja ezt a parancsot.

Példaszkript

Az alábbi szkript az oktatóanyag teljes PowerShell-szkriptét tartalmazza. Feltételezi, hogy már beállította az Azure-előfizetést az Csatlakozás-AzAccount és a Select-AzSubscription parancsokkal való használatra.

# Variables

## Global
$Location = "SouthCentralUS"
$ResourceGroupName = "sqlvm2"

## Storage
$StorageName = $ResourceGroupName + "storage"
$StorageSku = "Premium_LRS"

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

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

##Image
$PublisherName = "MicrosoftSQLServer"
$OfferName = "SQL2017-WS2016"
$Sku = "SQLDEV"
$Version = "latest"

# Resource Group
New-AzResourceGroup -Name $ResourceGroupName -Location $Location

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

# Network
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
$VNet = New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName -Location $Location -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName -ResourceGroupName $ResourceGroupName -Location $Location -AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
$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
$Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $Location -Name $NsgName -SecurityRules $NsgRuleRDP,$NsgRuleSQL
$Interface = New-AzNetworkInterface -Name $InterfaceName -ResourceGroupName $ResourceGroupName -Location $Location -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id -NetworkSecurityGroupId $Nsg.Id

# Compute
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$Credential = Get-Credential -Message "Type the name and password of the local administrator account."
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate #-TimeZone = $TimeZone
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id
$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $OSDiskName -VhdUri $OSDiskUri -Caching ReadOnly -CreateOption FromImage

# Image
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName $PublisherName -Offer $OfferName -Skus $Sku -Version $Version

# Create the VM in Azure
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine

# Add the SQL IaaS Agent Extension, and choose the license type
New-AzSqlVM -ResourceGroupName $ResourceGroupName -Name $VMName -Location $Location -LicenseType <PAYG/AHUB> 

További lépések

A virtuális gép létrehozása után a következőket teheti: