使用 Docker 运行适用于 Azure Stack Hub 的 PowerShell
在本文中,你可使用 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 资源管理器模板以实现云一致性。