将 Marketplace 项目下载到 Azure Stack Hub

云操作员可从市场下载项到 Azure Stack Hub,并使这些项可供在 Azure Stack Hub 环境中的所有用户使用。 可以选择的项来自精心挑选的 Azure 市场项列表,这些项经过预先测试和支持,可与 Azure Stack Hub 配合使用。 其他项会不断地添加到此列表中,因此请不时地返回查看新内容。

有两种下载市场产品的场景:

  • 断开连接或部分连接的场景:需要使用 Marketplace 联合工具连接到互联网以下载 Marketplace 项目。 然后,将下载内容传输到离线 Azure Stack Hub 安装中。 此方案使用 PowerShell。
  • 联网场景:需将 Azure Stack Hub 环境连接到 Internet。 使用 Azure Stack Hub 管理员门户查找和下载项。

要获取可下载的 Azure Stack Hub 的 Azure 市场条目的完整列表,请参阅 Azure Marketplace items for Azure Stack Hub

注释

目录将因 Azure Stack Hub 系统连接到的云而异。 云环境由用于注册 Azure Stack Hub 的 Azure 订阅决定。

注释

还可以使用操作员访问工作站 (OAW) 访问特权终结点 (PEP)、支持场景的管理员门户和 Azure Stack Hub GitHub 工具。 有关详细信息,请参阅 Azure Stack Hub 操作员访问工作站

通过连接的部署,您可以使用管理员门户下载商城商品。

先决条件

Azure Stack Hub 部署必须具有 Internet 连接,并且已注册到 Azure。

使用门户网站下载市场商品

  1. 登录到 Azure Stack Hub 管理员门户。

  2. 下载市场项之前,请查看可用的存储空间。 稍后,选择要下载的项目时,可以将下载大小与可用存储容量进行比较。 如果容量有限,请考虑使用管理可用空间的选项。

    若要查看可用空间:在 区域管理中,选择要浏览的区域,然后转到 资源提供程序>存储

    在 Azure Stack Hub 管理员门户中查看存储空间

  3. 打开 Azure Stack Hub 市场并连接到 Azure。 要做到这一点,请选择“市场管理”服务,然后选择“市场项”,最后选择“从 Azure 中添加”

    从 Azure 添加市场项

  4. 每个行项还显示当前可用的版本。 如果某个市场项有多个可用版本,“版本”列会显示“多个”。 可以单击每个项目以查看其说明和其他信息,包括其下载大小:

    屏幕截图,显示市场项的可用版本。

  5. 如果某个项的版本显示为“多个”,你可以选择该项,然后从显示的版本选择器下拉列表中选择特定的版本。 请注意,Microsoft 现在可以通过添加属性来阻止管理员下载由于各种属性(例如,Azure Stack 版本或计费模型)而与其 Azure Stack 不兼容的市场产品。 只有 Microsoft 才能添加以下属性:

    从 Azure 中添加

  6. 选择所需的项,然后选择“下载”。 下载时间因网络连接而异。 下载完成后,可以 Azure Stack Hub 操作员或用户的身份部署新市场项。

  7. 若要部署下载的项目,请选择 + 创建资源,然后搜索新市场项的类别。 接下来,选择该项以开始部署过程。 该过程根据市场项的不同而异。

当 Azure Stack Hub 具有有限或没有 Internet 连接时,可以使用 PowerShell 和 市场联合工具 将市场项下载到具有 Internet 连接的计算机。 然后,将这些项传输到 Azure Stack Hub 环境。 在断开连接的环境中,无法使用 Azure Stack Hub 门户下载市场项。

市场分发工具也可以在联网的情境中使用。

此方案有两个部分:

  • 第 1 部分:从市场项下载。 在具有 Internet 访问权限的计算机上,配置 PowerShell,下载聚合工具,然后从 Azure 市场下载商品。
  • 第 2 部分:上传并发布到 Azure Stack Hub 市场。 将下载的文件移动到 Azure Stack Hub 环境,然后将其发布到 Azure Stack Hub 市场。

先决条件

  • 联网环境(不必是 Azure Stack Hub)。 需要连接才能从 Azure 获取产品列表及其详细信息,并在本地下载所有产品。 完成此操作后,该过程的其余部分不需要 Internet 连接。 它创建之前下载的项目目录,供你在断开连接的环境中使用。
  • 一个用于连接离线环境和传输所有必要项目的可移动媒体。
  • 具有以下先决条件的断开连接的 Azure Stack Hub 环境:

使用以下命令从 PowerShell Gallery 中下载 Azs.Syndication.Admin 模块:

Install-Module -Name Azs.Syndication.Admin
Install-Module -Name Azs.Syndication.Admin -RequiredVersion 0.1.154-preview -AllowPrerelease

注册 Azure Stack Hub 后,可以忽略市场管理边栏选项卡上显示的以下消息,因为这与断开连接的用例无关:

市场管理

使用市场联合工具下载市场项

在每次断开连接的情况下下载市场条目时,请务必下载市场同步工具。 此工具经常发生更改,每次下载都应使用最新版本。

重要

建议使用 Az 模块而不是 AzureRM,因为 AzureRM 已被弃用。 请参阅以下示例。

  1. 在具有 Internet 连接的计算机上,以管理员身份打开 PowerShell 控制台。

  2. 使用用于注册 Azure Stack Hub 的 Azure 帐户登录到相应的 Azure 云和 Entra ID 目录租户。 若要添加帐户,请在 PowerShell 中运行 Connect-AzAccount

    Connect-AzAccount -Environment AzureChinaCloud -Tenant '<mydirectory>.partner.onmschina.cn'
    

    系统会提示输入 Azure 帐户凭据,可能需要使用双重身份验证,具体取决于帐户配置。

    注释

    如果会话过期、密码已更改或你需要切换帐户,请在使用 Connect-AzAccount 登录之前先运行以下 cmdlet:Remove-AzAccount -Scope Process

  3. 如果有多个订阅,请运行以下命令以选择用于注册的订阅:

    Get-AzSubscription -SubscriptionID 'Your Azure Subscription GUID' | Select-AzSubscription
    
  4. 如果您使用的是最新版本的 Azure Stack Hub,并且尚未在先决条件步骤中完成此操作,请下载最新版本的市场联合工具。

Install-Module -Name Azs.Syndication.Admin
Install-Module -Name Azs.Syndication.Admin -RequiredVersion 0.1.154-preview -AllowPrerelease
  1. 若要选择要下载的 VM 映像、扩展或解决方案模板等市场项,请运行以下命令:

    $products = Select-AzsMarketplaceItem
    

    此时会显示一个表,其中列出了所选订阅中可用的所有 Azure Stack 注册。 选择与要下载其市场项的 Azure Stack 环境相匹配的注册,然后选择“确定”。

    屏幕截图,其中显示了所选订阅中可用的所有 Azure Stack 注册的列表。

    现在您应该能看到第二个表格,其中列出了所有可供下载的市场商品。 选择要下载的项,并记下版本。 可以按住 Ctrl 键来选择多个图像。

    屏幕截图,其中显示了所选订阅中可用的所有 Azure Stack 注册的另一个列表。

    还可以使用 添加条件 选项筛选图像列表。

    选择 Azure Stack 注册

    做出选择后,选择确定

  2. 为下载选择的市场项的 ID 保存在 $products 变量中。 使用以下命令下载所选项目。 将目标文件夹路径替换为用于存储从 Azure 市场下载的文件的位置:

    $products | Export-AzsMarketplaceItem  -RepositoryDir "Destination folder path in quotes"
    
  3. 下载所需的时间取决于项目的大小。 下载完成后,该项将出现在脚本中指定的文件夹中。 下载内容包括 VHD 文件(适用于虚拟机),或 .zip 文件(适用于虚拟机扩展和资源提供程序)。 它还可能包含 .azpkg 格式的图库包,这是一个 .zip 文件。

  4. 如果下载失败,可以通过重新运行以下 PowerShell cmdlet 来重试:

    $products | Export-AzsMarketplaceItem  -RepositoryDir "Destination folder path in quotes"
    
  5. 还应在本地导出 Azs.Syndication.Admin 模块,以便将其复制到从中将市场项导入到 Azure Stack Hub 的计算机。

    注释

    导出此模块的目标文件夹应不同于导出市场项的位置。

    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name Azs.Syndication.Admin -Path "Destination folder path in quotes" -Force
    

使用 PowerShell 导入下载内容并发布到 Azure Stack Hub 市场

  1. 你必须在本地将以前下载的文件移动到已连接到 Azure Stack Hub 环境的计算机。 市场联合工具还必须可用于 Azure Stack Hub 环境,因为需要使用该工具来执行导入操作。

    下图显示了文件夹结构示例。 D:\downloadfolder 包含所有已下载的市场项。 每个子文件夹都是一个市场项目(例如,microsoft.custom-script-linux-arm-2.0.3),并以产品 ID 命名。 每个子文件夹内都有市场物品的下载内容。

    市场下载目录结构

  2. 按照使用 PowerShell 连接到 Azure Stack Hub 中的说明配置 Azure Stack Hub 操作员 PowerShell 会话。

  3. 使用对“默认提供程序订阅”拥有所有者访问权限的标识登录到 Azure Stack Hub。

  4. 复制文件夹的名称;例如,microsoft.dsc-arm-2.77.0,并创建具有该名称的文件夹。

  5. 将下载的文件夹移动到该文件夹。 此时,你具有 C:\microsoft.dsc-arm-2.77.0\microsoft.dsc-arm-2.77.0\original-sub-folders-are-hereC:\microsoft.dsc-arm-2.77.0\microsoft.dsc-arm-2.77.0\productDetails.json

  6. 导入联合模块,然后通过运行以下 cmdlet 启动市场联合工具:

    Import-AzsMarketplaceItem -RepositoryDir "C:\microsoft.dsc-arm-2.77.0"
    
  7. cmdlet 成功完成后,市场项应在 Azure Stack Hub 市场中可用。

后续步骤

使用 PowerShell 连接到 Azure Stack Hub