Membuat Sumber Daya Azure menggunakan skrip di Azure PowerShell

Selesai

Dalam mode interaktif, PowerShell memungkinkan Anda menulis perintah dan segera menjalankannya.

Ingatlah bahwa tujuan keseluruhan dalam contoh Customer Relationship Management (CRM) adalah untuk menciptakan tiga lingkungan pengujian yang mengandung Mesin Virtual. Anda menggunakan grup sumber daya untuk memastikan VM diatur ke dalam lingkungan terpisah: satu untuk pengujian unit, satu untuk pengujian integrasi, dan satu untuk pengujian penerimaan. Anda hanya perlu membuat grup sumber daya sekali, jadi menggunakan mode interaktif PowerShell dalam kasus penggunaan ini adalah pilihan yang baik.

Saat Anda memasukkan perintah ke PowerShell, PowerShell cocok dengan perintah dengan cmdlet, lalu melakukan tindakan yang diminta. Pertama, kita akan melihat beberapa perintah umum yang dapat Anda gunakan, lalu kita akan melihat menginstal dukungan Azure untuk PowerShell.

Apa itu cmdlet PowerShell?

Perintah PowerShell disebut cmdlet (diucapkan "command-let"). Cmdlet adalah perintah yang memanipulasi satu fitur. Istilah cmdlet dimaksudkan untuk menyiratkan "perintah kecil." Berdasarkan konvensi, penulis cmdlet didorong untuk menjaga cmdlet tetap sederhana dan tujuan tunggal.

Produk PowerShell dasar dikirim dengan cmdlet yang bekerja dengan fitur seperti sesi dan pekerjaan latar belakang. Anda dapat menambahkan modul ke instalasi PowerShell Anda untuk mendapatkan cmdlet yang memanipulasi fitur lainnya. Misalnya, ada modul pihak ketiga untuk bekerja dengan ftp, mengelola sistem operasi Anda, mengakses sistem file, dan sebagainya.

Cmdlet mengikuti konvensi penamaan kata kerja-kata benda; misalnya, Get-Process, Format-Table, dan Start-Service. Ada juga konvensi untuk pilihan kata kerja: "dapatkan" untuk mengambil data, "set" untuk menyisipkan atau memperbarui data, "format" untuk memformat data, "keluar" untuk mengarahkan output ke tujuan, dan sebagainya.

Penulis cmdlet didorong untuk menyertakan file bantuan untuk setiap cmdlet. Cmdlet Get-Help menampilkan file bantuan untuk cmdlet apa pun. Misalnya, untuk mendapatkan bantuan tentang cmdlet Get-ChildItem, masukkan pernyataan berikut di sesi Windows PowerShell:

Get-Help -Name Get-ChildItem -Detailed

Apa itu modul PowerShell?

Cmdlet dikirim dalam modul. Modul PowerShell adalah pustaka tautan dinamis (DLL) yang menyertakan kode untuk memproses setiap cmdlet yang tersedia. Anda memuat cmdlet ke PowerShell dengan memuat modul tempat cmdlet dimuat. Anda bisa mendapatkan daftar modul yang dimuat menggunakan perintah Get-Module:

Get-Module

Perintah ini menghasilkan sesuatu seperti:

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Con...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Binary     1.0.0.1    PackageManagement                   {Find-Package, Find-PackageProvider, Get-Package, Get-Pack...
Script     1.0.0.1    PowerShellGet                       {Find-Command, Find-DscResource, Find-Module, Find-RoleCap...
Script     2.0.0      PSReadline                          {Get-PSReadLineKeyHandler, Get-PSReadLineOption, Remove-PS...

Apa yang dimaksud dengan modul Az PowerShell?

Az adalah nama resmi untuk modul Azure PowerShell, yang berisi cmdlet untuk bekerja dengan fitur Azure. Ini berisi ratusan cmdlet yang memungkinkan Anda mengontrol hampir setiap aspek dari setiap sumber daya Azure. Anda dapat bekerja dengan grup sumber daya, penyimpanan, komputer virtual, ID Microsoft Entra, kontainer, pembelajaran mesin, dan sebagainya. Modul Az adalah komponen sumber terbuka yang tersedia di GitHub.

Catatan

Anda mungkin pernah melihat atau menggunakan perintah Azure PowerShell yang menggunakan format -AzureRM. Karena modul Az PowerShell sekarang memiliki semua kemampuan modul AzureRM PowerShell dan lebih banyak lagi, kami akan menghentikan modul AzureRM PowerShell pada 29 Februari 2024. Untuk menghindari gangguan layanan, perbarui skrip Anda yang menggunakan modul AzureRM PowerShell untuk menggunakan modul Az PowerShell paling lambat 29 Februari 2024. Untuk memperbarui skrip Anda secara otomatis, ikuti panduan memulai cepat.

Menginstal modul Azure PowerShell

Modul Az PowerShell tersedia dari repositori global yang disebut Galeri PowerShell. Anda dapat menginstal modul ke mesin lokal Anda melalui cmdlet Install-Module.

Untuk menginstal modul Azure Az PowerShell terbaru, jalankan perintah berikut:

  1. Buka menu Start dan masukkan PowerShell.

  2. Pilih ikon PowerShell.

  3. Masukkan perintah berikut, lalu tekan Enter:

    Install-Module -Name Az -Scope CurrentUser -Repository PSGallery
    

Perintah sebelumnya menginstal modul untuk pengguna Anda saat ini (dikontrol Scope oleh parameter).

Perintah bergantung pada NuGet untuk mengambil komponen. Jadi, tergantung pada versi yang telah Anda instal, Anda mungkin diminta untuk mengunduh dan menginstal versi terbaru NuGet.

NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet
 provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or
'C:\Users\<username>\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by running
'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and import
 the NuGet provider now?
 [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

Masukkan Y dan tekan Enter.

Secara default, Galeri PowerShell tidak dikonfigurasi sebagai repositori tepercaya untuk PowerShellGet. Setiap kali Anda melakukan penginstalan dari repositori yang tidak tepercaya, Anda diminta untuk mengonfirmasi bahwa Anda ingin menginstal modul dengan output berikut:

You are installing the modules from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from
'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"):

Masukkan Y atau A, lalu tekan Enter.

Eksekusi skrip gagal

Bergantung pada konfigurasi keamanan Anda, Import-Module mungkin gagal dengan sesuatu seperti output berikut:

import-module : File C:\Program Files\PowerShell\Modules\az\6.3.0\Az.psm1 cannot be loaded
because running scripts is disabled on this system. For more information, see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ import-module Az
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [Import-Module], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

Mungkin juga gagal dengan tidak merespons sama sekali. Dalam hal ini, tekan Ctrl+C untuk menghentikan program.

Kedua perilaku biasanya menunjukkan bahwa kebijakan eksekusi "Dibatasi", yang berarti Anda tidak dapat menjalankan modul yang Anda unduh dari sumber eksternal, termasuk Galeri PowerShell. Anda dapat memeriksa dengan menjalankan cmdlet Get-ExecutionPolicy. Jika cmdlet mengembalikan "Dibatasi," maka:

  1. Gunakan cmdlet Set-ExecutionPolicy untuk mengubah kebijakan menjadi "RemoteSigned":

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    

    Anda dimintai izin:

    The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
    you to the security risks described in the about_Execution_Policies help topic at
    https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y
    
  2. Masukkan Y atau A, lalu tekan Enter.

  3. Pada perintah, gunakan panah atas pada keyboard Anda dan jalankan kembali perintah Install-Module untuk Azure.

Anda akan dapat melihat pemuatan modul Az PowerShell. Setelah selesai, Anda dapat menggunakan Import-Module untuk memuat cmdlet.

Menginstal Azure PowerShell di Linux atau macOS menggunakan perintah yang sama.

  1. Di terminal, jalankan perintah berikut untuk meluncurkan PowerShell.

    pwsh
    
  2. Jalankan perintah berikut pada prompt PowerShell untuk menginstal Azure PowerShell.

    Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
    
  3. Jika Anda ditanya apakah Anda memercayai modul dari PSGallery, jawablah Ya atau Ya untuk Semua.

Memperbarui modul PowerShell

Anda mungkin mendapatkan pesan peringatan atau kesalahan yang menunjukkan versi modul Azure PowerShell sudah diinstal. Jika demikian, Anda dapat mengeluarkan perintah berikut untuk memperbarui ke versi terbaru .

Update-Module -Name Az

Seperti halnya cmdlet Install-Module, jawab Ya atau Ya untuk Semua saat diminta untuk memercayai modul. Anda juga dapat menggunakan perintah Update-Module untuk menginstal kembali modul jika mengalami masalah dengannya.

Contoh: Cara membuat grup sumber daya dengan Azure PowerShell

Setelah menginstal modul Azure, Anda dapat mulai bekerja dengan Azure. Mari kita lakukan tugas umum: membuat Grup Sumber Daya. Seperti yang Anda ketahui, kami menggunakan grup sumber daya untuk mengelola sumber daya terkait bersama-sama. Membuat grup sumber daya baru adalah salah satu tugas pertama yang Anda lakukan saat memulai solusi Azure baru.

Ada empat langkah yang perlu Anda lakukan:

  1. Mengimpor cmdlet Azure.

  2. Menyambungkan ke langganan Azure Anda.

  3. Membuat grup sumber daya.

  4. Pastikan bahwa pembuatan berhasil.

Ilustrasi berikut ini memperlihatkan gambaran umum langkah-langkah berikut:

Diagram showing the steps to create a resource group.

Setiap langkah sesuai dengan cmdlet yang berbeda.

Mengimpor cmdlet Azure

Dimulai dengan PowerShell 3.0, modul dimuat secara otomatis saat Anda menggunakan cmdlet di dalam modul. Tidak perlu lagi mengimpor modul PowerShell secara manual kecuali Anda telah mengubah pengaturan pemuatan otomatis modul default.

Sambungkan

Saat bekerja dengan penginstalan lokal Azure PowerShell, Anda perlu mengautentikasi sebelum dapat menjalankan perintah Azure. cmdlet Connect-AzAccount meminta kredensial Azure Anda, lalu menghubungkan ke langganan Azure Anda. Hal ini memiliki banyak parameter opsional, tetapi jika yang Anda butuhkan hanyalah perintah interaktif, Anda tidak memerlukan parameter apa pun:

Connect-AzAccount

Bekerja dengan langganan

Jika Anda baru menggunakan Azure, Anda mungkin hanya memiliki satu langganan. Namun, jika Anda telah menggunakan Azure untuk sementara waktu, Anda mungkin telah membuat beberapa langganan Azure. Anda dapat mengonfigurasi Azure PowerShell untuk menjalankan perintah terhadap langganan tertentu.

Anda hanya bisa berada dalam satu langganan pada satu waktu. Gunakan cmdlet Get-AzContext untuk menentukan langganan mana yang aktif. Jika tidak benar, Anda dapat mengubah langganan menggunakan cmdlet lain.

  1. Dapatkan daftar semua nama langganan di akun Anda dengan Get-AzSubscription perintah.

  2. Ubah langganan dengan meneruskan nama langganan yang akan dipilih.

Set-AzContext -Subscription '00000000-0000-0000-0000-000000000000'

Jika Anda perlu mencari ID Langganan, buka portal Azure dan pilih Langganan di beranda.

Mendapatkan daftar semua grup sumber daya

Anda bisa mengambil daftar semua Grup Sumber Daya di langganan aktif.

Get-AzResourceGroup

Untuk mendapatkan tampilan yang lebih ringkas, Anda dapat mengirim output dari cmdlet Get-AzResourceGroup ke Format-Table menggunakan pipa '|'.

Get-AzResourceGroup | Format-Table

Output terlihat seperti ini:

ResourceGroupName                  Location       ProvisioningState Tags TagsTable ResourceId
-----------------                  --------       ----------------- ---- --------- ----------
cloud-shell-storage-southcentralus southcentralus Succeeded                        /subscriptions/00000000-0000-0000...
ExerciseResources                  eastus         Succeeded                        /subscriptions/00000000-0000-0000...

Buat grup sumber daya

Seperti yang Anda ketahui, saat membuat sumber daya di Azure, Anda selalu menempatkannya ke dalam grup sumber daya untuk tujuan manajemen. Grup sumber daya sering kali merupakan salah satu hal pertama yang Anda buat saat memulai aplikasi baru.

Anda dapat membuat grup sumber daya menggunakan cmdlet New-AzResourceGroup. Anda harus menentukan nama dan lokasi. Nama harus unik dalam langganan Anda. Lokasi menentukan di mana metadata untuk grup sumber daya Anda disimpan (yang mungkin penting bagi Anda karena alasan kepatuhan). Anda menggunakan string seperti "WEST US", "North Europe", atau "West India" untuk menentukan lokasi. Seperti kebanyakan cmdlet Azure, New-AzResourceGroup memiliki banyak parameter opsional. Namun, sintaks core-nya adalah:

New-AzResourceGroup -Name <name> -Location <location>

Catatan

Ingat, kita akan bekerja di kotak pasir Azure aktif, yang membuat Grup Sumber Daya untuk Anda. Gunakan perintah sebelumnya jika Anda lebih suka bekerja di langganan Anda sendiri.

Memverifikasi sumber daya

Get-AzResource mencantumkan sumber daya Azure Anda, yang berguna di sini untuk memverifikasi sumber daya yang telah dibuat dan pembuatan grup sumber daya yang berhasil.

Get-AzResource

Seperti perintah Get-AzResourceGroup, Anda bisa mendapatkan tampilan yang lebih ringkas melalui cmdlet Format-Table:

Get-AzResource | Format-Table

Anda juga dapat memfilternya ke grup sumber daya tertentu untuk hanya mencantumkan sumber daya yang terkait dengan grup tersebut:

Get-AzResource -ResourceGroupName ExerciseResources

Membuat Azure Virtual Machine

Tugas umum lainnya yang dapat Anda lakukan dengan PowerShell adalah membuat Mesin Virtual.

Azure PowerShell menyediakan New-AzVm cmdlet untuk membuat komputer virtual. Cmdlet memiliki banyak parameter untuk membiarkannya menangani sejumlah besar pengaturan konfigurasi VM. Sebagian besar parameter memiliki nilai default yang masuk akal, jadi kita hanya perlu menentukan lima hal:

  • ResourceGroupName: Grup sumber daya tempat VM baru harus ditempatkan.
  • Nama: Nama VM di Azure.
  • Lokasi: Lokasi geografis tempat VM harus disediakan.
  • Kredensial: Objek yang berisi nama pengguna dan kata sandi untuk akun admin VM. Kami menggunakan Get-Credential cmdlet. Cmdlet ini meminta nama pengguna dan kata sandi dan mengemasnya ke dalam objek kredensial.
  • Gambar: Gambar sistem operasi yang digunakan untuk VM, yang biasanya merupakan distribusi Linux atau Windows Server.
   New-AzVm
       -ResourceGroupName <resource group name>
       -Name <machine name>
       -Credential <credentials object>
       -Location <location>
       -Image <image name>

Anda dapat menyediakan parameter ini langsung ke cmdlet seperti yang ditunjukkan dalam contoh sebelumnya. Atau, Anda dapat menggunakan cmdlet lain untuk mengonfigurasi mesin virtual, seperti Set-AzVMOperatingSystem, Set-AzVMSourceImage, Add-AzVMNetworkInterface, dan Set-AzVMOSDisk.

Berikut adalah contoh yang merangkai cmdlet Get-Credential bersama dengan parameter -Credential:

New-AzVM -Name MyVm -ResourceGroupName ExerciseResources -Credential (Get-Credential) ...

Suffix AzVM ini khusus untuk perintah berbasis VM di PowerShell. Ada beberapa orang lain yang dapat Anda gunakan:

Perintah Deskripsi
Remove-AzVM Menghapus Azure VM
Start-AzVM Memulai VM yang dihentikan
Stop-AzVM Menghentikan VM yang sedang berjalan
Restart-AzVM Memulai ulang VM
Update-AzVM Memperbarui konfigurasi untuk VM

Contoh: Mendapatkan informasi untuk VM

Anda dapat membuat daftar Mesin Virtual dalam langganan Anda menggunakan perintah Get-AzVM -Status. Perintah ini juga mendukung memasukkan VM tertentu dengan menyertakan properti -Name. Di sini, kami menetapkannya ke variabel PowerShell:

$vm = Get-AzVM  -Name MyVM -ResourceGroupName ExerciseResources

Hal yang menarik adalah sekarang Mesin Virtual Anda adalah objek yang dapat Anda gunakan untuk berinteraksi. Misalnya, Anda dapat membuat perubahan pada objek tersebut, lalu mendorong perubahan kembali ke Azure dengan menggunakan perintah Update-AzVM:

$ResourceGroupName = "ExerciseResources"
$vm = Get-AzVM  -Name MyVM -ResourceGroupName $ResourceGroupName
$vm.HardwareProfile.vmSize = "Standard_DS3_v2"

Update-AzVM -ResourceGroupName $ResourceGroupName  -VM $vm

Mode interaktif di PowerShell sesuai untuk tugas satu kali. Dalam contoh kami, kami menggunakan grup sumber daya yang sama untuk masa pakai proyek, jadi membuatnya secara interaktif adalah wajar. Mode interaktif sering lebih cepat dan lebih mudah untuk tugas ini daripada menulis skrip dan mengeksekusi skrip itu persis sekali.