共用方式為


使用 Docker 執行適用於 Azure Stack Hub 的 PowerShell

在本文中,您可以使用 Docker 來建立容器,以執行使用各種介面所需的 PowerShell 版本。 您可以找到使用 AzureRM 模組和最新 Az 模組的指示。 AzureRM 需要以 Windows 為基礎的容器。 Az 使用以Linux為基礎的容器。

Docker 先決條件

安裝 Docker

  1. 安裝 Docker

  2. 在命令行程式中,例如 PowerShell 或 Bash,輸入:

    docker --version
    

設定使用 PowerShell 的服務主體

若要使用 PowerShell 存取 Azure Stack Hub 中的資源,您需要 Microsoft Entra 租使用者中的服務主體。 您可以使用使用者角色型存取控制 (RBAC) 委派許可權。 您可能需要向雲端操作員要求服務主體。

  1. 若要設定服務主體,請遵循建立服務主體,讓應用程式存取 Azure Stack Hub 資源中的指示。

  2. 請記下應用程式標識碼、秘密、租使用者標識碼和物件識別符,以供稍後使用。

在 Docker 中執行 PowerShell

在這些指示中,您將執行以 Linux 為基礎的容器映射,其中包含 PowerShell 和 Azure Stack Hub 的必要模組。

  1. 您必須使用 Linux 容器來執行 Docker。 當您執行 Docker 時,請切換至 Linux 容器。

  2. 從已加入 Azure Stack Hub 相同網域的電腦執行 Docker。 如果您使用 Azure Stack 開發工具套件 (ASDK),則必須 在遠端電腦上安裝 VPN。

在 Linux 容器上安裝 Azure Stack Hub Az 模組

  1. 從命令行執行下列 Docker 命令,以在 Ubuntu 容器中執行 PowerShell:

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

    您可以執行 Ubuntu 或 Debian。 您可以在 GitHub 存放庫 azurestack-powershell 中找到下列 Docker 檔案。 如需 Docker 檔案的最新變更,請參閱 GitHub 存放庫。 每個OS都會標記。 將標記取代為所需OS的標籤取代冒號後面的區段。

    Linux Docker 影像
    Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
  2. 殼層已準備好用於您的 Cmdlet。 登入並執行 Test-AzureStack.ps1,以測試殼層連線能力。

    首先,建立您的服務主體認證。 您將需要 秘密應用程式識別碼。 執行 時Test-AzureStack.ps1,您也需要物件識別碼來檢查容器。 您可能需要向雲端操作員要求服務主體。

    輸入下列 Cmdlet 以建立服務主體物件:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. 使用 Azure Stack Hub 實例的下列值執行下列腳本,以 連線 至您的環境。

    Description
    環境的名稱。 Azure Stack Hub 環境的名稱。
    Resource Manager 端點 Resource Manager 的 URL。 如果您不知道雲端操作員,請連絡您的雲端操作員。 其看來很像 https://management.region.domain.com
    目錄租用戶標識碼 Azure Stack Hub 租使用者目錄的標識碼。
    認證 物件,包含您的服務主體。 在此情況 $pscredential
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell 會傳回您的帳戶物件。

  4. 在容器中執行腳本來 Test-AzureStack.ps1 測試您的環境。 指定服務主體 對象識別碼。 如果您未指出物件標識符,腳本仍會執行,但只會測試租使用者(使用者)模組,並在需要系統管理員許可權的模組上失敗。

    ./Test-AzureStack.ps1 <Object ID>
    

下一步