Azure VM'de SQL Server oluşturmak için Azure PowerShell kullanma
Şunlar için geçerlidir: Azure VM'de SQL Server
Bu kılavuz, Azure Sanal Makinesi'ne (VM) SQL Server sağlamak için PowerShell kullanma seçeneklerini kapsar. Varsayılan değerlere dayalı, kolaylaştırılmış bir Azure PowerShell örneği için bkz . Azure VM'de SQL Server PowerShell hızlı başlangıcı.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Not
Bu makalede, Azure ile etkileşim için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Aboneliğinizi yapılandırma
PowerShell'i açın ve Connect-AzAccount komutunu çalıştırarak Azure hesabınıza erişim sağlayın.
Connect-AzAccount
İstendiğinde, kimlik bilgilerinizi girin. Azure portala giriş yapmak için aynı e-posta adresini ve parolayı kullanın.
Görüntü değişkenlerini tanımlama
Değerleri yeniden kullanmak ve betik oluşturmayı basitleştirmek için bir dizi değişken tanımlayarak işe başlayın. Parametre değerlerini istediğiniz gibi değiştirin, ancak sağlanan değerleri değiştirirken ad uzunluklarıyla ve özel karakterlerle ilgili adlandırma kısıtlamalarına dikkat edin.
PowerShell kullanarak Azure portalında bulunmayan sql server'ın eski bir görüntüsünü dağıtmak mümkündür. PowerShell kullanarak tüm kullanılabilir görüntüleri görüntülemek için aşağıdaki komutu kullanın:
$Location = "<location>"
Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
Konum ve kaynak grubu
Diğer VM kaynaklarını oluşturmak istediğiniz veri bölgesini ve kaynak grubunu tanımlayın.
İstediğiniz gibi değiştirin ve ardından bu değişkenleri başlatmak için bu cmdlet'leri çalıştırın.
$Location = "SouthCentralUS"
$ResourceGroupName = "sqlvm2"
Depolama özellikleri
Depolama hesabını ve sanal makine tarafından kullanılacak depolama türünü tanımlayın.
İstediğiniz gibi değiştirin ve bu değişkenleri başlatmak için aşağıdaki cmdlet'i çalıştırın. Üretim iş yükleri için premium SSD'ler kullanmanızı öneririz.
$StorageName = $ResourceGroupName + "storage"
$StorageSku = "Premium_LRS"
Ağ özellikleri
Sanal makinedeki ağ tarafından kullanılacak özellikleri tanımlayın.
- Ağ arabirimi
- TCP/IP ayırma yöntemi
- Sanal ağın adı
- Sanal alt ağ adı
- Sanal ağ için IP adresi aralığı
- Alt ağ için IP adresleri aralığı
- Genel etki alanı adı etiketi
İstediğiniz gibi değiştirin ve ardından bu değişkenleri başlatmak için bu cmdlet'i çalıştırın.
$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
Sanal makine özellikleri
Aşağıdaki özellikleri tanımlayın:
- Virtual machine name
- Bilgisayar adı
- Sanal makine boyutu
- Sanal makine için işletim sistemi disk adı
İstediğiniz gibi değiştirin ve ardından bu değişkenleri başlatmak için bu cmdlet'i çalıştırın.
$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"
SQL Server görüntüsü seçme
Sanal makine için kullanılacak SQL Server görüntüsünü tanımlamak için aşağıdaki değişkenleri kullanın.
İlk olarak, komutuyla tüm SQL Server görüntü tekliflerini listeleyin
Get-AzVMImageOffer
. Bu komut, Azure portalında kullanılabilen geçerli görüntüleri ve yalnızca PowerShell ile yüklenebilen eski görüntüleri listeler:Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
Not
SQL Server 2008 ve SQL Server 2008 R2 genişletilmiş desteğin dışındadır ve artık Azure Market kullanılamaz.
Bu öğreticide, Windows Server 2022'de SQL Server 2022'yi belirtmek için aşağıdaki değişkenleri kullanın.
$OfferName = "SQL2022-WS2022" $PublisherName = "MicrosoftSQLServer" $Version = "latest"
Ardından teklifiniz için kullanılabilir sürümleri listeleyin.
Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
Bu öğretici için SQL Server 2022 Developer sürümünü (SQLDEV) kullanın. Developer sürümü, test ve geliştirme için serbestçe lisanslanır ve yalnızca VM'yi çalıştırma maliyeti için ödeme alırsınız.
$Sku = "SQLDEV"
Kaynak grubu oluşturma
Resource Manager dağıtım modeliyle, oluşturduğunuz ilk nesne kaynak grubudur. Bir Azure kaynak grubu ve kaynaklarını oluşturmak için New-AzResourceGroup cmdlet'ini kullanın. Kaynak grubu adı ve konumu için daha önce başlatmış olduğunuz değişkenleri belirtin.
Yeni kaynak grubunuzu oluşturmak için bu cmdlet'i çalıştırın.
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
Depolama hesabı oluşturma
Sanal makine, işletim sistemi diski ve SQL Server verileri ve günlük dosyaları için depolama kaynakları gerektirir. Kolaylık olması için her ikisi için de tek bir disk oluşturacaksınız. Sql Server verilerinizi ve günlük dosyalarınızı ayrılmış disklere yerleştirmek için Daha sonra Add-Azure Disk cmdlet'ini kullanarak ek diskler ekleyebilirsiniz. Yeni kaynak grubunuzda standart bir depolama hesabı oluşturmak için New-AzStorageAccount cmdlet'ini kullanın. Depolama hesabı adı, depolama SKU'su adı ve konumu için daha önce başlatmış olduğunuz değişkenleri belirtin.
Yeni depolama hesabınızı oluşturmak için bu cmdlet'i çalıştırın.
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
-Name $StorageName -SkuName $StorageSku `
-Kind "Storage" -Location $Location
İpucu
Depolama hesabının oluşturulması birkaç dakika sürebilir.
Ağ kaynakları oluşturma
Sanal makine, ağ bağlantısı için bir dizi ağ kaynağı gerektirir.
- Her sanal makine bir sanal ağ gerektirir.
- Sanal ağda en az bir alt ağ tanımlanmış olmalıdır.
- Ağ arabirimi genel veya özel IP adresiyle tanımlanmalıdır.
Sanal ağ alt ağı yapılandırması oluşturma
Sanal ağınız için bir alt ağ yapılandırması oluşturarak başlayın. Bu öğretici için New-AzVirtualNetworkSubnetConfig cmdlet'ini kullanarak varsayılan bir alt ağ oluşturun. Alt ağ adı ve adres ön eki için önceden başlatmış olduğunuz değişkenleri belirtin.
Not
Bu cmdlet'i kullanarak sanal ağ alt ağ yapılandırmasının ek özelliklerini tanımlayabilirsiniz, ancak bu, bu öğreticinin kapsamı dışındadır.
Sanal alt ağ yapılandırmanızı oluşturmak için bu cmdlet'i çalıştırın.
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
Sanal ağ oluşturma
Ardından New-AzVirtualNetwork cmdlet'ini kullanarak yeni kaynak grubunuzda sanal ağınızı oluşturun. Ad, konum ve adres ön eki için daha önce başlatmış olduğunuz değişkenleri belirtin. Önceki adımda tanımladığınız alt ağ yapılandırmasını kullanın.
Sanal ağınızı oluşturmak için bu cmdlet'i çalıştırın.
$VNet = New-AzVirtualNetwork -Name $VNetName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig
Genel IP adresini oluşturma
Sanal ağınız tanımlandığına göre, sanal makineye bağlantı için bir IP adresi yapılandırmanız gerekir. Bu öğreticide, İnternet bağlantısını desteklemek için dinamik IP adresi kullanarak bir genel IP adresi oluşturun. Yeni kaynak grubunuzda genel IP adresini oluşturmak için New-AzPublicIpAddress cmdlet'ini kullanın. Ad, konum, ayırma yöntemi ve DNS etki alanı adı etiketi için daha önce başlatmış olduğunuz değişkenleri belirtin.
Not
Bu cmdlet'i kullanarak genel IP adresinin ek özelliklerini tanımlayabilirsiniz, ancak bu, bu ilk öğreticinin kapsamı dışındadır. Ayrıca, statik adrese sahip bir özel adres veya adres de oluşturabilirsiniz, ancak bu da bu öğreticinin kapsamının dışındadır.
Genel IP adresinizi oluşturmak için bu cmdlet'i çalıştırın.
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
Ağ güvenlik grubunu oluşturma
VM ve SQL Server trafiğinin güvenliğini sağlamak için bir ağ güvenlik grubu oluşturun.
İlk olarak, RDP bağlantılarına izin vermek üzere uzak masaüstü (RDP) için bir ağ güvenlik grubu kuralı oluşturun.
$NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
1433 numaralı TCP bağlantı noktasında trafiğe izin veren bir ağ güvenlik grubu kuralı yapılandırın. Bunun yapılması, SQL Server'a İnternet üzerinden bağlantı yapılmasına olanak tanır.
$NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule" -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
Ağ güvenlik grubunu oluşturun.
$Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName ` -Location $Location -Name $NsgName ` -SecurityRules $NsgRuleRDP,$NsgRuleSQL
Ağ arabirimini oluşturma
Artık sanal makineniz için ağ arabirimi oluşturmaya hazırsınız. Yeni kaynak grubunuzda ağ arabirimi oluşturmak için New-AzNetworkInterface cmdlet'ini kullanın. Önceden tanımlanmış olan adı, konumu, alt ağı ve genel IP adresini belirtin.
Ağ arabiriminizi oluşturmak için bu cmdlet'i çalıştırın.
$Interface = New-AzNetworkInterface -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id `
-NetworkSecurityGroupId $Nsg.Id
VM nesnesi yapılandırma
Artık depolama ve ağ kaynakları tanımlandığına göre, sanal makine için işlem kaynaklarını tanımlamaya hazırsınız.
- Sanal makine boyutunu ve çeşitli işletim sistemi özelliklerini belirtin.
- Daha önce oluşturduğunuz ağ arabirimini belirtin.
- Blob depolamayı tanımlayın.
- İşletim sistemi diskini belirtin.
VM nesnesini oluşturma
Sanal makine boyutunu belirterek başlayın. Bu öğretici için bir DS13 belirtin. Yapılandırılabilir bir sanal makine nesnesi oluşturmak için New-AzVMConfig cmdlet'ini kullanın. Ad ve boyut için daha önce başlatmış olduğunuz değişkenleri belirtin.
Sanal makine nesnesini oluşturmak için bu cmdlet'i çalıştırın.
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
Yerel yönetici kimlik bilgilerinin adını ve parolasını tutmak için bir kimlik bilgisi nesnesi oluşturma
Sanal makinenin işletim sistemi özelliklerini ayarlayabilmeniz için önce yerel yönetici hesabının kimlik bilgilerini güvenli bir dize olarak sağlamanız gerekir. Bunu yapmak için Get-Credential cmdlet'ini kullanın.
Aşağıdaki cmdlet'i çalıştırın. Vm'nin yerel yönetici adını ve parolasını PowerShell kimlik bilgisi isteği penceresine yazmanız gerekir.
$Credential = Get-Credential -Message "Type the name and password of the local administrator account."
Sanal makine için işletim sistemi özelliklerini ayarlama
Artık Set-AzVMOperatingSystem cmdlet'iyle sanal makinenin işletim sistemi özelliklerini ayarlamaya hazırsınız.
- İşletim sistemi türünü Windows olarak ayarlayın.
- Sanal makine aracısının yüklenmesini gerektir.
- Cmdlet'in otomatik güncelleştirmeyi etkinleştirdiğini belirtin.
- Sanal makine adı, bilgisayar adı ve kimlik bilgisi için daha önce başlatmış olduğunuz değişkenleri belirtin.
Sanal makinenizin işletim sistemi özelliklerini ayarlamak için bu cmdlet'i çalıştırın.
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine `
-Windows -ComputerName $ComputerName -Credential $Credential `
-ProvisionVMAgent -EnableAutoUpdate
Ağ arabirimini sanal makineye ekleme
Ardından Add-AzVMNetworkInterface cmdlet'ini kullanarak daha önce tanımladığınız değişkeni kullanarak ağ arabirimini ekleyin.
Sanal makinenizin ağ arabirimini ayarlamak için bu cmdlet'i çalıştırın.
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id
Sanal makine tarafından kullanılacak disk için blob depolama konumunu ayarlama
Ardından, vm diskinin blob depolama konumunu daha önce tanımladığınız değişkenlerle ayarlayın.
Blob depolama konumunu ayarlamak için bu cmdlet'i çalıştırın.
$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"
Sanal makine için işletim sistemi disk özelliklerini ayarlama
Ardından, Set-AzVMOSDisk cmdlet'ini kullanarak sanal makine için işletim sistemi disk özelliklerini ayarlayın.
- Sanal makine için işletim sisteminin bir görüntüden geleceğini belirtin.
- Önbelleğe almayı salt okunur olarak ayarlayın (çünkü SQL Server aynı diske yükleniyor).
- VM adı ve işletim sistemi diski için daha önce başlatmış olduğunuz değişkenleri belirtin.
Sanal makinenizin işletim sistemi disk özelliklerini ayarlamak için bu cmdlet'i çalıştırın.
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name `
$OSDiskName -VhdUri $OSDiskUri -Caching ReadOnly -CreateOption FromImage
Sanal makine için platform görüntüsünü belirtme
Son yapılandırma adımı, sanal makineniz için platform görüntüsünü belirtmektir. Bu öğretici için en son SQL Server 2016 CTP görüntüsünü kullanın. Bu görüntüyü daha önce tanımladığınız değişkenlerle kullanmak için Set-AzVMSourceImage cmdlet'ini kullanın.
Sanal makinenizin platform görüntüsünü belirtmek için bu cmdlet'i çalıştırın.
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine `
-PublisherName $PublisherName -Offer $OfferName `
-Skus $Sku -Version $Version
SQL VM'sini oluşturma
Yapılandırma adımlarını tamamladığınıza göre artık sanal makineyi oluşturmaya hazırsınız. Tanımladığınız değişkenleri kullanarak sanal makineyi oluşturmak için New-AzVM cmdlet'ini kullanın.
İpucu
Sanal makine oluşturulması birkaç dakika sürebilir.
Sanal makinenizi oluşturmak için bu cmdlet'i çalıştırın.
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine
Sanal makine oluşturulur.
Not
Önyükleme tanılaması hakkında bir hata alırsanız, bunu yoksayabilirsiniz. Sanal makinenin diski için belirtilen depolama hesabı bir premium depolama hesabı olduğundan önyükleme tanılaması için standart bir depolama hesabı oluşturulur.
SQL Server IaaS Aracısı uzantısını yükleyin
SQL Server sanal makineleri, SQL Server IaaS Aracısı Uzantısı ile otomatik yönetim özelliklerini destekler. SQL Server'ınızı uzantıya kaydetmek için, sanal makine oluşturulduktan sonra New-AzSqlVM komutunu çalıştırın. AZURE HIBRIT AVANTAJı aracılığıyla kullandıkça öde veya kendi lisansını getir arasında seçim yaparak SQL Server VM'nizin lisans türünü belirtin. Lisanslama hakkında daha fazla bilgi için bkz . lisanslama modeli.
New-AzSqlVM -ResourceGroupName $ResourceGroupName -Name $VMName -Location $Location -LicenseType <PAYG/AHUB>
Uzantıya kaydolmanın üç yolu vardır:
- Abonelikteki tüm geçerli ve gelecekteki VM'ler için otomatik olarak
- Tek bir VM için el ile
- Toplu olarak birden çok VM için el ile
VM'yi durdurma veya kaldırma
VM'nin sürekli çalışması gerekmiyorsa, kullanılmadığında durdurarak gereksiz ücretlerden kaçınabilirsiniz. Aşağıdaki komut VM'yi durdurur ancak özelliği daha sonra kullanılmak üzere muhafaza eder.
Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName
Ayrıca Remove-AzResourceGroup komutuyla sanal makineyle ilişkili tüm kaynakları kalıcı olarak silebilirsiniz. Bunu yaptığınızda sanal makine de kalıcı olarak silinir, bu nedenle bu komutu dikkatli kullanın.
Örnek betik
Aşağıdaki betik, bu öğreticinin tam PowerShell betiğini içerir. Azure aboneliğini Connect-AzAccount ve Select-AzSubscription komutlarıyla kullanmak üzere önceden ayarladığınız varsayılır.
# 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>
Sonraki adımlar
Sanal makine oluşturulduktan sonra şunları yapabilirsiniz:
- RDP kullanarak sanal makineye bağlanma
- VM'niz için portalda SQL Server ayarlarını yapılandırın, örneğin:
- Bağlantıyı yapılandırma
- İstemcileri ve uygulamaları yeni SQL Server örneğine bağlama