Menggunakan Docker untuk menjalankan PowerShell untuk Azure Stack Hub

Di artikel ini, Anda dapat menggunakan Docker untuk membuat kontainer untuk menjalankan versi PowerShell yang diperlukan dalam bekerja dengan menggunakan berbagai antarmuka. Anda dapat menemukan petunjuk dalam menggunakan modul AzureRM dan modul Az yang terbaru. AzureRM membutuhkan kontainer berbasis Windows. Az menggunakan kontainer berbasis Linux.

Prasyarat Docker

Memasang Docker

  1. Menginstal Docker.

  2. Dalam program baris perintah seperti PowerShell atau Bash, masukkan:

    docker --version
    

Menyiapkan perwakilan layanan untuk menggunakan PowerShell

Untuk menggunakan PowerShell guna mengakses sumber daya di Azure Stack Hub, Anda memerlukan perwakilan layanan di penyewa Azure Active Directory (Azure AD) Anda. Anda mendelegasikan izin dengan kontrol akses berbasis peran pengguna (RBAC). Anda mungkin perlu meminta perwakilan layanan dari operator cloud Anda.

  1. Untuk menyiapkan perwakilan layanan Anda, ikuti petunjuk di Memberikan akses aplikasi ke sumber daya Azure Stack Hub dengan membuat perwakilan layanan.

  2. Catat ID aplikasi, rahasia, ID penyewa Anda, dan ID objek untuk digunakan nanti.

Menjalankan PowerShell di Docker

Dalam instruksi ini, Anda akan menjalankan citra kontainer berbasis Linux yang berisi PowerShell dan modul yang diperlukan untuk Azure Stack Hub.

  1. Anda perlu menjalankan Docker dengan menggunakan kontainer Linux. Saat Anda menjalankan Docker, beralihlah ke kontainer Linux.

  2. Jalankan Docker dari mesin yang bergabung ke domain yang sama dengan Azure Stack Hub. Jika Anda menggunakan Azure Stack Development Kit (ASDK), Anda perlu menginstal VPN di mesin jarak jauh Anda.

Menginstal modul Az Azure Stack Hub pada kontainer Linux

  1. Dari baris perintah Anda, jalankan perintah Docker berikut untuk menjalankan PowerShell dalam kontainer Ubuntu:

    docker run -it mcr.microsoft.com/azurestack/powershell
    

    Anda dapat menjalankan Ubuntu, Debian, atau Centos. Anda dapat menemukan file Docker berikut di repositori GitHub, azurestack-powershell. Lihat repositori GitHub untuk perubahan terbaru pada file Docker. Setiap OS diberikan tag. Ganti tag, bagian setelah titik dua dengan tag untuk OS yang diinginkan.

    Linux gambar Docker
    Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
    CentOS docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. Shell sudah siap untuk cmdlet Anda. Uji konektivitas shell Anda dengan masuk dan kemudian menjalankan Test-AzureStack.ps1.

    Pertama, buat info masuk perwakilan layanan Anda. Anda akan membutuhkan rahasia dan ID aplikasi. Anda juga akan memerlukan ID objek saat menjalankan untuk memeriksa kontainer Anda. Anda mungkin perlu meminta perwakilan layanan dari operator cloud Anda.

    Ketik cmdlet berikut untuk membuat objek perwakilan layanan:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Sambungkan ke lingkungan Anda dengan menjalankan skrip berikut dengan nilai berikut dari instans Azure Stack Hub Anda.

    Nilai Deskripsi
    Nama lingkungan. Nama lingkungan Azure Stack Hub Anda.
    Titik akhir Resource Manager URL Resource Manager. Hubungi operator cloud Anda jika Anda tidak mengetahuinya. Respons akan terlihat seperti ini https://management.region.domain.com.
    ID Penyewa Direktori ID direktori penyewa Azure Stack Hub Anda.
    Informasi masuk Objek yang berisi perwakilan layanan Anda. Dalam kasus ini, $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell menampilkan objek akun Anda.

  4. Uji lingkungan Anda dengan menjalankan skrip Test-AzureStack.ps1 dalam kontainer. Tentukan ID objek perwakilan layanan. Jika Anda tidak menunjukkan ID objek, maka skrip akan tetap berjalan, tetapi hanya akan menguji modul penyewa (pengguna) dan akan gagal pada modul yang memerlukan izin administrator.

    ./Test-AzureStack.ps1 <Object ID>
    

Langkah berikutnya