Gérer un appareil Azure Stack Edge Pro FPGA via Windows PowerShell
Important
Les appareils Azure Stack Edge Pro FPGA atteindront la fin de vie en février 2024. Si vous envisagez de nouveaux déploiements, nous vous recommandons d’explorer les appareils Azure Stack Edge Pro 2 ou Azure Stack Edge Pro GPU pour vos charges de travail.
La solution Azure Stack Edge Pro FGPA vous permet de traiter des données et de les envoyer à Azure via le réseau. Cet article décrit certaines des tâches de gestion et de configuration pour votre appareil Azure Stack Edge Pro FGPA. Vous pouvez utiliser le portail Azure, l'interface utilisateur locale ou l'interface Windows PowerShell pour gérer votre appareil.
Cet article traite des tâches que vous effectuez à l’aide de l’interface PowerShell.
Cet article couvre les procédures suivantes :
- Connexion à l’interface PowerShell
- Création d’un package de prise en charge
- Téléchargement d’un certificat
- Réinitialisation de l’appareil
- Affichage des informations sur l’appareil
- Récupération des journaux de calcul
- Supervision et dépannage des modules de calcul
Connexion à l’interface PowerShell
Selon le système d’exploitation du client, les procédures permettant de se connecter à distance à l’appareil sont différentes.
Connexion à distance depuis un client Windows
Avant de commencer, assurez-vous que votre client Windows exécute Windows PowerShell 5.0 ou une version ultérieure.
Suivez cette procédure pour effectuer une connexion distante depuis un client Windows.
Démarrez une session Windows PowerShell en tant qu’administrateur.
Assurez-vous que le service Windows Remote Management est en cours d’exécution sur votre client. À l’invite de commandes, tapez :
winrm quickconfig
Pour plus d’informations, consultez Installation et configuration de Windows Remote Management.
Attribuez une variable à l’adresse IP de l’appareil.
$ip = "<device_ip>"
Remplacez
<device_ip>
par l’adresse IP de votre appareil.Tapez la commande suivante pour ajouter l’adresse IP de l’appareil à la liste des hôtes approuvés du client :
Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force
Démarrez une session Windows PowerShell sur l’appareil :
Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
Indiquez le mot de passe lorsque vous y êtes invité. Utilisez le mot de passe vous permettant de vous connecter à l’interface utilisateur web locale. Le mot de passe par défaut de cette interface est Password1. Lorsque vous êtes connecté à l’appareil à l’aide de PowerShell à distance, vous pouvez voir l’exemple de sortie suivant :
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>
Connexion à distance depuis un client Linux
Sur le client Linux que vous utiliserez pour vous connecter :
- Installez la plus récente de PowerShell Core pour Linux, à partir de GitHub, afin d’obtenir la fonctionnalité d’accès distant SSH.
- Installez uniquement le package
gss-ntlmssp
à partir du module NTLM. Pour les clients Ubuntu, exécutez la commande ci-dessous :sudo apt-get install gss-ntlmssp
Pour plus d’informations, voir Accès distant à PowerShell via SSH.
Suivez cette procédure pour effectuer une connexion distante depuis un client NFS.
Pour ouvrir la session PowerShell, saisissez :
pwsh
Pour vous connecter à l’aide du client distant, saisissez :
Enter-PSSession -ComputerName $ip -Authentication Negotiate -ConfigurationName Minishell -Credential ~\EdgeUser
Lorsque vous y êtes invité, indiquez le mot de passe utilisé pour la connexion à votre appareil.
Remarque
Cette procédure ne fonctionne pas sur Mac OS.
Création d’un package de prise en charge
Si vous rencontrez des problèmes avec l’appareil, vous pouvez créer un package de support dans les journaux système. Le support Microsoft utilise ce package pour résoudre les problèmes. Pour créer un package de support, effectuez les étapes suivantes :
Connectez-vous à l’interface PowerShell de votre appareil.
Utilisez la commande
Get-HcsNodeSupportPackage
pour créer un package de support. Utilisez la cmdlet comme suit :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>]
La cmdlet collecte les journaux à partir de votre appareil et les copie vers un réseau ou un partage local spécifié.
Les paramètres utilisés sont les suivants :
-Path
: permet de spécifier le réseau ou le chemin d’accès local vers lequel y copier le package de support. (obligatoire)-Credential
: permet de spécifier les informations d’identification pour accéder au chemin protégé.-Zip
: permet de générer un fichier zip.-Include
: permet d’inclure les composants à inclure dans le package de support. S’il n’est pas renseigné, la valeurDefault
est supposée.-IncludeArchived
: permet d’inclure des journaux archivés dans le package de support.-IncludePeriodicStats
: permet d’inclure des journaux de statistiques périodiques dans le package de support.
Téléchargement d’un certificat
Un certificat SSL correct vérifie que vous envoyez des données chiffrées au serveur adéquat. Outre le chiffrement, le certificat permet également l’authentification. Vous pouvez charger votre propre certificat SSL approuvé par l’intermédiaire de l’interface PowerShell de l’appareil.
Utilisez la cmdlet
Set-HcsCertificate
pour charger le certificat. À l’invite, fournissez les paramètres suivants :CertificateFilePath
: chemin d’accès au partage qui contient le fichier de certificat, au format .pfx.CertificatePassword
: mot de passe permettant de protéger le certificat.Credentials
: nom d’utilisateur avec lequel accéder au partage qui contient le certificat. Renseignez le mot de passe du partage réseau lorsque vous y êtes invité.L’exemple suivant montre comment utiliser cette cmdlet :
Set-HcsCertificate -Scope LocalWebUI -CertificateFilePath "\\myfileshare\certificates\mycert.pfx" -CertificatePassword "mypassword" -Credential "Username"
Vous pouvez également charger des certificats IoT Edge pour permettre une connexion sécurisée entre votre appareil IoT Edge et les appareils en aval qui peuvent s’y connecter. Vous devez installer trois fichiers (format .pem) :
- Certificat d’autorité de certification racine ou de l’autorité de certification du propriétaire
- Certificat d’autorité de certification d’appareil
- Clé d’appareil privée
L’exemple suivant illustre l’utilisation de cette cmdlet pour installer des certificats 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"
Lorsque vous exécutez cette cmdlet, vous devez fournir le mot de passe pour le partage réseau.
Pour plus d’informations sur les certificats, consultez Certificats Azure IoT Edge ou Installation de certificats sur une passerelle.
Affichage des informations sur l’appareil
Utilisez
Get-HcsApplianceInfo
pour obtenir les informations pour votre appareil.L’exemple suivant montre comment utiliser cette 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
Voici un tableau récapitulant les informations importantes sur les appareils :
Paramètre Description FriendlyName Nom convivial configuré pour l’appareil via l’interface utilisateur web locale lors du déploiement de l’appareil. Le nom convivial par défaut est le numéro de série de l’appareil. SerialNumber Le numéro de série de l’appareil est un numéro unique attribué en usine. Modèle Le modèle de votre appareil Azure Stack Edge ou Data Box Gateway. Le modèle est physique pour Azure Stack Edge et virtuel pour Data Box Gateway. FriendlySoftwareVersion Chaîne conviviale qui correspond à la version du logiciel de l’appareil. Pour un système exécutant la préversion, la version conviviale du logiciel serait Data Box Edge 1902. HcsVersion Version du logiciel HCS exécutée sur votre appareil. Par exemple, la version du logiciel HCS correspondant à Data Box Edge 1902 est 1.4.771.324. LocalCapacityInMb Capacité totale locale de l’appareil en mégabits. IsRegistered Cette valeur indique si votre appareil est activé avec le service.
Réinitialisation de votre appareil
Pour réinitialiser votre appareil, vous devez effacer en toute sécurité toutes les données sur le disque de données et le disque de démarrage de votre appareil.
Utilisez la cmdlet Reset-HcsAppliance
pour effacer les disques de données et le disque de démarrage ou simplement les disques de données. Les commutateurs SecureWipeBootDisk
et SecureWipeDataDisks
permettent respectivement de réinitialiser le disque de démarrage et les disques de données.
Le commutateur SecureWipeBootDisk
efface le disque de démarrage et rend l’appareil inutilisable. Il doit être utilisé seulement si l’appareil doit être renvoyé à Microsoft. Pour plus d’informations, consultez Renvoyer l’appareil à Microsoft.
Si vous utilisez la réinitialisation d’appareil dans l’interface utilisateur web locale, seuls les disques de données sont effacés en toute sécurité, mais le disque de démarrage reste intact. Le disque de démarrage contient la configuration de l’appareil.
À l'invite de commandes, tapez :
Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
L’exemple suivant explique comment utiliser cette 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
Récupération des journaux de calcul
Si le rôle de calcul est configuré sur votre appareil, vous pouvez également obtenir les journaux de calcul via l’interface PowerShell.
Utilisez
Get-AzureDataBoxEdgeComputeRoleLogs
pour obtenir les journaux de calcul de votre appareil.L’exemple suivant montre comment utiliser cette cmdlet :
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
Voici une description des paramètres utilisés pour la cmdlet :
Path
: indiquez un chemin réseau vers le partage dans lequel vous souhaitez créer le package de journaux de calcul.Credential
: indiquez le nom d’utilisateur du partage réseau. Lorsque vous exécutez cette cmdlet, vous devez fournir le mot de passe du partage.FullLogCollection
: ce paramètre garantit que le package de journaux contiendra tous les journaux de calcul. Par défaut, le package de journaux contient uniquement un sous-ensemble des journaux.
Supervision et dépannage des modules de calcul
Sur un appareil Azure Stack Edge sur lequel le rôle de calcul est configuré, vous pouvez dépanner ou surveiller l’appareil à l’aide de deux jeux de commandes distincts.
- À l’aide des commandes
iotedge
. Ces commandes sont disponibles pour les opérations de base pour votre appareil. - À l’aide des commandes
dkrdbe
. Ces commandes sont disponibles pour un ensemble complet d’opérations pour votre appareil.
Pour exécuter les jeux de commandes ci-dessus, vous devez vous connecter à l’interface PowerShell.
Utiliser les commandes iotedge
Pour afficher la liste des commandes disponibles, connectez-vous à l’interface PowerShell et utilisez la fonction iotedge
.
[10.100.10.10]: PS>iotedge -? Usage: iotedge COMMAND
Commands:
check
list
logs
restart
[10.100.10.10]: PS>
Le tableau ci-après contient une brève description des commandes disponibles pour iotedge
:
commande | Description |
---|---|
check |
Effectuer des contrôles automatisés de problèmes de configuration et de connectivité courants |
list |
Faire la liste des modules |
logs |
Extraire les journaux d’un module |
restart |
Arrêter et redémarrer un module |
Utiliser les commandes dkrdbe
Pour afficher la liste des commandes disponibles, connectez-vous à l’interface PowerShell et utilisez la fonction 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>
Le tableau ci-après contient une brève description des commandes disponibles pour dkrdbe
:
commande | Description |
---|---|
image |
Gérer les images Pour supprimer les images non utilisées, utilisez : dkrdbe image prune -a -f |
images |
Répertorier des images |
inspect |
Retourner des informations détaillées sur les objets Docker |
login |
Se connecter à un registre Docker |
logout |
Se déconnecter d’un registre Docker |
logs |
Extraire les journaux d’un conteneur |
port |
Répertorier des mappages de port ou un mappage spécifique pour le conteneur |
ps |
Lister des conteneurs |
pull |
Extraire une image ou un référentiel à partir d’un registre |
start |
Démarrer un ou plusieurs conteneurs arrêtés |
stats |
Afficher un flux en direct des statistiques d’utilisation des ressources de conteneurs |
stop |
Arrêter un ou plusieurs conteneurs en cours d’exécution |
system |
Gérer Docker |
top |
Afficher les processus en cours d’exécution d’un conteneur |
Pour obtenir de l’aide pour n’importe quelle commande disponible, utilisez dkrdbe <command-name> --help
.
Par exemple, pour comprendre l’utilisation de la commande port
, tapez :
[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>
Les commandes disponibles pour la fonction dkrdbe
utilisent les mêmes paramètres que ceux utilisés pour les commandes docker normales. Pour les options et les paramètres utilisés avec la commande docker, accédez à Utiliser la ligne de commande Docker.
Pour vérifier si le module a été déployé avec succès
Les modules de calcul sont des conteneurs avec une logique métier implémentée. Pour vérifier si un module de calcul a été déployé avec succès, exécutez la commande ps
et vérifiez l’exécution du conteneur (correspondant au module de calcul).
Pour obtenir la liste de tous les conteneurs (y compris ceux en pause), exécutez la commande 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>
Si une erreur s’est produite lors de la création de l’image de conteneur ou lors de l’extraction de l’image, exécutez logs edgeAgent
. EdgeAgent
est le conteneur de runtime IoT Edge qui est responsable de la mise en service des autres conteneurs.
Étant donné que logs edgeAgent
vide les journaux, un bon moyen de voir les erreurs récentes est d’utiliser l’option --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).
Pour obtenir les journaux d’activité de conteneur
Pour obtenir les journaux d'activité d’un conteneur spécifique, répertoriez d’abord le conteneur et obtenez les journaux du conteneur qui vous intéresse.
Pour obtenir la liste des conteneurs en cours d’exécution, exécutez la commande
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
Notez l’ID de conteneur du conteneur contenant les journaux dont vous avez besoin.
Pour obtenir les journaux d’un conteneur spécifique, exécutez la commande
logs
en renseignant l’ID du conteneur.[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.
Pour surveiller les statistiques d’utilisation de l’appareil
Pour surveiller la mémoire, l’utilisation du processeur et les E/S sur l’appareil, utilisez la commande stats
.
Exécutez la commande
stats
pour désactiver la diffusion en direct et extraire uniquement le premier résultat.dkrdbe stats --no-stream
L’exemple suivant montre comment utiliser cette 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>
Fermeture de la session à distance
Pour quitter la session PowerShell à distance, fermez la fenêtre PowerShell.
Étapes suivantes
- Déployer Azure Stack Edge Pro avec FPGA dans le portail Azure.