Vytvoření SQL Serveru na virtuálním počítači Azure pomocí Azure PowerShellu

Platí pro:SQL Server na virtuálním počítači Azure

Tato příručka popisuje možnosti použití PowerShellu ke zřízení SQL Serveru na virtuálním počítači Azure. Zjednodušený příklad Azure PowerShellu, který spoléhá na výchozí hodnoty, najdete v rychlém startu k SQL Serveru na virtuálním počítači Azure PowerShell.

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Poznámka:

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Nakonfigurujte si vaše předplatné

  1. Otevřete PowerShell a nastavte přístup k účtu Azure spuštěním příkazu Připojení-AzAccount.

    Connect-AzAccount
    
  2. Po výzvě zadejte své přihlašovací údaje. Použijte stejný e-mail a heslo, pomocí kterých se přihlašujete na webu Azure Portal.

Definování proměnných obrázků

Pokud chcete znovu použít hodnoty a zjednodušit vytváření skriptu, začněte definováním řady proměnných. Změňte hodnoty parametrů podle potřeby, ale mějte na paměti omezení pojmenování související s délkami názvů a speciálními znaky při úpravě zadaných hodnot.

Umístění a skupina prostředků

Definujte oblast dat a skupinu prostředků, ve které chcete vytvořit další prostředky virtuálního počítače.

Upravte podle potřeby a pak tyto rutiny spusťte, aby se tyto proměnné inicializovaly.

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

Vlastnosti úložiště

Definujte účet úložiště a typ úložiště, který má virtuální počítač používat.

Upravte podle potřeby a potom spuštěním následující rutiny inicializujete tyto proměnné. Pro produkční úlohy doporučujeme používat disky SSD úrovně Premium.

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

Vlastnosti sítě

Definujte vlastnosti, které má síť používat ve virtuálním počítači.

  • Síťové rozhraní
  • Metoda přidělování protokolu TCP/IP
  • Název virtuální sítě
  • Název virtuální podsítě
  • Rozsah IP adres pro virtuální síť
  • Rozsah IP adres pro podsíť
  • Popisek názvu veřejné domény

Upravte podle potřeby a pak spusťte tuto rutinu pro inicializaci těchto proměnných.

$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

Vlastnosti virtuálního počítače

Definujte následující vlastnosti:

  • Virtual machine name
  • Název počítače
  • Velikost virtuálního počítače
  • Název disku operačního systému pro virtuální počítač

Upravte podle potřeby a pak spusťte tuto rutinu pro inicializaci těchto proměnných.

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

Volba image SQL Serveru

Pomocí následujících proměnných definujte image SQL Serveru, která se má použít pro virtuální počítač.

  1. Nejprve pomocí příkazu vypíšete všechny nabídky imagí Get-AzVMImageOffer SQL Serveru. Tento příkaz zobrazí seznam aktuálních imagí dostupných na webu Azure Portal a také starších imagí, které je možné nainstalovat jenom pomocí PowerShellu:

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

    Poznámka:

    SQL Server 2008 a SQL Server 2008 R2 nejsou rozšířené podpory a z Azure Marketplace už nejsou dostupné.

  2. V tomto kurzu použijte následující proměnné k určení SQL Serveru 2022 v systému Windows Server 2022.

    $OfferName = "SQL2022-WS2022"
    $PublisherName = "MicrosoftSQLServer"
    $Version = "latest"
    
  3. V dalším kroku uveďte dostupné edice vaší nabídky.

    Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
    
  4. Pro účely tohoto kurzu použijte edici SQL Server 2022 Developer (SQLDEV). Edice Developer je volně licencovaná pro testování a vývoj a platíte jenom za náklady na provoz virtuálního počítače.

    $Sku = "SQLDEV"
    

Vytvoření skupiny zdrojů

S modelem nasazení Resource Manager je prvním objektem, který vytvoříte, skupina prostředků. Pomocí rutiny New-AzResourceGroup vytvořte skupinu prostředků Azure a její prostředky. Zadejte proměnné, které jste dříve inicializovali pro název a umístění skupiny prostředků.

Spuštěním této rutiny vytvořte novou skupinu prostředků.

New-AzResourceGroup -Name $ResourceGroupName -Location $Location

Vytvoření účtu úložiště

Virtuální počítač vyžaduje prostředky úložiště pro disk operačního systému a pro data a soubory protokolů SQL Serveru. Pro zjednodušení vytvoříte jeden disk pro oba. Později můžete pomocí rutiny Add-Azure Disk připojit další disky k umístění dat SQL Serveru a souborů protokolů na vyhrazené disky. Pomocí rutiny New-AzStorageAccount vytvořte ve své nové skupině prostředků účet úložiště úrovně Standard. Zadejte proměnné, které jste dříve inicializovali pro název účtu úložiště, název skladové položky úložiště a umístění.

