Menggunakan Azure PowerShell untuk membuat SQL Server di Azure VM
Berlaku untuk:SQL Server di Azure VM
Panduan ini mencakup opsi untuk menggunakan PowerShell untuk menyediakan SQL Server di Azure Virtual Machine (VM). Untuk contoh Azure PowerShell yang disederhanakan yang bergantung pada nilai default, lihat mulai cepat SQL Server di Azure VM PowerShell.
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Catatan
Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Mengonfigurasi langganan Anda
Buka PowerShell dan buat akses ke akun Azure Anda dengan menjalankan perintah Connect-AzAccount.
Connect-AzAccount
Saat diminta, masukkan info masuk Anda. Gunakan email dan kata sandi yang sama dengan yang Anda gunakan untuk masuk ke portal Microsoft Azure.
Menentukan variabel citra
Untuk menggunakan kembali nilai dan menyederhanakan pembuatan skrip, mulailah dengan menentukan sejumlah variabel. Ubah nilai parameter seperti yang Anda inginkan, tetapi ketahuilah tentang pembatasan penamaan yang terkait dengan panjang nama dan karakter khusus saat memodifikasi nilai yang disediakan.
Dimungkinkan untuk menyebarkan gambar SQL Server yang lebih lama yang tidak tersedia di portal Azure dengan menggunakan PowerShell. Untuk menampilkan semua gambar yang tersedia dengan menggunakan PowerShell, gunakan perintah berikut:
$Location = "<location>"
Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
Lokasi dan grup sumber daya
Tentukan wilayah data dan grup sumber daya tempat Anda ingin membuat sumber daya komputer virtual lainnya.
Modifikasi seperti yang Anda inginkan lalu jalankan cmdlet ini untuk menginisialisasi variabel ini.
$Location = "SouthCentralUS"
$ResourceGroupName = "sqlvm2"
Properti penyimpanan
Tentukan akun penyimpanan dan jenis penyimpanan yang akan digunakan oleh komputer virtual.
Modifikasi sesuai keinginan Anda lalu jalankan cmdlet ini untuk menginisialisasi variabel tersebut. Sebaiknya gunakan SSD premium untuk beban kerja produksi.
$StorageName = $ResourceGroupName + "storage"
$StorageSku = "Premium_LRS"
Properti jaringan
Tentukan properti yang akan digunakan oleh jaringan di dalam komputer virtual.
- Antarmuka jaringan
- Metode alokasi TCP/IP
- Nama jaringan virtual
- Nama subnet virtual
- Rentang alamat IP untuk jaringan virtual
- Rentang alamat IP untuk subnet
- Label nama domain publik
Modifikasi seperti yang Anda inginkan lalu jalankan cmdlet ini untuk menginisialisasi variabel tersebut.
$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
Properti komputer virtual
Tentukan properti berikut ini:
- Nama komputer virtual
- Nama komputer
- Ukuran komputer virtual
- Nama disk sistem operasi untuk komputer virtual
Modifikasi seperti yang Anda inginkan lalu jalankan cmdlet ini untuk menginisialisasi variabel tersebut.
$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"
Memilih citra SQL Server
Gunakan variabel berikut untuk menentukan citra SQL Server yang akan digunakan untuk komputer virtual.
Pertama, cantumkan semua penawaran citra SQL Server dengan perintah
Get-AzVMImageOffer
. Perintah ini mencantumkan citra saat ini yang tersedia di portal Microsoft Azure dan juga citra lama yang hanya dapat dipasang dengan PowerShell:Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
Catatan
SQL Server 2008 dan SQL Server 2008 R2 tidak memiliki dukungan yang diperpanjang dan tidak lagi tersedia dari Marketplace Azure.
Untuk tutorial ini, gunakan variabel berikut untuk menentukan SQL Server 2022 di Windows Server 2022.
$OfferName = "SQL2022-WS2022" $PublisherName = "MicrosoftSQLServer" $Version = "latest"
Selanjutnya, cantumkan edisi yang tersedia untuk penawaran Anda.
Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
Untuk tutorial ini, gunakan SQL Server 2022 edisi Pengembang (SQLDEV). Edisi Pengembang dilisensikan secara bebas untuk pengujian dan pengembangan, dan Anda hanya membayar biaya menjalankan komputer virtual.
$Sku = "SQLDEV"
Buat grup sumber daya
Dengan model penyebaran Resource Manager, objek pertama yang Anda buat adalah grup sumber daya. Gunakan cmdlet New-AzResourceGroup untuk membuat grup sumber daya Azure dan sumber dayanya. Tentukan variabel yang sebelumnya Anda inisialisasi untuk nama dan lokasi grup sumber daya.
Jalankan cmdlet ini untuk membuat grup sumber daya baru Anda.
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
Buat akun penyimpanan
Komputer virtual memerlukan sumber daya penyimpanan untuk disk sistem operasi dan untuk data SQL Server serta file log. Untuk kesederhanaan, Anda akan membuat satu disk untuk keduanya. Anda dapat melampirkan disk tambahan nanti menggunakan cmdlet Add-Azure Disk untuk menempatkan data SQL Server Anda dan file log pada disk khusus. Gunakan cmdlet New-AzStorageAccount untuk membuat akun penyimpanan standar di grup sumber daya baru Anda. Tentukan variabel yang sebelumnya Anda inisialisasi untuk nama akun penyimpanan, nama penyimpanan SKU, dan lokasi.
Jalankan cmdlet ini untuk membuat akun penyimpanan baru Anda.
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
-Name $StorageName -SkuName $StorageSku `
-Kind "Storage" -Location $Location
Tip
Pembuatan akun penyimpanan memerlukan waktu beberapa menit.
Membuat sumber daya jaringan
Komputer virtual memerlukan sejumlah sumber daya jaringan untuk konektivitas jaringan.
- Setiap komputer virtual membutuhkan jaringan virtual.
- Jaringan virtual harus memiliki setidaknya satu subnet yang ditentukan.
- Antarmuka jaringan harus ditentukan dengan alamat IP publik atau privat.
Membuat konfigurasi subnet jaringan virtual
Mulailah dengan membuat konfigurasi subnet untuk jaringan virtual Anda. Untuk tutorial ini, buat subnet default menggunakan cmdlet New-AzVirtualNetworkSubnetConfig. Tentukan variabel yang sebelumnya Anda inisialisasi untuk awalan nama subnet dan alamat.
Catatan
Anda dapat menentukan properti tambahan dari konfigurasi subnet jaringan virtual menggunakan cmdlet ini, tetapi itu di luar cakupan tutorial ini.
Jalankan cmdlet ini untuk membuat konfigurasi subnet virtual Anda.
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
Membuat jaringan virtual
Selanjutnya, buat jaringan virtual Anda di grup sumber daya baru Anda menggunakan cmdlet New-AzVirtualNetwork. Tentukan variabel yang sebelumnya Anda inisialisasi untuk awalan nama, lokasi, dan alamat. Gunakan konfigurasi subnet yang Anda tentukan di langkah sebelumnya.
Jalankan cmdlet ini untuk membuat jaringan virtual Anda.
$VNet = New-AzVirtualNetwork -Name $VNetName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig
Membuat alamat IP publik
Sekarang setelah jaringan virtual ditentukan, Anda harus mengonfigurasi alamat IP untuk konektivitas ke komputer virtual. Untuk tutorial ini, buat alamat IP publik menggunakan alamat IP dinamis untuk mendukung konektivitas Internet. Gunakan cmdlet New-AzPublicIpAddress untuk membuat alamat IP publik di grup sumber daya baru Anda. Tentukan variabel yang sebelumnya Anda inisialisasi untuk label nama, lokasi, metode alokasi, dan nama domain DNS.
Catatan
Anda dapat menentukan properti tambahan dari alamat IP publik menggunakan cmdlet ini, tetapi itu di luar cakupan tutorial awal ini. Anda juga dapat membuat alamat privat atau alamat dengan alamat statis, tetapi itu juga di luar cakupan tutorial ini.
Jalankan cmdlet ini untuk membuat alamat IP publik Anda.
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
Membuat kelompok keamanan jaringan
Untuk mengamankan lalu lintas komputer virtual dan SQL Server, buat grup keamanan jaringan.
Pertama, buat aturan grup keamanan jaringan untuk desktop jarak jauh (RDP) untuk mengizinkan koneksi RDP.
$NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
Konfigurasikan aturan grup keamanan jaringan yang memungkinkan lalu lintas pada port TCP 1433. Melakukan hal ini memungkinkan koneksi ke SQL Server melalui internet.
$NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule" -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
Buat kelompok keamanan jaringan.
$Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName ` -Location $Location -Name $NsgName ` -SecurityRules $NsgRuleRDP,$NsgRuleSQL
Membuat antarmuka jaringan
Sekarang Anda siap untuk membuat antarmuka jaringan untuk komputer virtual Anda. Gunakan cmdlet New-AzNetworkInterface untuk membuat antarmuka jaringan di grup sumber daya baru Anda. Tentukan nama, lokasi, subnet, dan alamat IP publik yang sebelumnya ditentukan.
Jalankan cmdlet ini untuk membuat antarmuka jaringan Anda.
$Interface = New-AzNetworkInterface -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id `
-NetworkSecurityGroupId $Nsg.Id
Mengonfigurasi objek komputer virtual
Kini, setelah penyimpanan dan sumber daya jaringan ditentukan, Anda siap untuk menentukan sumber daya komputasi untuk komputer virtual.
- Tentukan ukuran komputer virtual dan berbagai properti sistem operasi.
- Tentukan antarmuka jaringan yang sebelumnya Anda buat.
- Tentukan penyimpanan blob.
- Tentukan disk sistem operasi.
Membuat objek komputer virtual
Mulailah dengan menentukan ukuran komputer virtual. Untuk tutorial ini, tentukan DS13. Gunakan cmdlet New-AzVMConfig untuk membuat objek komputer virtual yang dapat dikonfigurasi. Tentukan variabel yang sebelumnya Anda inisialisasi untuk nama dan ukuran.
Jalankan cmdlet ini untuk membuat objek komputer virtual.
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
Membuat objek kredensial untuk menahan nama dan kata sandi untuk info masuk administrator lokal
Sebelum Anda dapat mengatur properti sistem operasi untuk komputer virtual, Anda harus menyediakan info masuk untuk akun administrator lokal sebagai string aman. Untuk mencapai hal ini, gunakan cmdlet Get-Credential.
Jalankan cmdlet berikut. Anda harus mengetikkan nama dan kata sandi administrator lokal komputer virtual ke dalam jendela permintaan info masuk PowerShell.
$Credential = Get-Credential -Message "Type the name and password of the local administrator account."
Mengatur properti sistem operasi untuk komputer virtual
Sekarang Anda siap untuk mengatur properti sistem operasi komputer virtual dengan cmdlet Set-AzVMOperatingSystem.
- Atur jenis sistem operasi sebagai Windows.
- Wajibkan pemasangan agen komputer virtual.
- Tentukan bahwa cmdlet mengaktifkan pembaruan otomatis.
- Tentukan variabel yang sebelumnya Anda inisialisasi untuk nama komputer virtual, nama komputer, dan info masuk.
Jalankan cmdlet ini untuk mengatur properti sistem operasi untuk komputer virtual Anda.
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine `
-Windows -ComputerName $ComputerName -Credential $Credential `
-ProvisionVMAgent -EnableAutoUpdate
Menambahkan antarmuka jaringan ke komputer virtual
Selanjutnya, gunakan cmdlet Add-AzVMNetworkInterface untuk menambahkan antarmuka jaringan menggunakan variabel yang Anda tentukan sebelumnya.
Jalankan cmdlet ini untuk mengatur antarmuka jaringan untuk komputer virtual Anda.
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id
Atur lokasi penyimpanan blob untuk disk yang akan digunakan oleh komputer virtual
Selanjutnya, atur lokasi penyimpanan blob untuk disk komputer virtual dengan variabel yang Anda tentukan sebelumnya.
Jalankan cmdlet ini untuk mengatur lokasi penyimpanan blob.
$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"
Mengatur properti disk sistem operasi untuk komputer virtual
Selanjutnya, atur properti disk sistem operasi untuk komputer virtual menggunakan cmdlet Set-AzVMOSDisk.
- Tentukan bahwa sistem operasi untuk komputer virtual akan berasal dari citra.
- Atur penembolokan untuk dibaca saja (karena SQL Server sedang dipasang pada disk yang sama).
- Tentukan variabel yang sebelumnya Anda inisialisasi untuk nama komputer virtual dan disk sistem operasi.
Jalankan cmdlet ini untuk mengatur properti disk sistem operasi untuk komputer virtual Anda.
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name `
$OSDiskName -VhdUri $OSDiskUri -Caching ReadOnly -CreateOption FromImage
Tentukan citra platform untuk komputer virtual
Langkah konfigurasi terakhir adalah menentukan citra platform untuk komputer virtual Anda. Untuk tutorial ini, gunakan citra CTP SQL Server 2016 terbaru. Gunakan cmdlet Set-AzVMSourceImage untuk menggunakan citra ini dengan variabel yang Anda tentukan sebelumnya.
Jalankan cmdlet ini untuk menentukan citra platform untuk komputer virtual Anda.
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine `
-PublisherName $PublisherName -Offer $OfferName `
-Skus $Sku -Version $Version
Membuat komputer virtual SQL
Setelah menyelesaikan langkah-langkah konfigurasi, Anda siap untuk membuat komputer virtual. Gunakan cmdlet New-AzVM untuk membuat komputer virtual menggunakan variabel yang Anda tentukan.
Tip
Membuat VM dapat memakan waktu beberapa menit.
Jalankan cmdlet ini untuk membuat komputer virtual Anda.
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine
Komputer virtual dibuat.
Catatan
Jika Anda mendapatkan kesalahan tentang diagnostik boot, Anda bisa mengabaikannya. Akun penyimpanan standar dibuat untuk diagnostik boot karena akun penyimpanan yang ditentukan untuk disk komputer virtual adalah akun penyimpanan premium.
Instal ekstensi SQL IaaS Agent
Komputer virtual SQL Server mendukung fitur manajemen otomatis dengan Ekstensi Agen infrastruktur sebagai layanan SQL Server. Untuk mendaftarkan SQL Server Anda dengan ekstensi jalankan perintah New-AzSqlVM setelah komputer virtual dibuat. Tentukan jenis lisensi untuk komputer virtual SQL Server Anda, pilih antara bayar sesuai permintaan atau bawa lisensi Anda sendiri melalui Azure Hybrid Benefit. Untuk informasi selengkapnya tentang lisensi, lihat model lisensi.
New-AzSqlVM -ResourceGroupName $ResourceGroupName -Name $VMName -Location $Location -LicenseType <PAYG/AHUB>
Ada tiga cara untuk mendaftar dengan ekstensi:
- Secara otomatis untuk semua komputer virtual yang saat ini dan nanti ada dalam langganan
- Secara manual untuk komputer virtual tunggal
- Secara manual untuk beberapa komputer virtual secara massal
Menghentikan atau menghapus komputer virtual
Jika Anda tidak memerlukan komputer virtual untuk berjalan terus menerus, Anda dapat menghindari biaya yang tidak perlu dengan menghentikannya saat tidak digunakan. Perintah berikut ini menghentikan komputer virtual tetapi membuatnya tersedia untuk digunakan di masa mendatang.
Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName
Anda juga dapat menghapus semua sumber daya yang terkait dengan komputer virtual secara permanen dengan perintah Remove-AzResourceGroup. Melakukannya secara permanen menghapus komputer virtual juga, jadi gunakan perintah ini dengan hati-hati.
Contoh skrip
Skrip berikut berisi skrip PowerShell lengkap untuk tutorial ini. Ini mengasumsikan bahwa Anda telah menyiapkan langganan Azure untuk digunakan dengan perintah Connect-AzAccount dan 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>
Langkah berikutnya
Setelah komputer virtual dibuat, Anda dapat:
- Menyambungkan ke komputer virtual menggunakan RDP
- Konfigurasikan pengaturan SQL Server di portal untuk VM Anda, termasuk:
- Mengonfigurasi konektivitas
- Sambungkan klien dan aplikasi ke instans SQL Server baru
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk