連線 至 Azure Stack Edge 裝置上的 Azure Resource Manager

適用於:是適用於 Pro GPU SKUAzure Stack Edge Pro - GPU是適用於 Pro 2 SKUAzure Stack Edge Pro 2適用於 Pro R SKU 的是Azure Stack Edge Pro R適用於迷你 R SKU 的是Azure Stack Edge Mini R

Azure Resource Manager 提供管理層,可讓您建立、更新和刪除您 Azure 訂用帳戶中的資源。 Azure Stack Edge 裝置支援相同的 Azure Resource Manager API,可在本機訂用帳戶中建立、更新和刪除 VM。 此支援可讓您以與雲端一致的方式管理裝置。

本文說明如何使用 Azure PowerShell,透過 Azure Resource Manager 連線到 Azure Stack Edge 裝置上的本機 API。

Azure Stack Edge 裝置上的端點

下表摘要說明裝置上公開的各種端點、支援的通訊協定,以及存取這些端點的埠。 在整個文章中,您會發現這些端點的參考。

# 端點 支援的通訊協定 使用的埠 用於
1. Azure Resource Manager https 443 線上至 Azure Resource Manager 以進行自動化
2. 安全性令牌服務 https 443 透過存取和重新整理令牌進行驗證
3. Blob* https 443 透過 REST 連線到 Blob 記憶體

* 連線 Blob 記憶體端點不需要連線到 Azure Resource Manager。

連線 至 Azure Resource Manager 工作流程

使用 Azure Resource Manager 連線到裝置本機 API 的程式需要下列步驟:

步# 執行此步驟... .. 在此位置。
1. 設定 Azure Stack Edge 裝置 本機 Web UI
2. 建立及安裝憑證 Windows 用戶端/本機 Web UI
3. 檢閱及設定必要條件 Windows 用戶端
4. 在客戶端上設定 Azure PowerShell Windows 用戶端
5. 修改端點名稱解析的主機檔案 Windows 用戶端或 DNS 伺服器
6. 檢查端點名稱是否已解析 Windows 用戶端
7. 使用 Azure PowerShell Cmdlet 來驗證 Azure Resource Manager 的連線 Windows 用戶端

下列各節詳述連線到 Azure Resource Manager 中的每個上述步驟。

必要條件

開始之前,請確定用來透過 Azure Resource Manager 連線到裝置的用戶端是使用 TLS 1.2。 如需詳細資訊,請移至在 存取 Azure Stack Edge 裝置的 Windows 用戶端上設定 TLS 1.2。

步驟 1:設定 Azure Stack Edge 裝置

在 Azure Stack Edge 裝置的本機 Web UI 中執行下列步驟。

  1. 完成 Azure Stack Edge 裝置的網路設定。

    本機 Web UI [網络設定] 頁面

    記下裝置IP位址。 您稍後會使用此IP。

  2. [裝置 ] 頁面設定裝置名稱和 DNS 網域。 記下裝置名稱和 DNS 網域,因為您稍後會使用這些網域。

    本機 Web UI [裝置] 頁面

    重要

    裝置名稱、DNS 網域將用來形成公開的端點。 從本機 Web UI 中的 [裝置] 頁面使用 Azure Resource Manager 和 Blob 端點

步驟 2:建立及安裝憑證

憑證可確保您的通訊受信任。 在您的 Azure Stack Edge 裝置上,會自動產生自我簽署設備、Blob 和 Azure Resource Manager 憑證。 或者,您也可以引進自己的已簽署 Blob 和 Azure Resource Manager 憑證。

當您帶入自己的已簽署憑證時,也需要憑證的對應簽署鏈結。 針對簽署鏈結、Azure Resource Manager 和裝置上的 Blob 憑證,您需要用戶端電腦上的對應憑證,才能驗證和與裝置通訊。

若要連線到 Azure Resource Manager,您必須建立或取得簽署鏈結和端點憑證、在 Windows 用戶端上匯入這些憑證,最後在裝置上上傳這些憑證。

建立憑證

