将市场项下载到 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 Stack Hub 市场最近添加、删除和更新的列表,请参阅 Azure Stack Hub 市场更改 一文。
注意
目录将因 Azure Stack Hub 系统连接到的云而异。 云环境由用于注册 Azure Stack Hub 的 Azure 订阅决定。
注意
还可以使用操作员访问工作站 (OAW) 访问特权终结点 (PEP)、支持场景的管理员门户和 Azure Stack Hub GitHub 工具。 有关详细信息,请参阅 Azure Stack Hub 操作员访问工作站。
通过连接的部署,您可以使用管理员门户下载商城商品。
先决条件
Azure Stack Hub 部署必须具有 Internet 连接,并且已注册到 Azure。
使用门户下载市场项
登录到 Azure Stack Hub 管理员门户。
下载市场项之前,请查看可用的存储空间。 稍后,选择要下载的项目时,可以将下载大小与可用存储容量进行比较。 如果容量有限,请考虑 管理可用空间的选项。
若要查看可用空间:在 区域管理中,选择要浏览的区域,然后转到 资源提供程序>存储:
打开 Azure Stack Hub 市场并连接到 Azure。 为此,请依次选择“市场管理”服务、“市场项”和“从 Azure 中添加”:
添加市场商品
每个行项还显示当前可用的版本。 如果某个市场项有多个可用版本,“版本”列会显示“多个”。 可以单击每个项目以查看其说明和其他信息,包括其下载大小:
如果项的版本显示为 多个,则可以选择该项,然后从生成的版本选择器下拉列表中选择特定版本。 请注意,由于各种属性(如 Azure Stack 版本或计费模型),Microsoft现在能够添加属性,这些属性阻止管理员下载与其 Azure Stack 不兼容的市场产品。 只有Microsoft才能添加以下属性:
选择所需的项,然后选择“下载”。 下载时间因网络连接而异。 下载完成后,可以 Azure Stack Hub 操作员或用户的身份部署新市场项。
若要部署下载的项目,请选择 + 创建资源,然后搜索新市场项的类别。 接下来,选择要开始部署过程的项。 该过程因不同的市场项而异。
当 Azure Stack Hub 具有有限或没有 Internet 连接时,可以使用 PowerShell 和 市场联合工具 将市场项下载到具有 Internet 连接的计算机。 然后将项传输到 Azure Stack Hub 环境。 在断开连接的环境中,无法使用 Azure Stack Hub 门户下载市场项。
市场分发工具也可以在联网的情境中使用。
此方案有两个部分:
- 第 1 部分:从市场项下载。 在联网的计算机上,配置 PowerShell,下载内容聚合工具,然后从 Azure 市场下载项目。
- 第 2 部分:上传并发布到 Azure Stack Hub 市场。 将下载的文件移动到 Azure Stack Hub 环境,然后将其发布到 Azure Stack Hub 市场。
先决条件
- 连接的环境(不必是 Azure Stack Hub)。 需要连接才能从 Azure 获取产品列表及其详细信息,并在本地下载所有产品。 完成此操作后,该过程的其余部分不需要 Internet 连接。 它创建之前下载的项目目录,供你在断开连接的环境中使用。
- 一个用于连接离线环境和传输所有必要项目的可移动媒体。
- 具有以下先决条件的断开连接的 Azure Stack Hub 环境:
- Azure Stack Hub 部署必须注册到 Azure。
- 具有 Internet 连接的计算机必须 Azure Stack Hub PowerShell 模块版本 1.2.11 或更高版本。 如果未安装,请安装 Azure Stack Hub 特定的 PowerShell 模块。
- 为了能够导入已下载的市场项,必须配置 Azure Stack Hub 操作员的 PowerShell 环境。
- .NET Framework 4.7 或更高版本。
使用以下命令从 PowerShell 库下载 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 已被弃用。 请参阅以下示例。
在具有 Internet 连接的计算机上,以管理员身份打开 PowerShell 控制台。
使用用于注册 Azure Stack Hub 的 Azure 帐户登录到相应的 Azure 云和 Entra ID 目录租户。 若要添加帐户,请在 PowerShell 中运行
Connect-AzAccount
:Connect-AzAccount -Environment AzureCloud -Tenant '<mydirectory>.onmicrosoft.com'
系统会提示输入 Azure 帐户凭据,可能需要使用双重身份验证,具体取决于帐户配置。
注意
如果会话过期,密码已更改,或者想要切换帐户,请在使用
Connect-AzAccount
登录之前运行以下 cmdlet:Remove-AzAccount -Scope Process
。如果有多个订阅,请运行以下命令以选择用于注册的订阅:
Get-AzSubscription -SubscriptionID 'Your Azure Subscription GUID' | Select-AzSubscription
如果您使用的是最新版本的 Azure Stack Hub,并且尚未在先决条件步骤中完成此操作,请下载最新版本的市场联合工具。
Install-Module -Name Azs.Syndication.Admin
Install-Module -Name Azs.Syndication.Admin -RequiredVersion 0.1.154-preview -AllowPrerelease
若要选择要下载的 VM 映像、扩展或解决方案模板等市场项,请运行以下命令:
$products = Select-AzsMarketplaceItem
此时会显示一个表,其中列出了所选订阅中可用的所有 Azure Stack 注册。 选择与要下载其市场项的 Azure Stack 环境相匹配的注册,然后选择“确定”。
此时您应该会看到第二个表格,其中列出了所有可供下载的 Marketplace 产品。 选择要下载的项,并记下版本。 可以按住 Ctrl 键来选择多个图像。
还可以使用 添加条件 选项筛选图像列表。
做出选择后,选择确定。
为下载选择的市场项的 ID 保存在
$products
变量中。 使用以下命令下载所选项目。 将目标文件夹路径替换为用于存储从 Azure 市场下载的文件的位置:$products | Export-AzsMarketplaceItem -RepositoryDir "Destination folder path in quotes"
下载所需的时间取决于项目的大小。 下载完成后,该项将出现在脚本中指定的文件夹中。 下载内容包括 VHD 文件(适用于虚拟机),或 .zip 文件(适用于虚拟机扩展和资源提供程序)。 它还可能包含
.azpkg
格式的库包,这是一个 .zip 文件。如果下载失败,可以通过重新运行以下 PowerShell cmdlet 来重试:
$products | Export-AzsMarketplaceItem -RepositoryDir "Destination folder path in quotes"
还应在本地导出 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 市场
你必须在本地将以前下载的文件移动到已连接到 Azure Stack Hub 环境的计算机。 市场联合工具还必须可用于 Azure Stack Hub 环境,因为需要使用该工具来执行导入操作。
下图显示了文件夹结构示例。 D:\downloadfolder 包含所有已下载的市场项。 每个子文件夹都是一个市场项目(例如,microsoft.custom-script-linux-arm-2.0.3),并且以产品 ID 命名。 每个子文件夹包含市场项的下载内容。
按照 使用 PowerShell 连接到 Azure Stack Hub 中的说明配置 Azure Stack Hub 操作员 PowerShell 会话。
使用对“默认提供程序订阅”拥有所有者访问权限的标识登录到 Azure Stack Hub。
复制文件夹的名称;例如,microsoft.dsc-arm-2.77.0,并创建具有该名称的文件夹。
将下载的文件夹移动到该文件夹。 此时,你具有 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。
导入联合模块,然后通过运行以下 cmdlet 启动市场联合工具:
Import-AzsMarketplaceItem -RepositoryDir "C:\microsoft.dsc-arm-2.77.0"
cmdlet 成功完成后,市场项应在 Azure Stack Hub 市场中可用。
后续步骤
使用 PowerShell 连接到 Azure Stack Hub