Spuštěním této rutiny vytvořte nový účet úložiště.

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

Tip

Vytvoření účtu úložiště může trvat několik minut.

Vytvoření síťových prostředků

Virtuální počítač vyžaduje pro připojení k síti řadu síťových prostředků.

  • Každý virtuální počítač vyžaduje virtuální síť.
  • Virtuální síť musí mít definovanou alespoň jednu podsíť.
  • Síťové rozhraní musí být definováno veřejnou nebo privátní IP adresou.

Vytvoření konfigurace podsítě virtuální sítě

Začněte vytvořením konfigurace podsítě pro vaši virtuální síť. Pro účely tohoto kurzu vytvořte výchozí podsíť pomocí rutiny New-AzVirtualNetworkSubnetConfig . Zadejte proměnné, které jste dříve inicializovali pro název podsítě a předponu adresy.

Poznámka:

Pomocí této rutiny můžete definovat další vlastnosti konfigurace podsítě virtuální sítě, ale to je nad rámec tohoto kurzu.

Spuštěním této rutiny vytvořte konfiguraci virtuální podsítě.

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

Vytvoření virtuální sítě

Dále vytvořte virtuální síť v nové skupině prostředků pomocí rutiny New-AzVirtualNetwork . Zadejte proměnné, které jste dříve inicializovali pro název, umístění a předponu adresy. Použijte konfiguraci podsítě, kterou jste definovali v předchozím kroku.

Spuštěním této rutiny vytvořte virtuální síť.

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

Vytvoření veřejné IP adresy

Teď, když je vaše virtuální síť definovaná, musíte nakonfigurovat IP adresu pro připojení k virtuálnímu počítači. Pro účely tohoto kurzu vytvořte veřejnou IP adresu pomocí dynamického přidělování IP adres pro podporu připojení k internetu. Pomocí rutiny New-AzPublicIpAddress vytvořte veřejnou IP adresu v nové skupině prostředků. Zadejte proměnné, které jste dříve inicializovali pro název, umístění, metodu přidělování a popisek názvu domény DNS.

Poznámka:

Pomocí této rutiny můžete definovat další vlastnosti veřejné IP adresy, ale to je nad rámec tohoto počátečního kurzu. Můžete také vytvořit privátní adresu nebo adresu se statickou adresou, ale to je také nad rámec tohoto kurzu.

Spuštěním této rutiny vytvořte veřejnou IP adresu.

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

Vytvoření skupiny zabezpečení sítě

Pokud chcete zabezpečit provoz virtuálního počítače a SQL Serveru, vytvořte skupinu zabezpečení sítě.

  1. Nejprve vytvořte pravidlo skupiny zabezpečení sítě pro vzdálenou plochu (RDP), které povolí připojení RDP.

    $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp `
       -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
    
  2. Nakonfigurujte pravidlo skupiny zabezpečení sítě, které povoluje provoz na portu TCP 1433. To umožňuje připojení k SQL Serveru přes internet.

    $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule"  -Protocol Tcp `
       -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
    
  3. Vytvořte skupinu zabezpečení sítě.

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

Vytvoření síťového rozhraní

Teď jste připraveni vytvořit síťové rozhraní pro virtuální počítač. K vytvoření síťového rozhraní v nové skupině prostředků použijte rutinu New-AzNetworkInterface . Zadejte dříve definovaný název, umístění, podsíť a veřejnou IP adresu.

Spuštěním této rutiny vytvořte síťové rozhraní.

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

Konfigurace objektu virtuálního počítače

Teď, když jsou definované prostředky úložiště a sítě, jste připraveni definovat výpočetní prostředky pro virtuální počítač.

  • Zadejte velikost virtuálního počítače a různé vlastnosti operačního systému.
  • Zadejte síťové rozhraní, které jste vytvořili dříve.
  • Definujte úložiště objektů blob.
  • Zadejte disk operačního systému.

Vytvoření objektu virtuálního počítače

Začněte zadáním velikosti virtuálního počítače. Pro účely tohoto kurzu zadejte DS13. Pomocí rutiny New-AzVMConfig vytvořte konfigurovatelný objekt virtuálního počítače. Zadejte proměnné, které jste dříve inicializovali pro název a velikost.

Spuštěním této rutiny vytvořte objekt virtuálního počítače.

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

Vytvoření objektu přihlašovacích údajů pro uložení jména a hesla pro přihlašovací údaje místního správce

Než budete moct nastavit vlastnosti operačního systému pro virtuální počítač, musíte zadat přihlašovací údaje pro účet místního správce jako zabezpečený řetězec. K tomu použijte rutinu Get-Credential .