若僅供測試和開發使用,您可以使用 Windows PowerShell 在本機系統上建立憑證。 建立客戶端的憑證時,請遵循下列指導方針:

  1. 您必須先建立簽署鏈結的跟證書。 如需詳細資訊,請參閱建立簽署鏈結憑證的步驟

  2. 接下來,您可以建立 Azure Resource Manager 和 Blob 的端點憑證(選擇性)。 您可以從本機 Web UI 中的 [裝置] 頁面取得這些端點。 請參閱建立端點憑證的步驟

  3. 針對所有這些憑證,請確定主體名稱和主體替代名稱符合下列指導方針:

    類型 主體名稱(SN) 主體別名 (SAN) 主體名稱範例
    Azure Resource Manager management.<Device name>.<Dns Domain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    management.mydevice1.microsoftdatabox.com
    Blob 記憶體* *.blob.<Device name>.<Dns Domain> *.blob.< Device name>.<Dns Domain> *.blob.mydevice1.microsoftdatabox.com
    這兩個端點的多SAN 單一憑證 <Device name>.<dnsdomain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    *.blob.<Device name>.<Dns Domain>
    mydevice1.microsoftdatabox.com

* 不需要 Blob 記憶體才能連線到 Azure Resource Manager。 當您在裝置上建立本機記憶體帳戶時,這裡會列出它。

如需憑證的詳細資訊,請移至如何在 裝置上上傳憑證,並在存取裝置的用戶端上匯入憑證。

在裝置上上傳憑證

您在上一個步驟中建立的憑證位於用戶端的 [個人] 存放區中。 這些憑證必須在用戶端上匯出為適當的格式檔案,然後上傳至您的裝置。

  1. 跟證書必須匯出為具有.cer擴展名的 DER 格式檔案。 如需詳細步驟,請參閱 將憑證導出為.cer格式檔案

  2. 端點憑證必須匯出為 具有私鑰的 .pfx 檔案。 如需詳細步驟,請參閱 使用私鑰將憑證匯出為 .pfx 檔案。

  3. 接著,系統會使用本機 Web UI 中[憑證] 頁面上的 [+新增憑證] 選項,在裝置上上傳根和端點憑證。 若要上傳憑證,請遵循上傳憑證中的步驟。

在執行 Azure PowerShell 的用戶端上匯入憑證

您叫用 Azure Resource Manager API 的 Windows 用戶端需要與裝置建立信任。 為此,您在上一個步驟中建立的憑證必須在 Windows 用戶端上匯入適當的證書存儲。

  1. 您匯出為具有 .cer 延伸模組之 DER 格式的跟證書現在應該會匯入客戶端系統上的受信任跟證書授權單位。 如需詳細步驟,請參閱 將憑證匯入信任的跟證書授權單位存放區。

  2. 您匯出為 .pfx端點憑證必須匯出為 .cer。 接著,此 .cer 會匯入 您系統上的個人 證書存儲。 如需詳細步驟,請參閱 將憑證匯入個人存放區

步驟 3:在用戶端上安裝 PowerShell

您的 Windows 用戶端必須符合下列必要條件:

  1. 執行 Windows PowerShell 5.1。 您必須擁有 Windows PowerShell 5.1。 若要檢查系統上的 PowerShell 版本,請執行下列 Cmdlet:

    $PSVersionTable.PSVersion
    

    比較主要版本,並確定其為5.1或更新版本。

    如果您的版本已過時,請參閱升級現有的 Windows PowerShell

    如果您沒有 PowerShell 5.1,請遵循 安裝 Windows PowerShell

    如下所示的範例輸出。

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    Try the new cross-platform PowerShell https://aka.ms/pscore6
    PS C:\windows\system32> $PSVersionTable.PSVersion
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    5      1      19041  906
    
  2. 您可以存取 PowerShell 資源庫。

    以系統管理員身分執行 PowerShell。 確認 PowerShellGet 版本早於 2.2.3。 此外,請確認 是否已 PSGallery 註冊為存放庫。

    Install-Module PowerShellGet -MinimumVersion 2.2.3
    Import-Module -Name PackageManagement -ErrorAction Stop
    Get-PSRepository -Name "PSGallery"
    

    如下所示的範例輸出。

    PS C:\windows\system32> Install-Module PowerShellGet -MinimumVersion 2.2.3
    PS C:\windows\system32> Import-Module -Name PackageManagement -ErrorAction Stop
    PS C:\windows\system32> Get-PSRepository -Name "PSGallery"
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Trusted              https://www.powershellgallery.com/api/v2
    

如果您的存放庫不受信任,或您需要詳細資訊,請參閱驗證 PowerShell 資源庫 輔助功能

步驟 4:在用戶端上設定 Azure PowerShell

在與裝置搭配運作的用戶端上安裝 Azure PowerShell 模組。

  1. 以系統管理員身分執行 PowerShell。 您必須能夠存取 PowerShell 資源庫。

  2. 首先,請確認客戶端上沒有現有的 和 Az 模組版本AzureRM。 若要檢查,請執行下列命令:

    # Check existing versions of AzureRM modules
    Get-InstalledModule -Name AzureRM -AllVersions
    
    # Check existing versions of Az modules
    Get-InstalledModule -Name Az -AllVersions
    

    如果有現有的版本,請使用 Uninstall-Module Cmdlet 來卸載。 如需更多資訊,請參閱

  3. 若要從 PowerShell 資源庫 安裝必要的 Azure PowerShell 模組,請執行下列命令:

    • 如果您的用戶端使用 PowerShell Core 7.0 版或更新版本:

      # Install the Az.BootStrapper module. Select Yes when prompted to install NuGet.
      
      Install-Module -Name Az.BootStrapper
      
      # Install and import the API Version Profile into the current PowerShell session.
      
      Use-AzProfile -Profile 2020-09-01-hybrid -Force
      
      # Confirm the installation of PowerShell
      Get-Module -Name "Az*" -ListAvailable
      
    • 如果您的用戶端使用 PowerShell 5.1 或更新版本:

      #Install the Az module version 1.10.0
      
      Install-Module -Name Az -RequiredVersion 1.10.0
      
  4. 請確定您在安裝結束時執行的正確 Az 模組版本。

    如果您使用 PowerShell 7 或更新版本,下列範例輸出表示已成功安裝 Az 2.0.1 版(或更新版本)模組。

    
    PS C:\windows\system32> Install-Module -Name Az.BootStrapper
    PS C:\windows\system32> Use-AzProfile -Profile 2020-09-01-hybrid -Force
    Loading Profile 2020-09-01-hybrid
    PS C:\windows\system32> Get-Module -Name "Az*" -ListAvailable
    

    如果您使用PowerShell 5.1或更新版本,下列範例輸出表示已成功安裝 Az 1.10.0 版模組。

    PS C:\WINDOWS\system32> Get-InstalledModule -Name Az -AllVersions
    Version     Name     Repository     Description
    -------     ----     ----------     -----------
    1.10.0      Az       PSGallery      Mic...
    
    PS C:\WINDOWS\system32>
    

步驟 5:修改端點名稱解析的主機檔案

您現在會將裝置 IP 位址新增至:

  • 用戶端上的主機檔案, OR,
  • DNS 伺服器組態

重要

建議您修改端點名稱解析的 DNS 伺服器組態。

