使用 Azure CLI 管理資源並部署至 Azure Stack Hub

適用於:Azure Stack Hub 整合系統

遵循本文中的步驟從 Linux、Mac 和 Windows 用戶端平台設定 Azure 命令列介面 (CLI),來管理 Azure Stack Hub 資源。

針對 Azure CLI 進行準備

虛擬機器別名端點提供一個別名 (例如 「UbuntuLTS」或「Win2012Datacenter」)。在部署 VM 時,該別名會以單一參數參考映像發行者、供應項目、SKU 及版本。

下一節說明如何設定虛擬機器別名端點。

設定虛擬機器別名端點

您可以設定裝載 VM 別名檔案的可公開存取端點。 VM 別名檔案是為映像提供通用名稱的 JSON 檔案。 您會在部署 VM 作為 Azure CLI 參數時使用此名稱。

  1. 如果您發行自訂映像,請記下您在發行時所指定的發行者、供應項目、SKU 及版本資訊。 如果映像來自 Marketplace,則可以使用 Get-AzureVMImage cmdlet 來檢視資訊。

  2. 從 GitHub 下載範例檔案

  3. 在 Azure Stack Hub 中建立儲存體帳戶。 完成時,建立 Blob 容器。 將存取原則設定為「公用」。

  4. 將 JSON 檔案上傳到新的容器。 完成時,您可以檢視 Blob 的 URL。 選取 Blob 名稱,然後選取 Blob 屬性中的 URL。

安裝或升級 CLI

登入您的開發工作站並安裝 CLI。 Azure Stack Hub 需要有 Azure CLI 2.0 版或更新版本。 API 設定檔的最新版本需要目前的 CLI 版本。 您可使用安裝 Azure CLI 一文中所述的步驟來安裝 CLI。

若要確認安裝是否成功,請開啟終端機或命令提示字元視窗,並執行下列命令:

az --version

您應該會看到 Azure CLI 的號碼和您電腦上安裝的其他相依程式庫。

Azure Stack Hub Python 上的 Azure CLI 位置

Windows/Linux (Microsoft Entra 識別碼)

如果您使用的是Microsoft Entra識別碼作為身分識別管理服務,並在 Windows/Linux 電腦上使用 CLI,本節將逐步引導您設定 CLI。

連線至 Azure Stack Hub

  1. 執行 az cloud register 命令來註冊 Azure Stack Hub 環境。

  2. 註冊您的環境。 在執行 az cloud register 時使用下列參數:

    範例 描述
    環境名稱 AzureStackUser 針對使用者環境,請使用 AzureStackUser。 如果您是操作員,請指定 AzureStackAdmin
    Resource Manager 端點 https://management.local.azurestack.external 在整合式系統中的 ResourceManagerUrlhttps://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 文件 URI,其中包含 VM 映像別名。 如需詳細資訊,請參閱設定 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>
    
  3. 使用下列命令來設定作用中環境。

    az cloud set -n <environmentname>
    
  4. 將您的環境組態更新成使用 Azure Stack Hub 特定的 API 版本設定檔。 若要更新組態,請執行下列命令:

    az cloud update --profile 2019-03-01-hybrid
    
  5. 使用 az login 命令來登入 Azure Stack Hub 環境。 以使用者身分或以服務主體形式登入 Azure Stack Hub 環境。

    • 以「使用者」身分登入:

      您可以直接在 az login 命令內指定使用者名稱和密碼,或使用瀏覽器進行驗證。 如果您的帳戶已啟用多重要素驗證,則必須採用後者方式:

      az login -u <Active directory global 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 Federated Services (AD FS) 作為身分識別管理服務,並在 Windows / Linux 電腦上使用 CLI,本節可逐步引導您設定 CLI。

連線至 Azure Stack Hub

  1. 執行 az cloud register 命令來註冊 Azure Stack Hub 環境。

  2. 註冊您的環境。 在執行 az cloud register 時使用下列參數:

    範例 描述
    環境名稱 AzureStackUser 針對使用者環境,請使用 AzureStackUser。 如果您是操作員,請指定 AzureStackAdmin
    Resource Manager 端點 https://management.local.azurestack.external 在整合式系統中的 ResourceManagerUrlhttps://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 文件 URI,其中包含 VM 映像別名。 如需詳細資訊,請參閱設定 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>
    
  3. 使用下列命令來設定作用中環境。

    az cloud set -n <environmentname>
    
  4. 將您的環境組態更新成使用 Azure Stack Hub 特定的 API 版本設定檔。 若要更新組態,請執行下列命令:

    az cloud update --profile 2019-03-01-hybrid
    
  5. 使用 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 interactive 命令在 Azure 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 命令衍生的映像規格。

後續步驟