Spusťte následující rutinu. Do okna žádosti o přihlašovací údaje PowerShellu budete muset zadat jméno a heslo místního správce virtuálního počítače.

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

Nastavení vlastností operačního systému pro virtuální počítač

Teď jste připraveni nastavit vlastnosti operačního systému virtuálního počítače pomocí rutiny Set-AzVMOperatingSystem .

  • Nastavte typ operačního systému jako Windows.
  • Vyžaduje instalaci agenta virtuálního počítače.
  • Určete, že rutina povoluje automatickou aktualizaci.
  • Zadejte proměnné, které jste dříve inicializovali pro název virtuálního počítače, název počítače a přihlašovací údaje.

Spuštěním této rutiny nastavte vlastnosti operačního systému pro váš virtuální počítač.

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

Přidání síťového rozhraní do virtuálního počítače

Dále pomocí rutiny Add-AzVMNetworkInterface přidejte síťové rozhraní pomocí proměnné, kterou jste definovali dříve.

Spuštěním této rutiny nastavte síťové rozhraní pro váš virtuální počítač.

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

Nastavení umístění úložiště objektů blob pro disk, který má virtuální počítač používat

Dále nastavte umístění úložiště objektů blob pro disk virtuálního počítače s proměnnými, které jste definovali dříve.

Spuštěním této rutiny nastavte umístění úložiště objektů blob.

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

Nastavení vlastností disku operačního systému pro virtuální počítač

Dále nastavte vlastnosti disku operačního systému pro virtuální počítač pomocí rutiny Set-AzVMOSDisk .

  • Určete, že operační systém virtuálního počítače bude pocházet z image.
  • Nastavte ukládání do mezipaměti jen pro čtení (protože SQL Server je nainstalovaný na stejném disku).
  • Zadejte proměnné, které jste dříve inicializovali pro název virtuálního počítače a disk s operačním systémem.

Spuštěním této rutiny nastavte vlastnosti disku operačního systému pro váš virtuální počítač.

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

Určení image platformy pro virtuální počítač

Posledním krokem konfigurace je určení image platformy pro váš virtuální počítač. Pro účely tohoto kurzu použijte nejnovější image CTP SQL Serveru 2016. Pomocí rutiny Set-AzVMSourceImage použijte tuto image s proměnnými, které jste definovali dříve.

Spuštěním této rutiny určete image platformy pro váš virtuální počítač.

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

Vytvoření virtuálního počítače pro SQL

Teď, když jste dokončili kroky konfigurace, jste připraveni vytvořit virtuální počítač. Pomocí rutiny New-AzVM vytvořte virtuální počítač pomocí definovaných proměnných.

Tip

Vytvoření virtuálního počítače může trvat několik minut.

Spuštěním této rutiny vytvořte virtuální počítač.

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

Vytvoří se virtuální počítač.

Poznámka:

Pokud se zobrazí chyba týkající se diagnostiky spouštění, můžete ji ignorovat. Pro diagnostiku spouštění se vytvoří účet úložiště úrovně Standard, protože zadaný účet úložiště pro disk virtuálního počítače je účet úložiště úrovně Premium.

Nainstalujte rozšíření agenta SQL IaaS.

Virtuální počítače s SQL Serverem podporují funkce automatizované správy s rozšířením agenta SQL Server IaaS. Pokud chcete zaregistrovat SQL Server s rozšířením, spusťte po vytvoření virtuálního počítače příkaz New-AzSqlVM . Zadejte typ licence pro virtuální počítač s SQL Serverem a vyberte si mezi průběžným platbou nebo vlastní licencí prostřednictvím Zvýhodněné hybridní využití Azure. Další informace o licencování najdete v tématu licenční model.

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

Existují tři způsoby registrace rozšíření:

Zastavení nebo odebrání virtuálního počítače

Pokud virtuální počítač nepotřebujete, aby běžel nepřetržitě, můžete se vyhnout zbytečným poplatkům tím, že ho zastavíte, když se nepoužívá. Následující příkaz zastaví virtuální počítač, ale ponechá ho k dispozici pro budoucí použití.

Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName

Všechny prostředky přidružené k virtuálnímu počítači můžete také trvale odstranit pomocí příkazu Remove-AzResourceGroup . Tím se trvale odstraní i virtuální počítač, takže tento příkaz používejte opatrně.

Ukázkový skript

Následující skript obsahuje kompletní skript PowerShellu pro účely tohoto kurzu. Předpokládá se, že jste už nastavili předplatné Azure tak, aby se používalo s příkazy Připojení-AzAccount a Select-AzSubscription.

# 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> 

Další kroky

Po vytvoření virtuálního počítače můžete: