Bagikan melalui


Panduan untuk membuat VM SQL Server dengan PowerShell

Aplikasi ke:SQL Server pada VM Azure

Panduan ini mencakup opsi untuk menggunakan PowerShell untuk membuat SQL Server di Azure Virtual Machine (VM). Untuk contoh Azure PowerShell yang lebih ringkas dan bergantung pada nilai default, lihat Panduan Cepat SQL Server pada Azure VM PowerShell, atau untuk skrip lengkap, lihat Membuat VM SQL Server dengan skrip PowerShell.

Prasyarat

Untuk menyelesaikan panduan ini, Anda harus memiliki hal berikut:

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun free sebelum Memulai.
  • Versi terbaru Azure PowerShell

Catatan

Artikel ini menggunakan modul Az PowerShell Azure, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Migrasikan Azure PowerShell dari AzureRM ke Az.

Tentukan variabel

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.

Mulailah dengan menentukan parameter untuk digunakan di seluruh skrip, seperti lokasi, nama grup sumber daya, gambar SQL Server dan akun penyimpanan yang ingin Anda gunakan, serta properti jaringan dan komputer virtual.

Lokasi dan grup sumber daya

Tentukan wilayah data, grup sumber daya, dan langganan tempat Anda ingin membuat VM SQL Server dan sumber daya terkait.

Modifikasi seperti yang Anda inginkan lalu jalankan cmdlet ini untuk menginisialisasi variabel ini.

$SubscriptionId = "<Enter Subscription ID>"
$Location = "<Enter Location>"
$ResourceGroupName = "<Enter Resource Group Name>"
$userName = "<Enter User Name for the virtual machine"

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 = "sqlvm" + "storage"
$StorageSku = "Premium_LRS"

Catatan

Panjang nama akun penyimpanan harus antara 3 dan 24 karakter dan hanya menggunakan angka dan huruf kecil.

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 mesin virtual

Tentukan properti berikut ini:

  • Nama komputer virtual
  • Nama komputer
  • Ukuran mesin virtual
  • Nama disk sistem operasi untuk mesin 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"

Pilih gambar SQL Server

Dimungkinkan untuk menyebarkan gambar SQL Server yang lebih lama yang tidak tersedia di portal Azure dengan menggunakan PowerShell.

Gunakan variabel berikut untuk menentukan gambar SQL Server yang akan digunakan untuk komputer virtual.

  1. Cantumkan semua penawaran gambar SQL Server dengan perintah Get-AzVMImageOffer untuk mencantumkan gambar yang tersedia saat ini di portal Azure serta gambar lama yang hanya dapat Anda sebarkan dengan PowerShell:

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

    Catatan

    SQL Server 2012 dan SQL Server 2014 berada di luar dukungan mainstream dan tidak lagi tersedia dari Azure Marketplace.

  2. Cantumkan edisi yang tersedia untuk penawaran Anda dengan Get-AzVMImageSku.

    Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
    

Untuk tutorial ini, gunakan SQL Server 2022 edisi Pengembang (SQLDEV-GEN2) pada Windows Server 2022. Edisi Pengembang dilisensikan secara bebas untuk pengujian dan pengembangan, dan Anda hanya membayar biaya menjalankan VM:

$OfferName = "SQL2022-WS2022"
$PublisherName = "MicrosoftSQLServer"
$Version = "latest"
$Sku = "SQLDEV-GEN2"
$License = 'PAYG'

# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
   -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)

Buat grup sumber daya

Buka PowerShell dan buat akses ke akun Azure Anda dengan menjalankan perintah Connect-AzAccount, dan atur konteks langganan Anda dengan Set-AzContext. Saat diminta, masukkan kredensial Anda. Gunakan email dan kata sandi yang sama dengan yang Anda gunakan untuk masuk ke portal Azure.

Setelah Anda menetapkan konteks langganan, objek pertama yang Anda buat adalah grup sumber daya. Gunakan perintah Connect-AzAccount untuk menyambungkan ke Azure, dan atur konteks langganan Anda dengan Set-AzContext. 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 menyambungkan ke Azure, membuat konteks langganan, dan membuat grup sumber daya baru Anda:


# Set subscription context
Connect-AzAccount
$subscriptionContextParams = @{
    SubscriptionId = $SubscriptionId
}
Set-AzContext @subscriptionContextParams

# Create a resource group
$resourceGroupParams = @{
    Name = $resourceGroupName
    Location = $Location
    Tag = @{Owner="SQLDocs-Samples"}
}
$resourceGroup = New-AzResourceGroup @resourceGroupParams

Buat akun penyimpanan

Komputer virtual memerlukan sumber daya penyimpanan untuk disk sistem operasi dan untuk data SQL Server dan file log. Untuk kesederhanaan, Anda akan membuat satu disk untuk keduanya. Anda dapat melampirkan disk tambahan nanti menggunakan cmdlet New-AzDisk untuk menempatkan data SQL Server dan file log Anda 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:

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

Petunjuk / Saran

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.

# Create a subnet configuration
$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:

# Create a virtual network
$VNet = New-AzVirtualNetwork -Name $VNetName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig

Membuat alamat IP publik

Sekarang setelah jaringan virtual Anda ditentukan, Anda harus mengonfigurasi alamat IP untuk terhubung 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.

# Create a public IP address
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName

Membuat kelompok keamanan jaringan

Untuk mengamankan lalu lintas VM dan SQL Server, buat grup keamanan jaringan.

  1. Buat dua aturan grup keamanan jaringan dengan menggunakan New-AzNetworkSecurityRuleConfig, aturan untuk desktop jarak jauh (RDP) untuk mengizinkan koneksi RDP, dan aturan yang memungkinkan lalu lintas pada port TCP 1433. Melakukannya memungkinkan koneksi untuk SQL Server melalui internet.

    # Create a network security group rule
    $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
    
  2. Buat grup keamanan jaringan dengan menggunakan New-AzNetworkSecurityGroup.

    # Create a network security group
    $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.

# Create a network interface
$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.
  • Definisikan penyimpanan blob.
  • Tentukan disk sistem operasi.

Membuat VM SQL Server

Untuk membuat VM SQL Server Anda, pertama-tama buat objek kredensial, lalu buat VM.

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.

# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
   -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)

Menentukan properti dan membuat VM

Sekarang Anda siap untuk mengatur properti sistem operasi komputer virtual dengan New-AzVMConfig, membuat VM dengan New-AzVM, dan menggunakan cmdlet Add-AzVMNetworkInterface untuk menambahkan antarmuka jaringan menggunakan variabel yang Anda tentukan sebelumnya.

Contoh skrip melakukan hal berikut:

  • Wajibkan pemasangan agen komputer virtual.
  • Menentukan bahwa cmdlet memungkinkan pembaruan otomatis.
  • Menentukan variabel yang sebelumnya Anda inisialisasi untuk nama komputer virtual, nama komputer, dan kredensial.

Jalankan cmdlet ini untuk mengatur properti sistem operasi untuk komputer virtual Anda.

# Create a virtual machine configuration
$VMName = $ResourceGroupName + "VM"
$VMConfig = New-AzVMConfig -VMName $VMName -VMSize $VMSize |
    Set-AzVMOperatingSystem -Windows -ComputerName $VMName -Credential $Cred -ProvisionVMAgent -EnableAutoUpdate |
    Set-AzVMSourceImage -PublisherName $PublisherName -Offer $OfferName -Skus $Sku  -Version $Version |
    Add-AzVMNetworkInterface -Id $Interface.Id

# Create the VM
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VMConfig

Komputer virtual dibuat.

Catatan

Jika Anda mengalami kesalahan terkait 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

SQL Server komputer virtual mendukung fitur manajemen otomatis dengan Ekstensi Agen IaaS SQL Server. Untuk mendaftarkan SQL Server Anda dengan ekstensi, jalankan perintah New-AzSqlVM setelah komputer virtual dibuat. Tentukan jenis lisensi untuk VM SQL Server Anda, memilih antara bayar sesuai penggunaan (PAYG), Azure Hybrid Benefit (AHUB), atau pemulihan bencana (DR) untuk mengaktifkan lisensi replika DR free. Untuk informasi selengkapnya tentang lisensi, lihat model lisensi.

Untuk mendaftarkan VM SQL Server Anda dengan ekstensi SQL IaaS Agent, pertama-tama daftarkan langganan Anda dengan penyedia sumber daya dengan menggunakan Register-AzResourceProvider, lalu daftarkan VM SQL Server Anda dengan ekstensi Agen IaaS SQL dengan menggunakan New-AzSqlVM:


# Register the SQL IaaS Agent extension to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine

# Register SQL Server VM with the extension
New-AzSqlVM -Name $VMName -ResourceGroupName $ResourceGroupName -Location $Location `
-LicenseType $License

Ada tiga cara untuk mendaftar dengan ekstensi:

Menghentikan atau menghapus komputer virtual (VM)

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.

Skrip lengkap

Untuk skrip PowerShell lengkap yang memberikan pengalaman menyeluruh, lihat Deploy SQL Server di VM Azure dengan PowerShell.

Setelah komputer virtual dibuat, Anda dapat: