适用于:Azure Stack Hub 集成系统
按照本文中的步骤设置 Azure Command-Line 接口 (CLI),以便从 Linux、Mac 和 Windows 客户端平台管理 Azure Stack Hub 资源。
准备 Azure CLI
虚拟机别名终结点 提供别名,例如“UbuntuLTS”或“Win2012Datacenter”。此别名在部署 VM 时将映像发布者、产品/服务、SKU 和版本引用为单个参数。
以下部分介绍如何设置虚拟机别名终结点。
设置虚拟机别名终结点
可以设置一个可公开访问的终结点,用于托管 VM 别名文件。 VM 别名文件是一个 JSON 文件,它为映像提供公用名。 在使用 Azure CLI 部署虚拟机时,请使用该名称作为参数。
如果发布自定义映像,请记下发布期间指定的发布者、产品/服务、SKU 和版本信息。 如果它是来自市场的映像,则可以使用
Get-AzureVMImagecmdlet 查看信息。从 GitHub 下载 示例文件。
在 Azure Stack Hub 中创建存储帐户。 完成后,创建 Blob 容器。 将访问策略设置为“public”。
将 JSON 文件上传到新容器。 完成后,可以查看 Blob 的 URL。 选择 Blob 名称,然后从 Blob 属性中选择 URL。
安装或升级 CLI
登录到开发工作站并安装 CLI。 Azure Stack Hub 需要版本 2.0 或更高版本的 Azure CLI。 最新版本的 API 配置文件需要 CLI 的当前版本。 使用安装 Azure CLI 一文中所述的步骤安装 CLI。
若要验证安装是否成功,请打开终端或命令提示符窗口并运行以下命令:
az --version
应会看到计算机上安装的 Azure CLI 版本和其他依赖库。
Windows/Linux (Microsoft Entra ID)
如果Microsoft Entra ID 用作标识管理服务,并在 Windows/Linux 计算机上使用 CLI,本部分将指导你设置 CLI。
连接到 Azure Stack Hub
通过运行
az cloud register命令注册 Azure Stack Hub 环境。注册环境。 运行
az cloud register时使用以下参数:价值 示例: DESCRIPTION 环境名称 AzureStackUser 对于用户环境,请使用 AzureStackUser。 如果您是操作人员,请指定AzureStackAdmin。资源管理器端点 https://management.local.azurestack.external集成系统中的 ResourceManagerUrl 是: https://management.<region>.<fqdn>/如果对集成系统终结点有疑问,请联系云作员。存储终结点 local.azurestack.external 对于集成系统,请使用系统的终结点。 KeyVault 后缀 .vault.local.azurestack.external 对于集成系统,请使用系统的终结点。 VM 映像别名文档终结点- https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json 包含 VM 映像别名的文档的 URI。 有关详细信息,请参阅 设置 VM 别名终结点。 az cloud register -n <environmentname> --endpoint-resource-manager "https://management.local.azurestack.external" --suffix-storage-endpoint "local.azurestack.external" --suffix-keyvault-dns ".vault.local.azurestack.external" --endpoint-vm-image-alias-doc <URI of the document which contains VM image aliases>使用以下命令设置活动环境。
az cloud set -n <environmentname>将环境配置更新为使用 Azure Stack Hub 特定的 API 版本配置文件。 若要更新配置,请运行以下命令:
az cloud update --profile 2019-03-01-hybrid使用
az login命令登录到 Azure Stack Hub 环境。 以用户或服务主体身份登录到 Azure Stack Hub 环境。以 用户身份登录:
可以直接在
az login命令中指定用户名和密码,或使用浏览器进行身份验证。 如果帐户启用了多重身份验证,则必须执行后者:az login -u <Microsoft Entra administrator or user account. For example: username@<aadtenant>.onmicrosoft.com> --tenant <Azure Active Directory Tenant name. For example: myazurestack.onmicrosoft.com>注释
如果用户帐户已启用多重身份验证,请使用
az login该命令而不提供-u参数。 运行此命令可提供一个 URL 和一个必须用于进行身份验证的代码。以 服务主体身份登录:
在登录之前, 请通过 Azure 门户或 CLI 创建服务主体 并为其分配角色。 现在,使用以下命令登录:
az login --tenant <Azure Active Directory Tenant name. For example: myazurestack.onmicrosoft.com> --service-principal -u <Application Id of the Service Principal> -p <Key generated for the Service Principal>
测试连接性
设置所有内容后,使用 CLI 在 Azure Stack Hub 中创建资源。 例如,可以为应用创建资源组并添加 VM。 使用以下命令创建名为“MyResourceGroup”的资源组:
az group create -n MyResourceGroup -l local
如果资源组已成功创建,则上一个命令输出新创建的资源的以下属性:
Windows/Linux (AD FS)
如果使用的是 Active Directory 联合服务(AD FS)作为标识管理服务,并在 Windows/Linux 计算机上使用 CLI,本部分将指导你设置 CLI。
连接到 Azure Stack Hub
通过运行
az cloud register命令注册 Azure Stack Hub 环境。注册环境。 运行
az cloud register时使用以下参数:价值 示例: DESCRIPTION 环境名称 AzureStackUser 对于用户环境,请使用 AzureStackUser。 如果您是操作人员,请指定AzureStackAdmin。资源管理器端点 https://management.local.azurestack.external集成系统中的 ResourceManagerUrl 是: https://management.<region>.<fqdn>/如果对集成系统终结点有疑问,请联系云作员。存储终结点 local.azurestack.external 对于集成系统,请使用系统的终结点。 KeyVault 后缀 .vault.local.azurestack.external 对于集成系统,请使用系统的终结点。 VM 映像别名文档终结点- https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json 包含 VM 映像别名的文档的 URI。 有关详细信息,请参阅 设置 VM 别名终结点。 az cloud register -n <environmentname> --endpoint-resource-manager "https://management.local.azurestack.external" --suffix-storage-endpoint "local.azurestack.external" --suffix-keyvault-dns ".vault.local.azurestack.external" --endpoint-vm-image-alias-doc <URI of the document which contains VM image aliases>使用以下命令设置活动环境。
az cloud set -n <environmentname>将环境配置更新为使用 Azure Stack Hub 特定的 API 版本配置文件。 若要更新配置,请运行以下命令:
az cloud update --profile 2019-03-01-hybrid使用
az login命令登录到 Azure Stack Hub 环境。 可以以用户或服务主体身份登录到 Azure Stack Hub 环境。以 用户身份登录:
可以直接在
az login命令中指定用户名和密码,或使用浏览器进行身份验证。 如果帐户启用了多重身份验证,则必须执行后者:az cloud register -n <environmentname> --endpoint-resource-manager "https://management.local.azurestack.external" --suffix-storage-endpoint "local.azurestack.external" --suffix-keyvault-dns ".vault.local.azurestack.external" --endpoint-vm-image-alias-doc <URI of the document which contains VM image aliases> --profile "2019-03-01-hybrid"注释
如果用户帐户已启用多重身份验证,请使用
az login该命令而不提供-u参数。 运行此命令可提供一个 URL 和一个必须用于进行身份验证的代码。以 服务主体身份登录:
准备要用于服务主体登录的 .pem 文件。
在创建主体的客户端计算机上,使用位于
cert:\CurrentUser\My的私钥将服务主体证书导出为 pfx。 证书名称与主体同名。将 pfx 转换为 pem(使用 OpenSSL 实用工具)。
登录到 CLI:
az login --service-principal \ -u <Client ID from the Service Principal details> \ -p <Certificate's fully qualified name, such as, C:\certs\spn.pem> --tenant <Tenant ID> \ --debug
测试连接性
设置所有内容后,使用 CLI 在 Azure Stack Hub 中创建资源。 例如,可以为应用创建资源组并添加 VM。 使用以下命令创建名为“MyResourceGroup”的资源组:
az group create -n MyResourceGroup -l local
如果资源组已成功创建,则上一个命令输出新创建的资源的以下属性:
已知问题
在 Azure Stack Hub 中使用 CLI 时存在已知问题:
- CLI 交互模式。 例如,
az interactiveAzure Stack Hub 中尚不支持该命令。 - 若要获取 Azure Stack Hub 中可用的 VM 映像列表,请使用
az vm image list --all命令而不是az vm image list命令。 指定--all选项可确保响应仅返回 Azure Stack Hub 环境中可用的映像。 - Azure 中提供的 VM 映像别名可能不适用于 Azure Stack Hub。 使用 VM 映像时,必须使用整个 URN 参数(Canonical:UbuntuServer:14.04.3-LTS:1.0.0)而不是映像别名。 此 URN 必须与从
az vm images list命令派生的图像规范匹配。