連線到您 Azure Stack Edge 裝置上的 Azure Resource Manager
適用於: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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 上採取下列步驟。
為您的 Azure Stack Edge 裝置完成網路設定。
請記下裝置的 IP 位址, 您稍後會使用此IP。
在 [裝置] 頁面設定裝置名稱和 DNS 網域。 記下裝置名稱和 DNS 網域,因為您稍後會使用這些網域。
重要
裝置名稱和 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 在您的本地系統上建立憑證。 為用戶端建立憑證時,請遵循以下指導方針:
首先,您必須為簽署鏈結建立根憑證。 如需詳細資訊,請參閱建立簽署鏈結憑證相關步驟。
接著,您可以為 Azure Resource Manager 和 Blob (選擇性) 建立端點憑證。 您可以從本機 Web UI 的 [裝置] 頁面取得這些端點。 請參閱建立端點憑證相關步驟。
針對所有這些憑證,請確認主體名稱和主體別名符合下列指導方針:
類型 主體名稱 (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。 當您在裝置上建立本機記憶體帳戶時,這裡會列出它。
如需憑證的詳細資訊,請移至如何用您的裝置上傳憑證,並透過存取您裝置的用戶端以匯入憑證。
用裝置上傳憑證
您在上一個步驟中建立的憑證位於用戶端的 [個人] 存放區中。 這些憑證必須在用戶端匯出為適當格式的檔案,才能上傳至裝置。
根憑證必須匯出為 DER 格式檔案,並具備 .cer 檔案副檔名。 如需詳細步驟,請參閱將憑證匯出為 .cer 格式檔案。
端點憑證必須連同私密金鑰一起匯出為 .pfx 檔案。 如需詳細步驟,請參閱將憑證連同私密金鑰一起匯出為 .pfx 檔案。
根憑證和端點憑證會接著使用本機 Web UI [憑證] 頁面的 [+ 新增憑證] 選項上傳至裝置。 若要上傳憑證,請遵循上傳憑證中的步驟進行。
在執行 Azure PowerShell 的用戶端上匯入憑證
您叫用 Azure Resource Manager API 的 Windows 用戶端需要與裝置建立信任。 為此,您必須將在上一個步驟中建立的憑證,匯入正確的 Windows 用戶端憑證存放區。
現在,您使用 DER 格式匯出的根憑證 (具備 .cer 副檔名) 應已匯入用戶端系統上的受信任根憑證授權單位。 如需詳細步驟,請參閱將憑證匯入受信任根憑證授權單位存放區。
您匯出為 .pfx 的端點憑證必須匯出為 .cer 檔案。 之後,此 .cer 會匯入您系統上的個人憑證存放區。 如需詳細步驟,請參閱將憑證匯入個人存放區。
步驟 3:在用戶端安裝 PowerShell
您的 Windows 用戶端必須符合下列先決條件:
執行 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
您可以存取 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 模組。
以系統管理員身分執行 PowerShell。 您必須能夠存取 PowerShell 資源庫。
請先確認用戶端上沒有
AzureRM
和Az
模組的現有版本。 若要檢查,請執行下列命令:# 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 解除安裝。 如需更多資訊,請參閱若要從 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
請確定您在安裝結束時執行的正確 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 位址新增至:
- 用戶端上的主機檔案,或
- DNS 伺服器組態
重要
建議您修改 DNS 伺服器設定以進行端點名稱解析。
在您用來連線到裝置的 Windows 用戶端上,採取下列步驟:
以管理員的身分啟動 [記事本],然後開啟位於 \Windows\System32\Drivers\etc 的主機檔案。
將下列項目新增至 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>
輸入是 Security Token Service (STS) 的端點。 STS 負責建立、驗證、更新和取消安全性權杖。 安全性令牌服務可用來建立用於裝置與客戶端之間持續通訊的存取令牌和重新整理令牌。連線至 Azure Resource Manager 時,Blob 儲存體的端點並非必須。 只有在透過儲存體帳戶將資料傳輸至 Azure 時,才必須使用此端點。
使用下圖以供參考。 儲存 hosts 檔案。
步驟 6:驗證用戶端的端點名稱解析
檢查端點名稱是否解析在您用來連線到裝置的用戶端上。
您可以透過
ping.exe
命令列公用程式,檢查端點名稱是否已解析。 指定IP位址時,ping
命令會傳回您要追蹤之電腦的TCP/IP主機名。請將
-a
參數新增至命令列,如以下範例所示。 如果系統可傳回主機名稱,則也會於回覆中傳回這項可能有價值的資訊。
步驟 7:設定 Azure Resource Manager 環境
設定 Azure Resource Manager 環境,驗證您的裝置可透過 Azure Resource Manager 與用戶端順利通訊。 請採取下列步驟進行驗證:
使用
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 全為小寫,且與您在主機檔案中提供的 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...
將環境設定為 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 環境。
呼叫本機裝置 API 來驗證 Azure Resource Manager 的連線。
這些認證適用於本機電腦帳戶,且僅供 API 存取使用。
您可透過
login-AzAccount
,或透過Connect-AzAccount
命令進行連線。請鍵入下列命令來登入。
$pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass) Connect-AzAccount -EnvironmentName AzASE -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee -credential $cred
使用租用戶標識碼 aaaabbbb-0000-cccc-1111-dddd222eeee,如同在此實例中硬式編碼。 使用下列使用者名稱與密碼。
使用者名稱 - EdgeArmUser
密碼 - 為 Azure Resource Manager 設定密碼,並使用此密碼登入。
以下是 的
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 aaaabbbb-0000-cccc-1111-dddd2222eeee -credential $cred Account SubscriptionName TenantId Environment ------- ---------------- -------- ----------- EdgeArmUser@localhost Default Provider Subscription aaaabbbb-0000-cccc-1111-dddd2222eeee AzASE PS C:\windows\system32>
登入的替代方式是使用
login-AzAccount
Cmdlet。login-AzAccount -EnvironmentName <Environment Name> -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee
以下為範例輸出。
PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee Account SubscriptionName TenantId ------- ---------------- -------- EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a... PS C:\WINDOWS\system32>
請使用
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 裝置重新啟動為止。 如果斷線,則由於您與 Azure 的連線已經中斷,所執行的任何 Cmdlet 都會傳回錯誤訊息。 您將必須再次登入。
切換環境
您可能需要切換兩個不同的環境。
請執行 Disconnect-AzAccount
命令,切換至不同的 AzEnvironment
。 如果您使用 Set-AzEnvironment
且 Login-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 : aaaabbbb-0000-cccc-1111-dddd2222eeee
TokenCache : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache
VersionProfile :
ExtendedProperties : {}
現在您應該從現有的環境中離線,以便切換至另一個環境。
PS C:\WINDOWS\system32> Disconnect-AzAccount
Id : EdgeArmUser@localhost
Type : User
Tenants : {aaaabbbb-0000-cccc-1111-dddd2222eeee}
AccessToken :
Credential :
TenantMap : {}
CertificateThumbprint :
ExtendedProperties : {[Subscriptions, ...], [Tenants, aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e]}
登入其他環境。 範例輸出如下所示。
PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
EdgeArmUser@localhost Default Provider Subscription aaaabbbb-0000-cccc-1111-dddd2222eeee AzDBE1
執行此 Cmdlet 以確認您已連線的環境。
PS C:\WINDOWS\system32> Get-AzContext |fl *
Name : Default Provider Subscription (...) - EdgeArmUser@localhost
Account : EdgeArmUser@localhost
Environment : AzDBE1
Subscription : ...
Tenant : aaaabbbb-0000-cccc-1111-dddd2222eeee
TokenCache : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache
VersionProfile :
ExtendedProperties : {}
您現在已切換到預定的環境。