将市场项下载到 Azure Stack Hub

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

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

  • 离线或部分联网场景:需使用市场联合集成工具访问 Internet 来下载市场项。 然后,将下载内容传输到离线 Azure Stack Hub 安装中。 此场景使用 PowerShell。
  • 联网场景:需将 Azure Stack Hub 环境连接到 Internet。 使用 Azure Stack Hub 管理员门户查找和下载项。

有关可下载的市场项的完整列表,请参阅 Azure Stack Hub 的 Azure 市场项

注意

目录根据 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. 下载市场项之前,查看可用的存储空间。 稍后在选择要下载的项时,可将下载大小与可用存储容量进行比较。 如果容量有限,请考虑使用管理可用空间的选项。

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

    Review storage space in Azure Stack Hub administrator portal

  3. 打开 Azure Stack Hub 市场并连接到 Azure。 为此,请依次选择“市场管理”服务、“市场项”和“从 Azure 中添加”

    Add marketplace items from Azure

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

    Screenshot that shows the available versions of a Marketplace item.

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

    Add from 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 库下载 Azs.Syndication.Admin 模块:

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

注册 Azure Stack 后,可以忽略市场管理边栏选项卡上显示的以下消息,因为此消息与离线用例无关:

Marketplace management

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

每当在离线场景中下载市场项时,都请确保下载市场联合工具。 此工具经常发生更改,每次下载都应使用最新版本。

重要

建议使用 Az 模块而不是 AzureRM。 请参阅以下示例。

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

  2. 使用已用于注册 Azure Stack Hub 的 Azure 帐户登录到相应的 Azure 云和 AzureAD 目录租户。 若要添加该帐户,请在 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 环境相匹配的注册,然后选择“确定”。

    Screenshot that shows a list of all the Azure Stack registrations available in the selected subscription.

    此时应会看到另一个表格,其中列出了所有可供下载的市场项。 选择要下载的项,并记下版本。 可以按住 Ctrl 键选择多个映像。 Screenshot that shows another list of all the Azure Stack registrations available in the selected subscription.

    也可通过“添加条件”选项来筛选映像的列表。 Select Azure Stack Registrations

    做出选择后,选择“确定”。

  2. 已经选择要下载的市场项的 ID 会保存在 $products 变量中。 使用以下命令开始下载选定的项。 请将 destination folder path 替换为从 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 命名。 每个子文件夹包含市场项的下载内容。

    Marketplace download directory structure

  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-here 和 C:\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