連線在 Azure Stack Edge 裝置上 Azure Resource Manager

適用于: 適用于 Pro gpu sku Azure Stack Edge Pro-適用于  Pro R sku 的 gpu 是 Azure Stack Edge Pro  迷你                           r sku Azure Stack Edge 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. https 443 透過 REST 連接到 Blob 儲存體

*連線 至 Azure Resource Manager 時,不需要連線至 blob 儲存體端點。

連接到 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. 首先,您必須建立簽署鏈的根憑證。 For more information, see See steps to Create signing chain certificates.

  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

* 連接到 Azure Resource Manager 不需要 Blob 儲存體。 如果您在裝置上建立本機儲存體帳戶,它會列在這裡。

如需有關憑證的詳細資訊,請參閱如何在裝置上 Upload 憑證,以及如何在存取裝置的用戶端上匯入憑證

Upload 裝置上的憑證

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

  1. 根憑證必須匯出為副檔名為 .cer 的 DER 格式檔案。 如需詳細步驟,請參閱 將憑證匯出為 .cer 格式檔案。

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

  3. 然後,會使用本機 web UI 中 [憑證] 頁面上的 [ + 新增憑證] 選項,在裝置上傳根目錄和端點憑證。 若要上傳憑證,請遵循Upload 憑證中的步驟。

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

您將叫用 Azure Resource Manager api 的 Windows 用戶端必須與裝置建立信任。 至此,您在上一個步驟中建立的憑證必須匯入到您的 Windows 用戶端到適當的憑證存放區中。

  1. 您現在應該在用戶端系統的受信任根憑證授權單位中,匯入您以副檔名為 .cer 的 DER 格式所匯出的根憑證。 如需詳細步驟,請參閱 將憑證匯入至受信任的根憑證授權單位存放區。

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

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

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

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

    $PSVersionTable.PSVersion
    

    比較 主要 版本,並確定它是5.0 或更新版本。

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

    如果您 ' 沒有 PowerShell 5.0,請遵循安裝 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. 先確認您的用戶端上沒有任何現有版本的 AzureRMAz 模組。 請執行下列命令進行檢查:

    # 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 module version 1.10.0 正在執行。

    如果您使用 PowerShell core 7.0 和更新版本,則下列範例輸出會指出已成功安裝 Az 版1.10.0 模組。

    
    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 version 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 位址新增至:

  • 用戶端上的 hosts 檔案,或
  • DNS 伺服器組態

重要

建議您針對端點名稱解析修改 DNS 伺服器設定。

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

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

    Windows 檔案總管 hosts 檔案

  2. 將下列項目新增至 hosts 檔案,並以您裝置的適當值加以取代:

    <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 網域專案都是小寫。 若要取得和的值 <appliance name> <DNS domain> ,請移至裝置本機 UI 中的 [ 裝置 ] 頁面。

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

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

    連接到 Azure Resource Manager 時,blob 儲存體的端點是選擇性的。 透過儲存體帳戶將資料傳輸至 Azure 時,需要此端點。

  3. 使用下圖以供參考。 儲存 hosts 檔案。

    記事本中的 hosts 檔案

步驟6:確認用戶端上的端點名稱解析

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

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

    -a 參數新增至命令列,如下列範例所示。 如果主機名稱是 returnable,它也會在回復中傳回這項可能有價值的資訊。

    命令提示字元中的 Ping

步驟7:設定 Azure Resource Manager 環境

設定 Azure Resource Manager 環境,並驗證您的裝置與透過 Azure Resource Manager 的用戶端通訊是否正常運作。 請採取下列步驟來進行這項驗證:

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

    Add-AzEnvironment Cmdlet 會新增端點和中繼資料,以讓 Azure Resource Manager Cmdlet 與 Azure Resource Manager 的新執行個體連線。

    重要

    您在下列 Cmdlet 中提供的 Azure Resource Manager 端點 URL 會區分大小寫。 請確定端點 URL 全部都是小寫,並符合您在 hosts 檔案中提供的 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...     
      

      For more information, go to Set-AzEnvironment.

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

    • 請參閱如何 切換 Az 環境的詳細資訊。

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

    1. 這些認證適用于本機電腦帳戶,且僅用於 API 存取。

    2. 您可以透過 login-AzAccount 或 via 命令來連接 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 ,則不會實際切換環境。

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

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

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 : {}

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

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

下一步