在您用來連線到裝置的 Windows 用戶端上,採取下列步驟:

  1. 以系統管理員身分啟動 記事本,然後開啟位於 C:\Windows\System32\Drivers\etc 的主機檔案。

    Windows 檔案總管主控檔案

  2. 將下列專案新增至主機檔案,並將 取代為裝置的適當值:

    <Device IP> login.<appliance name>.<DNS domain>
    <Device IP> management.<appliance name>.<DNS domain>
    <Device IP> <storage name>.blob.<appliance name>.<DNS domain>
    

    重要

    主機檔案中的項目應該完全符合所提供的專案,以便稍後的步驟連線到 Azure Resource Manager。 請確定這裡的 DNS 網域專案全都位於小寫中。 若要取得 和<DNS domain>的值<appliance name>,請移至裝置本機 UI 中的 [裝置] 頁面。

    您已在先前的步驟中從本機 Web UI 儲存裝置 IP。

    專案 login.<appliance name>.<DNS domain> 是安全性令牌服務 (STS) 的端點。 STS 負責建立、驗證、更新和取消安全性令牌。 安全性令牌服務可用來建立用於裝置與客戶端之間持續通訊的存取令牌和重新整理令牌。

    連線到 Azure Resource Manager 時,Blob 記憶體的端點是選擇性的。 透過記憶體帳戶將數據傳輸到 Azure 時,需要此端點。

  3. 如需參考,請使用下圖。 儲存 主機 檔案。

    裝載 記事本 中的檔案

步驟 6:驗證用戶端上的端點名稱解析

檢查端點名稱是否解析在您用來連線到裝置的用戶端上。

  1. 您可以使用 ping.exe 命令列公用程式來檢查端點名稱是否已解析。 指定IP位址時, ping 命令會傳回您要追蹤之電腦的TCP/IP主機名。

    -a 參數新增至命令行,如下列範例所示。 如果主機名是可傳回的,它也會在回復中傳回這個潛在的重要資訊。

    命令提示字元中的 Ping

步驟 7:設定 Azure Resource Manager 環境

設定 Azure Resource Manager 環境,並確認您的裝置透過 Azure Resource Manager 進行用戶端通訊正常運作。 針對此驗證採取下列步驟:

  1. Add-AzEnvironment使用 Cmdlet 進一步確保透過 Azure Resource Manager 的通訊正常運作,且 API 呼叫會透過 Azure Resource Manager 專用的埠 - 443。

    Cmdlet Add-AzEnvironment 會新增端點和元數據,讓 Azure Resource Manager Cmdlet 能夠與 Azure Resource Manager 的新實例連線。

    重要

    您在下列 Cmdlet 中提供的 Azure Resource Manager 端點 URL 會區分大小寫。 請確定端點 URL 全都以小寫顯示,並符合您在主機檔案中提供的內容。 如果案例不相符,您會看到錯誤。

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>/"
    

    範例輸出如下所示:

    PS C:\WINDOWS\system32> Add-AzEnvironment -Name AzASE -ARMEndpoint "https://management.myasegpu.wdshcsso.com/"
    
    Name  Resource Manager Url                      ActiveDirectory Authority
    ----  --------------------                      -------------------------
    AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
    
  2. 將環境設定為 Azure Stack Edge,並將要用於 Azure Resource Manager 呼叫的埠設定為 443。 您會以兩種方式定義環境:

    • 設定環境。 輸入以下命令:

      Set-AzEnvironment -Name <Environment Name>
      

      以下是範例輸出。

      PS C:\WINDOWS\system32> Set-AzEnvironment -Name AzASE
      
      Name  Resource Manager Url                      ActiveDirectory Authority
      ----  --------------------                      -------------------------
      AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
      

      如需詳細資訊,請移至 Set-AzEnvironment

    • 針對您執行的每個 Cmdlet 定義環境內嵌。 這可確保所有 API 呼叫都經過正確的環境。 根據預設,這些呼叫會經過 Azure 公用,但您想要這些呼叫通過您為 Azure Stack Edge 裝置設定的環境。

    • 如需如何切換 Az 環境的詳細資訊。

  3. 呼叫本機裝置 API 來驗證 Azure Resource Manager 的連線。

    1. 這些認證適用於本機計算機帳戶,而且僅用於API存取。

    2. 您可以透過 login-AzAccount 或 透過命令連線 Connect-AzAccount

      1. 若要登入,請輸入下列命令。

        $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        

        使用租用戶標識碼 c0257de7-538f-415c-993a-1b87a031879d,如同在此實例中硬式編碼。 使用下列使用者名稱和密碼。

        以下是 的 Connect-AzAccount範例輸出:

        PS C:\windows\system32> $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        PS C:\windows\system32> $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        PS C:\windows\system32> Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        
        Account       SubscriptionName   TenantId            Environment
        -------       ----------------   --------            -----------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzASE
        
        PS C:\windows\system32>
        

        登入的替代方式是使用 login-AzAccount Cmdlet。

        login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d

        以下是範例輸出。

        PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d
        
        Account               SubscriptionName              TenantId
        -------               ----------------              --------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a...
        
        PS C:\WINDOWS\system32>
        
  4. 若要確認裝置的連線正常運作,請使用 Get-AzResource 命令。 此命令應該會傳回裝置本機上存在的所有資源。

    以下是範例輸出。

    PS C:\WINDOWS\system32> Get-AzResource
    
    Name              : aseimagestorageaccount
    ResourceGroupName : ase-image-resourcegroup
    ResourceType      : Microsoft.Storage/storageaccounts
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ase-image-resourcegroup/providers/Microsoft.Storage/storageac
                        counts/aseimagestorageaccount
    Tags              :
    
    Name              : myaselinuxvmimage1
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Compute/images
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Compute/images/myaselinuxvmimage1
    Tags              :
    
    Name              : ASEVNET
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Network/virtualNetworks
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET
    Tags              :
    
    PS C:\WINDOWS\system32>
    

如果您遇到 Azure Resource Manager 連線的問題,請參閱 針對 Azure Resource Manager 問題 進行疑難解答以取得指引。

重要

Azure Resource Manager 的聯機會每隔 1.5 小時到期,或 Azure Stack Edge 裝置重新啟動時到期。 如果發生這種情況,您執行的任何 Cmdlet 都會將錯誤訊息傳回至您不再連線到 Azure 的效果。 您必須再次登入。

切換環境

您可能需要在兩個環境之間切換。

執行 Disconnect-AzAccount 命令以切換到不同的 AzEnvironment。 如果您使用 Set-AzEnvironmentLogin-AzAccount 不使用 Disconnect-AzAccount,則不會切換環境。

下列範例示範如何在兩個環境 AzASE1AzASE2之間切換。

首先,列出用戶端上的所有現有環境。

PS C:\WINDOWS\system32> Get-AzEnvironment​
Name    Resource Manager Url     ActiveDirectory Authority​
----    --------------------      -------------------------​
AzureChinaCloud   https://management.chinacloudapi.cn/                 https://login.chinacloudapi.cn/​
AzureCloud        https://management.azure.com/                        https://login.microsoftonline.com/​
AzureGermanCloud  https://management.microsoftazure.de/                https://login.microsoftonline.de/​
AzDBE1            https://management.HVTG1T2-Test.microsoftdatabox.com https://login.hvtg1t2-test.microsoftdatabox.com/adfs/​
AzureUSGovernment https://management.usgovcloudapi.net/                https://login.microsoftonline.us/​
AzDBE2            https://management.CVV4PX2-Test.microsoftdatabox.com https://login.cvv4px2-test.microsoftdatabox.com/adfs/​

接下來,取得您目前透過 Azure Resource Manager 連線的環境。

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE2​
Subscription       : ...​
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}​

您現在應該先中斷與目前環境的連接,再切換到其他環境。

PS C:\WINDOWS\system32> Disconnect-AzAccount​
​​
Id                    : EdgeArmUser@localhost​
Type                  : User​
Tenants               : {c0257de7-538f-415c-993a-1b87a031879d}​
AccessToken           :​
Credential            :​
TenantMap             : {}​
CertificateThumbprint :​
ExtendedProperties    : {[Subscriptions, ...], [Tenants, c0257de7-538f-415c-993a-1b87a031879d]}

登入其他環境。 範例輸出如下所示。

PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId​
​
Account     SubscriptionName   TenantId        Environment​
-------     ----------------   --------        -----------​
EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzDBE1

執行此 Cmdlet 以確認您已連線的環境。

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE1​
Subscription       : ...
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}

您現在已切換至預定的環境。