在本文中,你可使用 Docker 创建容器,在其中运行使用各种接口所需的 PowerShell 版本。 你可以找到使用 AzureRM 模块和最新 Az 模块的说明。 AzureRM 要求使用基于 Windows 的容器。 Az 使用基于 Linux 的容器。
Docker 先决条件
安装 Docker
- 安装 Docker。 
- 在命令行程序(例如 PowerShell 或 Bash)中输入以下内容: - docker --version
使用 PowerShell 设置服务主体
若要使用 PowerShell 访问 Azure Stack Hub 中的资源,需要在 Microsoft Entra 租户中使用服务主体。 通过基于角色的访问控制 (RBAC) 来委派权限。 可能需要向云运营商请求服务主体。
- 若要设置服务主体,请按通过创建服务主体向应用程序授予对 Azure Stack Hub 资源的访问权限中的说明操作。 
- 记下应用程序 ID、机密、租户 ID 和对象 ID 供以后使用。 
在 Docker 中运行 PowerShell
在这些说明中,你将运行基于 Linux 的容器映像,该映像包含 PowerShell 和 Azure Stack Hub 所需的模块。
- 需要使用 Linux 容器运行 Docker。 运行 Docker 时,请切换到 Linux 容器。 
- 从已加入 Azure Stack Hub 所在的域的计算机运行 Docker。 如果使用的是 Azure Stack 开发工具包 (ASDK),则在远程计算机上安装 VPN。 
在 Linux 容器上安装 Azure Stack Hub Az 模块
- 在命令行中运行以下 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
- 可以将此 shell 用于 cmdlet 了。 通过登录并运行 - Test-AzureStack.ps1来测试 shell 连接性。- 首先创建服务主体凭据。 你将需要“机密”和“应用程序 ID” 。 在运行 - Test-AzureStack.ps1检查容器时,还需要“对象 ID”。 可能需要向云运营商请求服务主体。- 键入以下 cmdlet 来创建服务主体对象: - $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
- 通过从 Azure Stack Hub 实例运行具有以下值的以下脚本来连接到你的环境。 - 值 - 描述 - 环境的名称。 - Azure Stack Hub 环境的名称。 - 资源管理器终结点 - 资源管理器的 URL。 如果你不知道,请联系你的云运营商。 该 URL 应类似于 - https://management.region.domain.com。- 目录租户 ID - Azure Stack Hub 租户目录的 ID。 - 凭据 - 包含服务主体的对象。 在本例中为 - $pscredential。- ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential- PowerShell 返回帐户对象。 
- 通过在容器中运行 - Test-AzureStack.ps1脚本来测试环境。 指定服务主体“对象 ID”。 如果未指明对象 ID,脚本仍将运行,但它只是测试租户(用户)模块,无法测试需要管理员权限的模块。- ./Test-AzureStack.ps1 <Object ID>
后续步骤
- 阅读 Azure Stack Hub 中的 Azure Stack Hub PowerShell 概述。
- 了解 Azure Stack Hub 中的 PowerShell 的 API 配置文件。
- 安装 Azure Stack Hub PowerShell。
- 了解如何创建 Azure 资源管理器模板以实现云一致性。