Управление устройством Azure Stack Edge Pro с ППВМ при помощи Windows PowerShell
Внимание
Поддержка устройств ППВМ Azure Stack Edge Pro будет прекращена в феврале 2024 г. Если вы рассматриваете новые развертывания, рекомендуется изучить устройства Azure Stack Edge Pro 2 или Azure Stack Edge Pro с GPU для рабочих нагрузок.
Решение Azure Stack Edge Pro с ППВМ позволяет обрабатывать данные и передавать их по сети в Azure. В этой статье описан ряд задач по настройке устройства Azure Stack Edge Pro с ППВМ и управлению им. Для управления устройством можно использовать портал Azure, локальный пользовательский веб-интерфейс или интерфейс Windows PowerShell.
В этой статье рассматриваются задачи, выполняемые с помощью интерфейса PowerShell.
Эта статья содержит следующие процедуры:
- Подключитесь к интерфейсу PowerShell.
- Создать пакет поддержки.
- Передача сертификата
- Сброс настроек устройства
- Просмотр сведений об устройстве
- Получение журналов вычислений
- Мониторинг и устранение неполадок модулей вычислений
Подключитесь к интерфейсу PowerShell.
Процедуры удаленного подключения к устройству зависят от используемой операционной системы клиента.
Удаленное подключение из клиента Windows
Прежде чем начать, убедитесь, что ваш клиент Windows работает под управлением Windows PowerShell 5.0 или более поздней версии.
Выполните следующие действия, чтобы удаленно подключиться из клиента Windows.
Запустите сеанс Windows PowerShell от имени администратора.
Убедитесь, что на вашем клиенте запущена служба удаленного управления Windows. В командной строке введите:
winrm quickconfig
Дополнительные сведения см. в разделе "Установка и настройка" для удаленного управления Windows.
Назначьте переменную IP-адресу устройства.
$ip = "<device_ip>"
Замените
<device_ip>
IP-адресом вашего устройства.Введите следующую команду, чтобы добавить IP-адрес устройства к списку доверенных узлов клиента:
Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force
Запустите сеанс Windows PowerShell на устройстве:
Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
В ответ на запрос укажите пароль. Используйте тот же пароль, который используется для входа в локальный веб-интерфейс. Пароль локального пользовательского веб-интерфейса по умолчанию — 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, который будет использоваться для подключения:
- Установите последнюю версию PowerShell Core для Linux из GitHub, чтобы получить возможность удаленного взаимодействия с помощью SSH.
- Установите только пакет
gss-ntlmssp
из модуля NTLM. Для клиентов Ubuntu используйте следующую команду:sudo apt-get install gss-ntlmssp
Дополнительные сведения см. в разделе Удаленное взаимодействие по протоколу SSH, используя PowerShell.
Выполните следующие действия, чтобы удаленно подключиться из клиента NFS.
Чтобы открыть сеанс PowerShell, введите:
pwsh
Для подключения с помощью удаленного клиента введите:
Enter-PSSession -ComputerName $ip -Authentication Negotiate -ConfigurationName Minishell -Credential ~\EdgeUser
При появлении запроса введите пароль, используемый для входа на устройство.
Примечание.
Эта процедура не работает в macOS.
Создать пакет поддержки.
Если возникают проблемы с устройством, из системных журналов можно создать пакет поддержки. Служба поддержки Майкрософт использует этот пакет для устранения неполадок. Чтобы создать пакет поддержки, выполните следующие шаги.
Используйте команду
Get-HcsNodeSupportPackage
, чтобы создать пакет поддержки. Этот командлет используется следующим образом.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>]
Командлет собирает журналы с устройства и копирует эти журналы в указанную сеть или в локальную папку.
Можно использовать следующие параметры:
-Path
— определяет сеть или локальный путь для копирования пакета поддержки. (требуется)-Credential
— определяет учетные данные для доступа к защищенному пути.-Zip
— определяет необходимость создания ZIP-файла.-Include
— определяет, нужно ли включать в пакет поддержки подходящие для этого компоненты. Если этот параметр не задан, для него предполагается значениеDefault
.-IncludeArchived
— определяет, нужно ли включать в пакет поддержки архивированные журналы.-IncludePeriodicStats
— определяет, нужно ли включать в пакет поддержки журналы статистики.
Передача сертификата
Правильный SSL-сертификат обеспечивает отправку зашифрованных данных на нужный сервер. Кроме шифрования, сертификат обеспечивает также проверку подлинности. Вы можете передать свой собственный доверенный SSL-сертификат через интерфейс PowerShell устройства.
Выполните командлет
Set-HcsCertificate
для отправки сертификата. При появлении запроса укажите следующие параметры:CertificateFilePath
— путь к общей папке, содержащей файл сертификата в формате .pfx.CertificatePassword
— пароль, используемый для защиты сертификата.Credentials
— имя пользователя для доступа к общей папке, содержащей сертификат. При появлении запроса укажите пароль для сетевой папки.Следующий пример демонстрирует использование этого командлета:
Set-HcsCertificate -Scope LocalWebUI -CertificateFilePath "\\myfileshare\certificates\mycert.pfx" -CertificatePassword "mypassword" -Credential "Username"
Можно также отправить сертификаты IoT Edge, чтобы обеспечить безопасное подключение между устройством IoT Edge и подчиненными устройствами, которые могут к нему подключаться. Вам нужно установить три файла (в формате .pem).
- Сертификат корневого ЦС или ЦС владельца
- Сертификат ЦС устройства
- Закрытый ключ устройства
В следующем примере демонстрируется использование этого командлета для установки сертификатов 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"
При запуске этого командлета вам будет предложено ввести пароль для сетевой папки.
Дополнительные сведения о сертификатах см. в статьях Сертификаты Azure IoT Edge или Установка сертификатов в шлюзе.
Просмотр сведений об устройстве
Используйте
Get-HcsApplianceInfo
для получения сведений об устройстве.Следующий пример демонстрирует использование этого командлета:
[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
Ниже приведена таблица со сводкой некоторых важных сведений об устройстве.
Параметр Описание Понятное имя Понятное имя устройства, настроенное в локальном пользовательском интерфейсе во время развертывания устройства. В качестве понятного имени по умолчанию используется серийный номер устройства. SerialNumber Серийный номер устройства — это уникальный номер, присвоенный на фабрике. Модель Модель для устройства Azure Stack Edge или Шлюза Data Box. Модель является физической для Azure Stack Edge и виртуальной для Шлюза Data Box. FriendlySoftwareVersion Понятная строка, соответствующая версии программного обеспечения устройства. Для системы, в которой используется предварительная версия, понятным программным обеспечением будет Data Box Edge 1902. HcsVersion Версия программного обеспечения HCS, работающего на устройстве. Например, версия программного обеспечения HCS, соответствующая Data Box Edge 1902, — 1.4.771.324. LocalCapacityInMb Общая локальная емкость устройства в мегабитах. IsRegistered Это значение указывает, активировано ли устройство в службе.
Сброс устройства
Чтобы сбросить настройки устройства, необходимо безопасно очистить все данные на диске данных и загрузочном диске устройства.
Чтобы очистить загрузочный диск и диски данных либо только диск данных, используйте командлет Reset-HcsAppliance
. SecureWipeDataDisks
И SecureWipeBootDisk
переключатели позволяют очистить загрузочный диск и диски данных соответственно.
Параметр SecureWipeBootDisk
позволяет очистить загрузочный диск, после чего устройство станет непригодным для использования. Этот параметр следует применять, только если вы собираетесь вернуть устройство в Майкрософт. Дополнительные сведения см. в статье о возврате устройства в Майкрософт.
Если воспользоваться сбросом настроек устройства в локальном пользовательском веб-интерфейсе, безопасно очистятся только диски данных, но загрузочный диск останется нетронутым. На загрузочном диске содержится конфигурация устройства.
В командной строке введите:
Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
В следующем примере показано, как использовать этот командлет.
[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
, чтобы получить журналы вычислений для устройства.Следующий пример демонстрирует использование этого командлета:
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
Вот описание параметров этого командлета.
Path
: указание сетевого пути к общей папке, где нужно создать пакет журнала вычислений.Credential
: указание имени пользователя для сетевой папки. При выполнении этого командлета необходимо будет указать пароль для общей папки.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
.
Команда | Description |
---|---|
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
.
Команда | Description |
---|---|
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.
Наблюдение за статистикой использования устройства
Чтобы отслеживать память, загрузку ЦП и операции ввода-вывода на устройстве, используйте команду stats
.
Выполните команду
stats
, чтобы отключить трансляцию и извлечь только первый результат.dkrdbe stats --no-stream
Следующий пример демонстрирует использование этого командлета:
[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 Stack Edge Pro на портале Azure.