Поделиться через


Управление устройством 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.

  1. Запустите сеанс Windows PowerShell от имени администратора.

  2. Убедитесь, что на вашем клиенте запущена служба удаленного управления Windows. В командной строке введите:

    winrm quickconfig

    Дополнительные сведения см. в разделе "Установка и настройка" для удаленного управления Windows.

  3. Назначьте переменную IP-адресу устройства.

    $ip = "<device_ip>"

    Замените <device_ip> IP-адресом вашего устройства.

  4. Введите следующую команду, чтобы добавить IP-адрес устройства к списку доверенных узлов клиента:

    Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force

  5. Запустите сеанс Windows PowerShell на устройстве:

    Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell

  6. В ответ на запрос укажите пароль. Используйте тот же пароль, который используется для входа в локальный веб-интерфейс. Пароль локального пользовательского веб-интерфейса по умолчанию — 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, который будет использоваться для подключения:

Дополнительные сведения см. в разделе Удаленное взаимодействие по протоколу SSH, используя PowerShell.

Выполните следующие действия, чтобы удаленно подключиться из клиента NFS.

  1. Чтобы открыть сеанс PowerShell, введите:

    pwsh

  2. Для подключения с помощью удаленного клиента введите:

    Enter-PSSession -ComputerName $ip -Authentication Negotiate -ConfigurationName Minishell -Credential ~\EdgeUser

    При появлении запроса введите пароль, используемый для входа на устройство.

Примечание.

Эта процедура не работает в macOS.

Создать пакет поддержки.

Если возникают проблемы с устройством, из системных журналов можно создать пакет поддержки. Служба поддержки Майкрософт использует этот пакет для устранения неполадок. Чтобы создать пакет поддержки, выполните следующие шаги.

  1. Подключитесь к интерфейсу PowerShell на вашем устройстве.

  2. Используйте команду 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 устройства.

  1. Подключитесь к интерфейсу PowerShell.

  2. Выполните командлет 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 или Установка сертификатов в шлюзе.

Просмотр сведений об устройстве

  1. Подключитесь к интерфейсу PowerShell.

  2. Используйте 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 позволяет очистить загрузочный диск, после чего устройство станет непригодным для использования. Этот параметр следует применять, только если вы собираетесь вернуть устройство в Майкрософт. Дополнительные сведения см. в статье о возврате устройства в Майкрософт.

Если воспользоваться сбросом настроек устройства в локальном пользовательском веб-интерфейсе, безопасно очистятся только диски данных, но загрузочный диск останется нетронутым. На загрузочном диске содержится конфигурация устройства.

  1. Подключитесь к интерфейсу PowerShell.

  2. В командной строке введите:

    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.

  1. Подключитесь к интерфейсу PowerShell.

  2. Используйте команду 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).

Получение журналов контейнера

Чтобы получить журналы для определенного контейнера, сначала необходимо вывести контейнер в списке, а затем получить журналы для интересующего контейнера.

  1. Подключитесь к интерфейсу PowerShell.

  2. Выполните команду 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
    
  3. Запишите идентификатор контейнера, для которого требуется создать журналы.

  4. Чтобы получить журналы для определенного контейнера, выполните команду 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.

  1. Подключитесь к интерфейсу PowerShell.

  2. Выполните команду 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.

Следующие шаги