Jak používat Azure PowerShell zřizování SQL Server Azure Virtual Machines

PLATÍ PRO: SQL Server na virtuálním počítači Azure

Tato příručka popisuje možnosti, jak pomocí PowerShellu zřídit SQL Server virtuálních Virtual Machines Azure. Zjednodušený příklad Azure PowerShell, který závisí na výchozích hodnotách, najdete v rychlém SQL Azure PowerShell startu.

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.

Konfigurace předplatného

  1. Otevřete PowerShell a spuštěním příkazu Připojení-AzAccount navázání přístupu ke svému účtu Azure.

    Connect-AzAccount
    
  2. Po zobrazení výzvy 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í skriptů, začněte definováním několika proměnných. Změňte hodnoty parametrů podle potřeby, ale při úpravách poskytnutých hodnot si uvědomte omezení pojmenování související s délkami názvů a speciálními znaky.

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

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

Upravte je podle toho, jak chcete, a pak tyto rutiny spusťte, abyste tyto proměnné inicializovali.

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

Storage vlastnosti

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

Upravte soubor, jak chcete, a spuštěním následující rutiny tyto proměnné inicializujte. Pro produkční úlohy doporučujeme použít 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 soubor podle toho, jak chcete, a spuštěním této rutiny tyto proměnné inicializujte.

$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:

  • Název virtuálního počítače
  • 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 soubor podle toho, jak chcete, a spuštěním této rutiny tyto proměnné inicializujte.

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

Volba SQL Server obrázku

Následující proměnné použijte k definování image SQL Server, která se má pro virtuální počítač použít.

  1. Nejprve pomocí příkazu SQL Server všechny nabídky Get-AzVMImageOffer image. Tento příkaz vypíše aktuální image, které jsou k dispozici v Azure Portal, a také starší image, které je možné nainstalovat pouze pomocí PowerShellu:

    Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
    
  2. Pro tento kurz použijte následující proměnné k určení SQL Server 2017 na Windows Server 2016.

    $OfferName = "SQL2017-WS2016"
    $PublisherName = "MicrosoftSQLServer"
    $Version = "latest"
    
  3. V dalším kroku zobrazíte seznam dostupných edicí pro vaši nabídku.

    Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
    
  4. Pro tento kurz použijte edici SQL Server 2017 Developer (SQLDEV). Edice Developer má bezplatnou licenci 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 prostředků

U Resource Manager nasazení 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 SQL Server dat a protokolů. Pro zjednodušení vytvoříte jeden disk pro oba. Další disky můžete později připojit pomocí rutiny Add-Azure Disk, která SQL Server data a soubory protokolů na vyhrazené disky. Pomocí rutiny New-AzStorageAccount vytvořte ve své nové skupině prostředků standardní účet úložiště. 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 několik síťových prostředků pro připojení k síti.

  • 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 s 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 tento kurz 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 tento kurz vytvořte veřejnou IP adresu s použitím dynamického IP adresování 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 úvodní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 virtuální počítač a SQL Server provozu, 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 Server 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 tento kurz zadejte DS13. Pomocí rutiny New-AzVMConfig vytvořte konfigurovatelný objekt virtuálního počítače. Určete proměnné, které jste dříve inicializoval 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řte objekt přihlašovacích údajů, který bude obsahovat jméno a heslo 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 musíte 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."

Nastavit vlastnosti operačního systému pro virtuální počítač

Nyní 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čuje, že rutina umožňuje automatickou aktualizaci.
  • Zadejte proměnné, které jste předtím inicializoval 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 virtuální počítač.

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

Přidat síťové rozhraní k virtuálnímu počítači

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 virtuální počítač.

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

Nastavte umístění úložiště objektů BLOB pro disk, který se má použít pro virtuální počítač.

V dalším kroku nastavte umístění úložiště objektů BLOB pro disk virtuálního počítače pomocí proměnných, 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"

Nastavit vlastnosti 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 pro virtuální počítač bude pocházet z image.
  • nastavte ukládání do mezipaměti pouze pro čtení (protože SQL Server probíhá instalace na stejný disk).
  • Zadejte proměnné, které jste předtím inicializoval pro název virtuálního počítače a disk operačního systému.

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

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

Zadejte image platformy pro virtuální počítač.

Posledním krokem konfigurace je zadání image platformy pro váš virtuální počítač. pro tento kurz použijte nejnovější bitovou kopii SQL Server 2016 CTP. 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číte 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č s použitím proměnných, které jste definovali.

Tip

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

Spusťte tuto rutinu a vytvořte svůj virtuální počítač.

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

Virtuální počítač se vytvoří.

Poznámka

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

Instalace agenta SQL IaaS

SQL Server virtuální počítače podporují automatizované funkce 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 váš virtuální počítač s SQL Server, a to pomocí Zvýhodněné hybridní využití Azure, ať už máte licenci s průběžnými platbami nebo použitím vlastní licence. Další informace o licencování najdete v tématu licencování modelu.

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

Existují tři způsoby, jak s rozšířením zaregistrovat:

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

Pokud nepotřebujete, aby se virtuální počítač spouštěl nepřetržitě, můžete se vyhnout zbytečným poplatkům, když 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

Pomocí příkazu Remove-AzResourceGroup můžete také trvale odstranit všechny prostředky přidružené k virtuálnímu počítači. 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í PowerShellový skript pro tento kurz. předpokládá se, že jste už nastavili předplatné Azure pro použití 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 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: