Menginstal modul PowerShell AzureRM untuk Azure Stack Hub

Azure PowerShell Azure Resource Manager (AzureRM) menyediakan satu set cmdlet yang menggunakan model Azure Resource Manager untuk mengelola sumber daya Azure Stack Hub Anda.

Penting

Anda telah mencapai halaman web untuk versi usang Azure Stack Hub PowerShell. Semua versi modul Azure Resource Manager (AzureRM) PowerShell sudah usang, tetapi tidak keluar dari dukungan. Modul AzureRM tidak akan lagi diperbarui di build Azure Stack Hub mendatang. Modul Az akan digunakan untuk build 2002 dan yang lebih baru. Profil The 2020-09-01-hybrid tidak didukung untuk modul AzureRM.

Modul Az PowerShell adalah modul PowerShell yang disarankan untuk berinteraksi dengan Azure dan Azure Stack Hub. Untuk memulai modul Az PowerShell, lihat Menginstal modul pratinjau PowerShell Az untuk Azure Stack Hub. Untuk mempelajari cara bermigrasi ke modul Az PowerShell. lihat Migrasi dari AzureRM ke Azure PowerShell Az di Azure Stack Hub. Untuk detail tentang peningkatan fungsionalitas modul Az, yang telah diadopsi di seluruh Azure global, lihat Memperkenalkan modul Azure Az PowerShell.

Anda dapat menggunakan profil API untuk menentukan titik akhir yang kompatibel untuk penyedia sumber daya Azure Stack Hub.

Profil API menyediakan cara mengelola perbedaan versi antara Azure dan Azure Stack Hub. Profil versi API adalah serangkaian modul Azure Resource Manager PowerShell dengan versi API tertentu. Tiap platform cloud memiliki serangkaian profil versi API yang didukung. Sebagai contoh, Azure Stack Hub mendukung versi profil tertentu seperti 2019-03-01-hybrid. Ketika Anda menginstal profil, modul Azure Resource Manager PowerShell yang sesuai dengan profil tersebut akan diinstal.

Anda dapat menginstal Azure Stack Hub yang kompatibel dengan modul PowerShell dalam skenario terhubung dengan internet, terhubung sebagian, maupun terputus. Artikel ini memandu Anda dalam mengikuti instruksi detail untuk skenario ini.

Anda juga dapat menjalankan modul Azure Resource Manager untuk Azure Stack Hub di kontainer Docker. Untuk instruksinya, lihat Menggunakan Docker untuk menjalankan PowerShell untuk Azure Stack Hub.

1. Verifikasi prasyarat Anda

Sebelum memulai dengan Azure Stack Hub dan modul PowerShell Azure Resource Manager, Anda harus memiliki prasyarat berikut:

  • PowerShell Versi 5.1
    Untuk memeriksa versi Anda, jalankan $PSVersionTable.PSVersion dan bandingkan versi Major-nya. Jika Anda tidak memiliki PowerShell 5.1, ikuti Menginstal Windows PowerShell.

    Catatan

    PowerShell 5.1 membutuhkan mesin Windows.

  • Jalankan PowerShell dalam prompt perintah tinggi.

  • Akses PowerShell Gallery
    Anda memerlukan akses ke PowerShell Gallery. Galeri tersebut adalah repositori pusat untuk konten PowerShell. Modul PowerShellGet berisi cmdlet untuk menemukan, menginstal, memperbarui, dan menerbitkan artefak PowerShell. Contoh artefak ini adalah modul, sumber daya DSC, kemampuan peran, dan skrip dari PowerShell Gallery dan repositori pribadi lainnya. Jika Anda menggunakan PowerShell dalam skenario terputus, Anda harus mengambil sumber daya dari mesin dengan koneksi ke internet dan menyimpannya di lokasi yang dapat diakses oleh mesin yang terputus tersebut.

Validasi jika PSGallery terdaftar sebagai repositori.

Catatan

Langkah ini membutuhkan akses internet.

Buka prompt PowerShell yang ditinggikan, dan jalankan cmdlet berikut:

Install-module -Name PowerShellGet -Force
Import-Module -Name PackageManagement -ErrorAction Stop
Get-PSRepository -Name "PSGallery"

Jika repositori tidak terdaftar, buka sesi PowerShell yang ditinggikan dan jalankan perintah berikut:

Register-PSRepository -Default
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

3. Hapus instalan versi modul Azure Stack Hub PowerShell yang ada

Sebelum menginstal versi yang diperlukan, pastikan Anda menghapus instalan modul Azure Stack Hub Azure Resource Manager PowerShell yang terpasang sebelumnya. Menghapus instalan modul dengan menggunakan salah satu dari dua metode berikut:

  1. Untuk menghapus instalan modul Azure Resource Manager dan Az PowerShell yang ada, tutup semua sesi PowerShell yang aktif, dan jalankan cmdlet berikut:

    Get-Module -Name Azure* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Azs.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Az.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    

    Jika Anda mengalami kesalahan seperti 'Modul sedang dalam penggunaan', tutup sesi PowerShell yang menggunakan modul tersebut dan jalankan kembali skrip di atas.

  2. Hapus semua folder yang diawali dengan Azure, Az atau Azs. dari folder C:\Program Files\WindowsPowerShell\Modules dan C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. Penghapusan folder ini akan menghapus modul PowerShell yang ada.

4. Terhubung: Instal PowerShell untuk Azure Stack Hub dengan konektivitas internet

Profil versi API dan modul Azure Stack Hub PowerShell yang Anda butuhkan akan bergantung pada versi Azure Stack Hub yang Anda jalankan.

Menginstal Azure Stack Hub PowerShell

Jalankan skrip PowerShell berikut untuk menginstal modul ini di stasiun kerja pengembangan Anda:

Untuk Azure Stack Hub 2002 atau yang lebih baru:

Anda dapat menggunakan modul AzureRm pengguna atau modul pratinjau Az. Penggunaan modul Az memerlukan Azure Stack Hub 2002 atau yang lebih baru.

Untuk menggunakan modul pratinjau Az, ikuti petunjuk di Menginstal modul PowerShell Az.

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.8.3 

Untuk Azure Stack Hub 1910:

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.8.0

Catatan

  • Modul Azure Stack Hub versi 1.8.0 adalah rilis yang bersifat breaking change. Lihat catatan rilis untuk detailnya.

Untuk Azure Stack Hub 1908 atau yang lebih lama:

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.7.2

Catatan

Modul Azure Stack Hub versi 1.7.2 adalah rilis yang bersifat breaking change. Untuk bermigrasi dari Azure Stack Hub 1.6.0, silakan lihat panduan migrasi.

Mengonfirmasi penginstalan PowerShell

Konfirmasi penginstalan dengan menjalankan perintah berikut:

Get-Module -Name "Azure*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable

Jika penginstalan berhasil, modul AzureRm dan AzureStack ditampilkan dalam output.

5. Terputus: Instal PowerShell tanpa koneksi internet

Dalam skenario terputus, terlebih dahulu Anda mengunduh modul PowerShell ke mesin yang memiliki konektivitas internet. Kemudian, Anda mentransfernya ke Azure Stack Development Kit (ASDK) untuk melakukan penginstalan.

Masuk ke komputer yang terkoneksi internet dan gunakan skrip berikut untuk mengunduh paket Azure Resource Manager dan Azure Stack Hub, tergantung pada versi Azure Stack Hub Anda.

Penginstalan memiliki lima langkah:

  1. Instal Azure Stack Hub PowerShell ke mesin yang terkoneksi internet.
  2. Aktifkan fitur penyimpanan tambahan.
  3. Angkut paket PowerShell ke stasiun kerja Anda yang terputus.
  4. Secara manual lakukan bootstrap pada penyedia NuGet di stasiun kerja Anda yang terputus.
  5. Konfirmasi penginstalan PowerShell.

Menginstal Azure Stack Hub PowerShell

Azure Stack Hub 2002 atau versi yang lebih baru.

Anda dapat menggunakan modul Azure Resource Manager atau Az. Untuk modul Az, lihat petunjuk di Menginstal modul PowerShell Az.


Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.3

Azure Stack Hub 1910.

Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.0

Catatan

Modul Azure Stack Hub versi 1.8.0 adalah rilis yang bersifat breaking change. Lihat catatan rilis untuk detailnya.

Untuk Azure Stack Hub 1908 atau yang lebih lama:

Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.7.2

Catatan

Modul Azure Stack Hub versi 1.7.1 bersifat breaking change. Untuk bermigrasi dari Azure Stack Hub 1.6.0, silakan lihat panduan migrasi.

Catatan

Pada komputer tanpa koneksi internet, kami sarankan untuk menjalankan cmdlet berikut untuk menonaktifkan pengumpulan data telemetri. Anda dapat mengalami penurunan kinerja cmdlet jika tidak menonaktifkan pengumpulan data telemetri. Hal ini hanya berlaku pada komputer tanpa koneksi internet

Disable-AzureRmDataCollection

Menambahkan paket ke stasiun kerja Anda

  1. Salin paket yang diunduh ke perangkat USB.

  2. Masuk ke stasiun kerja yang terputus dan salin paket dari perangkat USB ke lokasi di stasiun kerja.

  3. Secara manual lakukan bootstrap pada penyedia NuGet di stasiun kerja Anda yang terputus. Untuk instruksinya, lihat Melakukan bootstrap penyedia NuGet secara manual pada mesin yang tidak terhubung ke internet.

  4. Daftarkan lokasi ini sebagai repositori default dan instal modul Azure Resource Manager dan AzureStack dari repositori ini:

    # requires -Version 5
    # requires -RunAsAdministrator
    # requires -Module PowerShellGet
    # requires -Module PackageManagement
    
    $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
    $RepoName = "MyNuGetSource"
    
    Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
    
    Install-Module -Name AzureRM -Repository $RepoName
    
    Install-Module -Name AzureStack -Repository $RepoName
    

Mengonfirmasi penginstalan PowerShell

Konfirmasi penginstalan dengan menjalankan perintah berikut:

Get-Module -Name "Azure*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable

6. Mengonfigurasi PowerShell untuk menggunakan server proksi

Dalam skenario yang memerlukan server proksi untuk mengakses internet, terlebih dahulu Anda mengonfigurasi PowerShell untuk menggunakan server proksi yang ada:

  1. Buka prompt PowerShell yang ditinggikan.

  2. Jalankan perintah berikut:

    #To use Windows credentials for proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    
    #Alternatively, to prompt for separate credentials that can be used for #proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = Get-Credential
    

Masalah yang diketahui

Kesalahan get_SerializationSettings metode

  • Penyebab: Modul PowerShell Az dan modul PowerShell Azure Resource Manager tidak kompatibel.

    Kesalahan berikut menunjukkan bahwa modul Azure Resource Manager dan modul Az dimuat dalam sesi yang sama:

    >  Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does 
    not have an implementation.
    
  • Remediasi: Hapus instalan modul yang bertentangan.

    Jika Anda ingin menggunakan modul Azure Resource Manager, hapus instalan modul Az. Atau hapus instalan Azure Resource Manager jika Anda ingin menggunakan modul Az. Tutup sesi PowerShell Anda dan hapus instalan baik modul Az ataupun Azure Resource Manager.

    Anda dapat menemukan instruksinya di Menghapus instalan versi modul Azure Stack Hub PowerShell yang ada.

Kesalahan dilemparkan dengan NewAzureRMADServicePrincipal dan NewAzureRMAdApplication

  • Berlaku: Lingkungan Azure Stack yang menggunakan Azure Active Directory (Azure AD).

  • Penyebab: Azure Active Directory Graph memperkenalkan perubahan yang bersifat breaking change untuk membatasi IdentifierUri untuk aplikasi Active Directory menjadi subdomain dari domain terverifikasi di direktori. Sebelum perubahan, pembatasan ini hanya diterapkan untuk aplikasi multi-penyewa. Saat ini pembatasan ini juga berlaku untuk aplikasi penyewa tunggal. Perubahan akan mengakibatkan kesalahan berikut: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Remediasi: Anda dapat mengakali pembatasan ini dengan dua cara.

    • Anda harus menggunakan nama prinsipal layanan yang merupakan subdomain dari penyewa direktori. Misalnya, jika direktori itu adalah contoso.onmicrosoft.com, nama prinsipal layanannya harus dalam bentuk <foo>.contoso.onmicrosoft.com. Gunakan cmdlet berikut:

      NewAzureRMADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
      

      Untuk informasi selengkapnya mengenai identitas dan penggunaan perwakilan layanan dengan Azure Stack Hub, lihat Gambaran umum penyedia identitas untuk Azure Stack Hub.

    • Buat aplikasi Azure AD yang menyediakan IdentifierUri valid, lalu buat perwakilan layanan yang mengaitkan aplikasi tersebut menggunakan cmdlet berikut:

      $app=NewAzureRMAdApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      NewAzureRMADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Kejadian: Umum

Langkah berikutnya