透過 Windows PowerShell 管理 Azure Stack Edge Pro FPGA 裝置
重要
Azure Stack Edge Pro FPGA 裝置於 2024 年 2 月達到生命周期結束。
Azure Stack Edge Pro FPGA 解決方案可讓您處理資料,並透過網路將其傳送至 Azure。 本文說明 Azure Stack Edge Pro FPGA 裝置的某些設定和管理工作。 您可使用 Azure 入口網站、本機 Web UI 或 Windows PowerShell 介面來管理您的裝置。
本文的重點在於使用 PowerShell 介面執行的工作。
本文包含下列程序:
- 連線至 Powershell 介面
- 建立支援封裝
- Upload certificate
- 重設裝置
- 檢視裝置資訊
- 取得計算記錄
- 監視計算模組並進行疑難排解
連線至 Powershell 介面
視用戶端的作業系統而定,遠端連線到裝置的程序會有所不同。
從遠端 Windows 用戶端連線
開始之前,請確定您的 Windows 用戶端執行的是 Windows PowerShell 5.0 或更新版本。
請遵循下列步驟從 Windows 用戶端進行遠端連接。
以管理員身分執行 Windows PowerShell 工作階段。
請確定您的用戶端上正在執行 Windows 遠端管理服務。 在命令提示字元中,輸入:
winrm quickconfig
如需詳細資訊,請參閱 Windows 遠端管理的安裝和設定。
將變數指派給裝置 IP 位址。
$ip = "<device_ip>"
請以您裝置的 IP 位址取代
<device_ip>
。若要將裝置的 IP 位址新增至用戶端的信任主機清單,請輸入下列命令:
Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force
在裝置上啟動 Windows PowerShell 工作階段:
Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
出現提示時,請提供密碼。 使用與用來登入本機 Web UI 相同的密碼。 預設本機 Web UI 密碼為 Password1。 當您使用遠端 PowerShell 成功連接到裝置時,您會看到下列範例輸出:
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> winrm quickconfig WinRM service is already running on this machine. PS C:\WINDOWS\system32> $ip = "10.100.10.10" PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration. [10.100.10.10]: PS>
從 Linux 用戶端進行遠端連線
在用於連線的 Linux 用戶端上:
- 從 GitHub 安裝最新適用於 Linux 的 PowerShell Core,以取得 SSH 遠端功能。
- 僅從 NTLM 模組安裝
gss-ntlmssp
套件。 針對 Ubuntu 用戶端,請使用下列命令:sudo apt-get install gss-ntlmssp
如需詳細資訊,請移至透過 SSH 的 PowerShell 遠端處理。
請遵循下列步驟,從 NFS 用戶端進行遠端連線。
若要開啟 PowerShell 工作階段,請輸入:
pwsh
若要使用遠端用戶端進行連線,請輸入:
Enter-PSSession -ComputerName $ip -Authentication Negotiate -ConfigurationName Minishell -Credential ~\EdgeUser
出現提示時,請提供用來登入裝置的密碼。
注意
此程序無法在 Mac OS 上運作。
建立支援封裝
如果您遇到任何裝置問題,您可以從系統記錄建立支援套件。 Microsoft 支援服務會使用此套件來針對問題進行移難排解。 請遵循下列步驟以建立支援套件:
使用
Get-HcsNodeSupportPackage
命令來建立支援套件。 Cmdlet 的使用方式如下:Get-HcsNodeSupportPackage [-Path] <string> [-Zip] [-ZipFileName <string>] [-Include {None | RegistryKeys | EtwLogs | PeriodicEtwLogs | LogFiles | DumpLog | Platform | FullDumps | MiniDumps | ClusterManagementLog | ClusterLog | UpdateLogs | CbsLogs | StorageCmdlets | ClusterCmdlets | ConfigurationCmdlets | KernelDump | RollbackLogs | Symbols | NetworkCmdlets | NetworkCmds | Fltmc | ClusterStorageLogs | UTElement | UTFlag | SmbWmiProvider | TimeCmds | LocalUILogs | ClusterHealthLogs | BcdeditCommand | BitLockerCommand | DirStats | ComputeRolesLogs | ComputeCmdlets | DeviceGuard | Manifests | MeasuredBootLogs | Stats | PeriodicStatLogs | MigrationLogs | RollbackSupportPackage | ArchivedLogs | Default}] [-MinimumTimestamp <datetime>] [-MaximumTimestamp <datetime>] [-IncludeArchived] [-IncludePeriodicStats] [-Credential <pscredential>] [<CommonParameters>]
Cmdlet 會從您的裝置收集記錄,並將這些記錄複製到指定的網路或本機共用。
使用的參數如下所示:
-Path
- 指定要複製支援套件的網路或本機路徑。 (必要)-Credential
- 指定存取保護路徑的認證。-Zip
- 指定以產生 zip 檔案。-Include
- 指定以包含要在支援套件中包含的原件。 若未指定,則會採用Default
。-IncludeArchived
- 指定以在支援套件中包含封存的記錄。-IncludePeriodicStats
- 指定以在支援套件中包含定期統計記錄。
Upload certificate
適當的 SSL 憑證可確保您將加密的資訊傳送至正確的伺服器。 除了加密,憑證也允許進行驗證。 您可透過裝置的 PowerShell 介面來上傳您自己的受信任 SSL 憑證。
使用
Set-HcsCertificate
Cmdlet 上傳憑證。 出現提示時,請提供下列參數:CertificateFilePath
- 包含 .pfx 格式憑證檔案的共用路徑。CertificatePassword
- 用來保護憑證的密碼。Credentials
- 存取包含憑證之共用的使用者名稱。 出現提示時,請提供網路共用密碼。下列範例顯示此 Cmdlet 的使用方式:
Set-HcsCertificate -Scope LocalWebUI -CertificateFilePath "\\myfileshare\certificates\mycert.pfx" -CertificatePassword "mypassword" -Credential "Username"
您也可以上傳 IoT Edge 憑證,以在您的 IoT Edge 裝置與可連線的下游裝置之間啟用安全連線。 您需要安裝三個檔案 (.pem 格式):
- 根 CA 憑證或擁有者 CA
- 裝置 CA 憑證
- 裝置私密金鑰
下列範例顯示如何使用此 Cmdlet 來安裝 IoT Edge憑證:
Set-HcsCertificate -Scope IotEdge -RootCACertificateFilePath "\\hcfs\root-ca-cert.pem" -DeviceCertificateFilePath "\\hcfs\device-ca-cert.pem\" -DeviceKeyFilePath "\\hcfs\device-private-key.pem" -Credential "username"
當您執行此 Cmdlet 時,系統會提示您提供網路共用的密碼。
如需有關憑證的詳細資訊,請移至 Azure IoT Edge憑證或在閘道上安裝憑證。
檢視裝置資訊
使用
Get-HcsApplianceInfo
來取得裝置的資訊。下列範例顯示此 Cmdlet 的使用方式:
[10.100.10.10]: PS>Get-HcsApplianceInfo Id : b2044bdb-56fd-4561-a90b-407b2a67bdfc FriendlyName : DBE-NBSVFQR94S6 Name : DBE-NBSVFQR94S6 SerialNumber : HCS-NBSVFQR94S6 DeviceId : 40d7288d-cd28-481d-a1ea-87ba9e71ca6b Model : Virtual FriendlySoftwareVersion : Data Box Gateway 1902 HcsVersion : 1.4.771.324 IsClustered : False IsVirtual : True LocalCapacityInMb : 1964992 SystemState : Initialized SystemStatus : Normal Type : DataBoxGateway CloudReadRateBytesPerSec : 0 CloudWriteRateBytesPerSec : 0 IsInitialPasswordSet : True FriendlySoftwareVersionNumber : 1902 UploadPolicy : All DataDiskResiliencySettingName : Simple ApplianceTypeFriendlyName : Data Box Gateway IsRegistered : False
下表摘述某些重要裝置資訊:
參數 描述 FriendlyName 在裝置部署期間,透過本機 Web UI 設定的裝置自訂名稱。 預設的易記名稱是裝置序號。 SerialNumber 裝置序號是在工廠指派的唯一號碼。 模型 Azure Stack Edge 或資料箱閘道裝置的模型。 Azure Stack Edge 的此模型是實體,資料箱閘道的此模型是虛擬狀態。 FriendlySoftwareVersion 對應至裝置軟體版本的易記字串。 針對系統執行預覽,相容軟體版本會是 Data Box Edge 1902。 HcsVersion 裝置上執行的 HCS 軟體版本。 例如,對應至 Data Box Edge 1902 的 HCS 軟體版本為 1.4.771.324。 LocalCapacityInMb 裝置的總本機容量 (以百萬位元為單位)。 IsRegistered 此值表示裝置是否透過服務啟用。
重設裝置
若要重設裝置,您需要安全地抹除裝置的資料磁碟和開機磁碟上的所有資料。
使用 Reset-HcsAppliance
Cmdlet 來抹除資料磁碟和開機磁碟,或只抹除資料磁碟。 SecureWipeBootDisk
和 SecureWipeDataDisks
交換器可讓您分別抹除開機磁碟和資料磁碟。
SecureWipeBootDisk
交換器會抹除開機磁碟,並使裝置無法使用。 只有在需要將裝置傳回給 Microsoft 時,才應該使用。 如需詳細資訊,請參閱將裝置傳回給 Microsoft Word。
如果您在本機 Web UI 中使用裝置重設,則只會安全地抹除資料磁碟,但是開機磁碟會保持不變。 開機磁碟包含裝置組態。
在命令提示字元中,輸入:
Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
下列範例將示範如何使用這個 Cmdlet:
[10.128.24.33]: PS>Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks Confirm Are you sure you want to perform this action? Performing the operation "Reset-HcsAppliance" on target "ShouldProcess appliance". [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): N
取得計算記錄
如果您的裝置上已設定計算角色,您也可以透過 PowerShell 介面取得計算記錄。
使用
Get-AzureDataBoxEdgeComputeRoleLogs
取得裝置的計算記錄。下列範例顯示此 Cmdlet 的使用方式:
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
以下是用於 Cmdlet 的參數描述:
Path
:提供您要在其中建立計算記錄套件的共用網路路徑。Credential
:提供網路共用的使用者名稱。 當您執行此 Cmdlet 時,您必須提供共用密碼。FullLogCollection
:此參數可確保記錄套件會包含所有計算記錄。 根據預設,記錄套件只包含記錄子集。
監視計算模組並進行疑難排解
在已設定計算角色的 Azure Stack Edge 裝置上,您可以使用兩組不同的命令對裝置進行疑難排解或監視。
- 使用
iotedge
命令。 這些命令適用於您裝置的基本作業。 - 使用
dkrdbe
命令。 這些命令適用於您裝置的廣泛作業集。
若要執行上述任一組命令,您需要連線到 PowerShell 介面。
使用 iotedge
命令
若要查看可用的命令清單,請連線到 PowerShell 介面,並使用 iotedge
函式。
[10.100.10.10]: PS>iotedge -? Usage: iotedge COMMAND
Commands:
check
list
logs
restart
[10.100.10.10]: PS>
下表簡短描述可用於 iotedge
的命令:
命令 | 描述 |
---|---|
check |
針對常見的設定和連線問題執行自動化檢查 |
list |
列出模組 |
logs |
擷取模組記錄 |
restart |
停止並重新啟動模組 |
使用 dkrdbe
命令
若要查看可用的命令清單,請連線到 PowerShell 介面,並使用 dkrdbe
函式。
[10.100.10.10]: PS>dkrdbe -?
Usage: dkrdbe COMMAND
Commands:
image [prune]
images
inspect
login
logout
logs
port
ps
pull
start
stats
stop
system [df]
top
[10.100.10.10]: PS>
下表簡短描述可用於 dkrdbe
的命令:
命令 | 描述 |
---|---|
image |
管理映像。 若要移除未使用的映像,請使用:dkrdbe image prune -a -f |
images |
列出映像 |
inspect |
傳回 Docker 物件的詳細資訊 |
login |
登入 Docker 登錄 |
logout |
從 Docker 登錄登出 |
logs |
擷取容器記錄 |
port |
列出容器的連接埠對應或特定對應 |
ps |
列出容器 |
pull |
從登錄提取映像或存放庫 |
start |
啟動一個或多個已停止的容器 |
stats |
顯示容器資源使用統計資料的即時串流 |
stop |
停止一個或多個執行中的容器 |
system |
管理 Docker |
top |
顯示容器的執行程序 |
若要取得任何可用命令的說明,請使用 dkrdbe <command-name> --help
。
例如,若要了解 port
命令的使用方式,請輸入:
[10.100.10.10]: P> dkrdbe port --help
Usage: dkr port CONTAINER [PRIVATE_PORT[/PROTO]]
List port mappings or a specific mapping for the container
[10.100.10.10]: P> dkrdbe login --help
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.
Options:
-p, --password string Password
--password-stdin Take the password from stdin
-u, --username string Username
[10.100.10.10]: PS>
dkrdbe
函式可用命令會使用的參數與一般 Docker 命令所用的參數相同。 如需可搭配 Docker 命令使用的選項和參數,請移至使用 Docker 命令列。
若要檢查模組是否已成功部署
計算模組是已實作商務邏輯的容器。 若要檢查是否已成功部署計算模組,請執行 ps
命令,並檢查容器 (對應至計算模組) 是否正在執行。
若要取得所有容器的清單 (包括暫停的容器),請執行 ps -a
命令。
[10.100.10.10]: P> dkrdbe ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d99e2f91d9a8 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days movefile
0a06f6d605e9 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days filemove
2f8a36e629db mcr.microsoft.com/azureiotedge-hub:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days 0.0.0.0:443->443/tcp, 0.0.0.0:5671->5671/tcp, 0.0.0.0:8883->8883/tcp edgeHub
acce59f70d60 mcr.microsoft.com/azureiotedge-agent:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days edgeAgent
[10.100.10.10]: PS>
如果在建立容器映像或提取映像時發生錯誤,請執行 logs edgeAgent
。 EdgeAgent
是負責佈建其他容器的 IoT Edge 執行階段容器。
因為 logs edgeAgent
會傾印所有記錄,所以查看最近錯誤的好方法是使用 --tail 20
選項。
[10.100.10.10]: PS>dkrdbe logs edgeAgent --tail 20
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Util.Uds.HttpUdsMessageHandler] - Connected socket /var/run/iotedge/mgmt.sock
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Util.Uds.HttpUdsMessageHandler] - Sending request http://mgmt.sock/modules?api-version=2018-06-28
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Agent] - Getting edge agent config...
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Agent] - Obtained edge agent config
2019-02-28 23:38:23.469 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Edgelet.ModuleManagementHttpClient] - Received a valid Http response from unix:///var/run/iotedge/mgmt.soc
k for List modules
--------------------CUT---------------------
--------------------CUT---------------------
08:28.1007774+00:00","restartCount":0,"lastRestartTimeUtc":"2019-02-26T20:08:28.1007774+00:00","runtimeStatus":"running","version":"1.0","status":"running","restartPolicy":"always
","type":"docker","settings":{"image":"edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64","imageHash":"sha256:47778be0602fb077d7bc2aaae9b0760fbfc7c058bf4df192f207ad6cbb96f7cc","c
reateOptions":"{\"HostConfig\":{\"Binds\":[\"/home/hcsshares/share4-dl460:/home/input\",\"/home/hcsshares/share4-iot:/home/output\"]}}"},"env":{}}
2019-02-28 23:38:28.480 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Planners.HealthRestartPlanner] - HealthRestartPlanner created Plan, with 0 command(s).
若要取得容器記錄
若要取得特定容器的記錄,請先列出容器,然後取得感興趣容器的記錄。
若要列出執行中的容器,請執行
ps
命令。[10.100.10.10]: P> dkrdbe ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d99e2f91d9a8 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days movefile 0a06f6d605e9 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days filemove 2f8a36e629db mcr.microsoft.com/azureiotedge-hub:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days 0.0.0.0:443->443/tcp, 0.0.0.0:5671->5671/tcp, 0.0.0.0:8883->8883/tcp edgeHub acce59f70d60 mcr.microsoft.com/azureiotedge-agent:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days edgeAgent
記下您需要其記錄的容器識別碼。
若要取得特定容器的記錄,請執行提供容器識別碼的
logs
命令。[10.100.10.10]: PS>dkrdbe logs d99e2f91d9a8 02/26/2019 18:21:45: Info: Opening module client connection. 02/26/2019 18:21:46: Info: Initializing with input: /home/input, output: /home/output. 02/26/2019 18:21:46: Info: IoT Hub module client initialized. 02/26/2019 18:22:24: Info: Received message: 1, SequenceNumber: 0 CorrelationId: , MessageId: 081886a07e694c4c8f245a80b96a252a Body: [{"ChangeType":"Created","ShareRelativeFilePath":"\\__Microsoft Data Box Edge__\\Upload\\Errors.xml","ShareName":"share4-dl460"}] 02/26/2019 18:22:24: Info: Moving input file: /home/input/__Microsoft Data Box Edge__/Upload/Errors.xml to /home/output/__Microsoft Data Box Edge__/Upload/Errors.xml 02/26/2019 18:22:24: Info: Processed event. 02/26/2019 18:23:38: Info: Received message: 2, SequenceNumber: 0 CorrelationId: , MessageId: 30714d005eb048e7a4e7e3c22048cf20 Body: [{"ChangeType":"Created","ShareRelativeFilePath":"\\f [10]","ShareName":"share4-dl460"}] 02/26/2019 18:23:38: Info: Moving input file: /home/input/f [10] to /home/output/f [10] 02/26/2019 18:23:38: Info: Processed event.
若要監視裝置的使用統計資料
若要監視裝置上的記憶體、CPU 使用量和 IO,請使用 stats
命令。
執行
stats
命令,可停用即時串流,並只提取第一個結果。dkrdbe stats --no-stream
下列範例顯示此 Cmdlet 的使用方式:
[10.100.10.10]: P> dkrdbe stats --no-stream CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS d99e2f91d9a8 movefile 0.0 24.4MiB / 62.89GiB 0.04% 751kB / 497kB 299kB / 0B 14 0a06f6d605e9 filemove 0.00% 24.11MiB / 62.89GiB 0.04% 679kB / 481kB 49.5MB / 0B 14 2f8a36e629db edgeHub 0.18% 173.8MiB / 62.89GiB 0.27% 4.58MB / 5.49MB 25.7MB / 2.19MB 241 acce59f70d60 edgeAgent 0.00% 35.55MiB / 62.89GiB 0.06% 2.23MB / 2.31MB 55.7MB / 332kB 14 [10.100.10.10]: PS>
結束遠端工作階段
若要結束遠端 PowerShell 工作階段,請關閉 PowerShell 視窗。
下一步
- 在 Azure 入口網站中部署 Azure Stack Edge Pro FPGA。