Функции PowerShell для IoT Edge для Linux в Windows
Область применения: IoT Edge 1.5 IoT Edge 1.4
Внимание
Поддерживаются выпуски IoT Edge 1.5 LTS и IoT Edge 1.4 LTS. IoT Edge 1.4 LTS заканчивается жизнью 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.
Общие сведения о функциях PowerShell, используемых для развертывания, подготовки и получения состояния виртуальной машины IoT Edge для Linux в Windows (EFLOW).
Необходимые компоненты
Описанные в этой статье команды взяты из файла AzureEFLOW.psm1
, который можно найти в каталоге WindowsPowerShell
, расположенном по адресу C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW
.
Если у вас нет папки AzureEflow в каталоге PowerShell, выполните следующие действия, чтобы скачать и установить Azure IoT Edge для Linux в Windows.
В сеансе PowerShell с повышенными привилегиями выполните каждую из следующих команд, чтобы скачать IoT Edge для Linux в Windows.
- X64/AMD64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
- ARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
Установите IoT Edge для Linux на Windows на ваше устройство.
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
Можно указать нестандартные каталоги для установки и VHDX, добавив параметры
INSTALLDIR="<FULLY_QUALIFIED_PATH>"
иVHDXDIR="<FULLY_QUALIFIED_PATH>"
в приведенную выше команду установки.Установите политику выполнения на целевом устройстве по крайней мере
AllSigned
.Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Add-EflowNetwork
Команда Add-EflowNetwork добавляет новую сеть к виртуальной машине EFLOW. У этой команды есть два параметра:
Параметр | Допустимые значения | Комментарии |
---|---|---|
vswitchName | Имя виртуального коммутатора. | Определяет имя виртуального коммутатора, назначенного виртуальной машине EFLOW. |
vswitchType | Внутренняя или внешняя | Определяет тип виртуального коммутатора, назначенного виртуальной машине EFLOW. |
Она возвращает объект, который содержит следующие четыре свойства:
- Имя.
- ВыделениеMethod
- Cidr
- Тип
Чтобы получить дополнительные сведения, используйте команду Get-Help Add-EflowNetwork -full
.
Add-EflowVmEndpoint
Команда Add-EflowVmEndpoint добавляет новую конечную точку сети к виртуальной машине EFLOW. Используйте необязательные параметры для задания статического IP-адреса.
Параметр | Допустимые значения | Комментарии |
---|---|---|
vswitchName | Имя виртуального коммутатора. | Определяет имя виртуального коммутатора, назначенного виртуальной машине EFLOW. |
vendpointName | Имя виртуальной конечной точки | Имя виртуальной конечной точки, назначенной виртуальной машине EFLOW. |
ip4Address | IPv4-адрес в диапазоне, назначенном в качестве области для сервера DCHP | Статический IPv4-адрес виртуальной машины EFLOW. |
ip4PrefixLength | Длина префикса IPv4-адресов для подсети | Длина префикса IPv4-адресов для подсети, допустимая только при указании статического IPv4-адреса. |
ip4GatewayAddress | IPv4-адрес шлюза подсети | IPv4-адрес шлюза, допустимый только при указании статического IPv4-адреса. |
Она возвращает объект, который содержит следующие четыре свойства:
- Имя.
- MacAddress
- HealthStatus
- IpConfiguration
Чтобы получить дополнительные сведения, используйте команду Get-Help Add-EflowVmEndpoint -full
.
Add-EflowVmSharedFolder
Команда Add-EflowVmSharedFolder позволяет совместно использовать одну или несколько папок ОС узла Windows с виртуальной машиной EFLOW.
Параметр | Допустимые значения | Комментарии |
---|---|---|
sharedFoldersJsonPath | Строка | Путь к файлу конфигурации общих папок JSON. |
Файл конфигурации JSON должен иметь следующую структуру:
- sharedFOlderRoot : путь к корневой папке Windows, содержащей все папки, к которым необходимо предоставить общий доступ с виртуальной машиной EFLOW.
- hostFolderPath: относительный путь (к родительской корневой папке) папки, к которой будет предоставлен общий доступ к виртуальной машине EFLOW.
- readOnly: определяет, доступна ли общая папка для записи или только для чтения из виртуальной машины EFLOW — значения: false или true.
- targetFolderOnGuest : путь к папке внутри виртуальной машины EFLOW, в которой подключена папка ОС узла Windows.
[
{
"sharedFolderRoot": "<shared-folder-root-windows-path>",
"sharedFolders": [
{ "hostFolderPath": "<path-shared-folder>",
"readOnly": "<read-only>",
"targetFolderOnGuest": "<linux-mounting-point>"
}
]
}
]
Чтобы получить дополнительные сведения, используйте команду Get-Help Add-EflowVmSharedFolder -full
.
Connect-EflowVm
Команда Connect-EflowVm подключается к виртуальной машине с помощью SSH. Единственная учетная запись, которой разрешено подключение к виртуальной машине по протоколу SSH, — это учетная запись пользователя, который создал эту машину.
Эта команда работает только в сеансе PowerShell на главном устройстве, но не в Windows Admin Center и не в PowerShell ISE.
Чтобы получить дополнительные сведения, используйте команду Get-Help Connect-EflowVm -full
.
Copy-EflowVmFile
Команда Copy-EflowVmFile копирует файл на виртуальную машину или с нее по протоколу SCP. Используйте необязательные параметры, чтобы указать пути к исходному и целевому файлам и направление копирования.
Пользователь iotedge-user должен иметь на виртуальной машине разрешение на чтение для всех исходных каталогов или разрешение на запись в любые целевые каталоги.
Параметр | Допустимые значения | Комментарии |
---|---|---|
fromFile | Строка, представляющая путь к файлу | Определяет файл, из которого будет производиться чтение. |
toFile | Строка, представляющая путь к файлу | Определяет файл, в который будет выполняться запись. |
pushFile | нет | Этот флаг обозначает направление копирования. Если он присутствует, команда отправляет файл на виртуальную машину. Если он отсутствует, команда извлекает файл с виртуальной машины. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Copy-EflowVMFile -full
.
Deploy-Eflow
Команда Deploy-Eflow — это основной метод развертывания. Команда развертывания создает виртуальную машину, подготавливает файлы и развертывает модуль агента IoT Edge. Хотя ни один из параметров не требуется, их можно использовать для изменения параметров виртуальной машины во время создания.
Параметр | Допустимые значения | Комментарии |
---|---|---|
acceptEula | Да или Нет | Определяет возможность автоматически принять или отклонить лицензионное соглашение, обходя соответствующую строку приглашения. |
acceptOptionalTelemetry | Да или Нет | Определяет возможность автоматически принять или отклонить необязательные данные телеметрии, обходя соответствующую строку приглашения. |
cpuCount | Целочисленное значение от 1 до количества ядер ЦП на устройстве | Определяет количество ядер ЦП, используемых для виртуальной машины. Значение по умолчанию: 1 виртуальное ядро. |
memoryInMB | Целое число даже от 1024 до максимального объема свободной памяти устройства | Определяет объем памяти, выделенный для виртуальной машины. Значение по умолчанию: 1024 МБ. |
vmDiskSize | От 21 ГБ до 2 ТБ | Максимальный размер логического диска динамического расширения виртуального жесткого диска. Значение по умолчанию: 29 ГБ. Примечание. Можно использовать vmDiskSize или vmDataSize, но не одновременно. |
vmDataSize | От 2 ГБ до 2 ТБ | Максимальный размер секции данных результирующего жесткого диска в ГБ. Значение по умолчанию: 10 ГБ. Примечание. Можно использовать vmDiskSize или vmDataSize, но не одновременно. |
vmLogSize | Малый или большой | Укажите размер секции журнала. Small = 1GB, large = 6GB. Значение по умолчанию: small. |
vswitchName | Имя виртуального коммутатора. | Определяет имя виртуального коммутатора, назначенного виртуальной машине EFLOW. |
vswitchType | Внутренняя или внешняя | Определяет тип виртуального коммутатора, назначенного виртуальной машине EFLOW. |
ip4Address | IPv4-адрес в диапазоне, назначенном в качестве области для сервера DCHP | Статический IPv4-адрес виртуальной машины EFLOW. |
ip4PrefixLength | Длина префикса IPv4-адресов для подсети | Длина префикса IPv4-адресов для подсети, допустимая только при указании статического IPv4-адреса. |
ip4GatewayAddress | IPv4-адрес шлюза подсети | IPv4-адрес шлюза, допустимый только при указании статического IPv4-адреса. |
gpuName | Имя устройства GPU | Имя устройства GPU, которое будет использоваться для сквозной передачи. |
gpuPassthroughType | DirectDeviceAssignment, ParaVirtualization или "none" (работа только с ЦП) | Тип сквозной передачи GPU |
gpuCount | Целочисленное значение от 1 до числа ядер GPU на устройстве | Число устройств GPU, используемых для виртуальной машины. Примечание: если используется параметр ParaVirtualization, обязательно установите значение gpuCount = 1. |
customSsh | нет | Определяет, требуется ли пользователю использовать настраиваемую установку OpenSSH.Client. При наличии ssh.exe должен быть доступен для PSM EFLOW |
sharedFoldersJsonPath | Строка | Путь к файлу конфигурации общих папок JSON. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Deploy-Eflow -full
.
Get-EflowHostConfiguration
Команда Get-EflowHostConfiguration возвращает конфигурацию узла. Эта команда не принимает параметров. Она возвращает объект, который содержит следующие четыре свойства:
- FreePhysicalMemoryInMB;
- NumberOfLogicalProcessors;
- DiskInfo;
- GpuInfo.
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowHostConfiguration -full
.
Get-EflowLogs
Команда Get-EflowLogs собирает и объединяет в пакет журналы процессов развертывания и установки IoT Edge для Linux в Windows. Она возвращает пакет журналов в виде папки .zip
.
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowLogs -full
.
Get-EflowNetwork
Команда Get-EflowNetwork возвращает список сетей, назначенных виртуальной машине EFLOW. Используйте необязательный параметр для получения определенной сети.
Параметр | Допустимые значения | Комментарии |
---|---|---|
vswitchName | Имя виртуального коммутатора. | Определяет имя виртуального коммутатора, назначенного виртуальной машине EFLOW. |
Он возвращает список объектов, содержащих четыре свойства:
- Имя.
- ВыделениеMethod
- Cidr
- Тип
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowNetwork -full
.
Get-EflowVm
Команда Get-EflowVm возвращает текущую конфигурацию виртуальной машины. Эта команда не принимает параметров. Она возвращает объект, который содержит следующие четыре свойства:
- VmConfiguration;
- VmPowerState
- EdgeRuntimeVersion;
- EdgeRuntimeStatus;
- SystemStatistics.
Чтобы просмотреть конкретное свойство в формате удобного для чтения списка, выполните команду Get-EflowVM
с аргументом ExpandProperty. Например:
Get-EflowVM | Select -ExpandProperty VmConfiguration | Format-List
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVm -full
.
Get-EflowVmAddr
Команда Get-EflowVmAddr используется для запроса текущих IP- и MAC-адресов виртуальной машины. Наличие этой команды объясняется тем, что IP- и MAC-адреса могут меняться со временем.
Для получения дополнительных сведений используйте команду Get-Help Get-EflowVmAddr -full
.
Get-EflowVmEndpoint
Команда Get-EflowVmEndpoint возвращает список сетевых конечных точек, назначенных виртуальной машине EFLOW. Используйте необязательный параметр, чтобы получить определенную конечную точку сети.
Параметр | Допустимые значения | Комментарии |
---|---|---|
vswitchName | Имя виртуального коммутатора. | Определяет имя виртуального коммутатора, назначенного виртуальной машине EFLOW. |
Он возвращает список объектов, содержащих четыре свойства:
- Имя.
- MacAddress
- HealthStatus
- IpConfiguration
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVmEndpoint -full
.
Get-EflowVmFeature
Команда Get-EflowVmFeature возвращает состояние включения функциональных возможностей IoT Edge для Linux в Windows.
Параметр | Допустимые значения | Комментарии |
---|---|---|
функция | DpsTpm | Имя функции для запроса. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVmFeature -full
.
Get-EflowVmName
Команда Get-EflowVmName возвращает текущее имя узла виртуальной машины. Эта команда существует по той причине, что имя узла Windows может меняться со временем.
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVmName -full
.
Get-EflowVmSharedFolder
Команда Get-EflowVmSharedFolder возвращает сведения об одной или нескольких папках ос узла Windows, к которым предоставлен общий доступ к виртуальной машине EFLOW.
Параметр | Допустимые значения | Комментарии |
---|---|---|
sharedfolderRoot | Строка | Путь к общей корневой папке ОС узла Windows. |
hostFolderPath | Строка или список | Относительный путь и пути (к корневой папке) к общей папке или общей папке ОС Windows. |
Он возвращает список объектов, содержащих три свойства:
- hostFolderPath: относительный путь (к родительской корневой папке) папки, к которой предоставлен общий доступ к виртуальной машине EFLOW.
- readOnly: определяет, доступна ли общая папка для записи или только для чтения из виртуальной машины EFLOW — значения: false или true.
- targetFolderOnGuest: путь к папке внутри виртуальной машины EFLOW, в которой подключена папка Windows.
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVmSharedFolder -full
.
Get-EflowVmTelemetryOption
Команда Get-EflowVmTelemetryOption отображает состояние телеметрии на виртуальной машине — Optional (Необязательно) или Required (Требуется).
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVmTelemetryOption -full
.
Get-EflowVmTpmProvisioningInfo
Команда Get-EflowVmTpmProvisioningInfo возвращает сведения о подготовке доверенного платформенного модуля. Эта команда не принимает параметров. Она возвращает объект, который содержит следующие два свойства:
- Ключ подтверждения
- Идентификатор регистрации
Чтобы получить дополнительные сведения, используйте команду Get-Help Get-EflowVmTpmProvisioningInfo -full
.
Invoke-EflowVmCommand
Команда Invoke-EflowVmCommand выполняет на виртуальной машине команду Linux и возвращает ее выходные данные. Эта команда работает только с командами Linux, которые возвращают конечные выходные данные. Ее нельзя использовать для команд Linux, которые требуют взаимодействия с пользователем или выполняются неограниченно долго.
Вы можете заранее настроить команду для выполнения с помощью следующих необязательных параметров.
Параметр | Допустимые значения | Комментарии |
---|---|---|
Команда | Строка | Команда, которая будет выполнена на виртуальной машине. |
ignoreError | нет | Если этот флаг присутствует, ошибки в команде игнорируются. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Invoke-EflowVmCommand -full
.
Provision-EflowVm
Команда Provision-EflowVm добавляет сведения о подготовке устройства IoT Edge в файл IoT Edge config.yaml
на виртуальной машине.
Параметр | Допустимые значения | Комментарии |
---|---|---|
provisioningType | ManualConnectionString, ManualX509, DpsTPM, DpsX509 или DpsSymmetricKey | Определяет тип подготовки, который требуется использовать для устройства IoT Edge. |
devConnString | Строка подключения для существующего устройства IoT Edge | Строка подключения устройства для подготовки устройства IoT Edge вручную (ManualConnectionString). |
iotHubHostname | Имя узла для существующего центра Интернета вещей | Имя узла центра Интернета вещей Azure для подготовки устройства IoT Edge (ManualX509). |
deviceId | Идентификатор существующего устройства IoT Edge | Идентификатор устройства для подготовки устройства IoT Edge (ManualX509). |
scopeId | Идентификатор области для существующего экземпляра DPS. | Идентификатор области для подготовки устройства IoT Edge (DpsTPM, DpsX509 или DpsSymmetricKey). |
symmKey | Первичный ключ для существующего развертывания DPS или первичный ключ существующего устройства IoT Edge, зарегистрированного с помощью симметричных ключей | Симметричный ключ для подготовки устройства IoT Edge (DpsSymmetricKey). |
registrationId | Идентификатор регистрации существующего устройства IoT Edge | Идентификатор регистрации для подготовки устройства IoT Edge (DpsSymmetricKey, DpsTPM). |
identityCertPath | Путь к каталогу | Абсолютный целевой путь для сертификата удостоверения на главном компьютере Windows (ManualX509, DpsX509). |
identityPrivKeyPath | Путь к каталогу | Абсолютный исходный путь к закрытому ключу удостоверения на главном компьютере Windows (ManualX509, DpsX509). |
globalEndpoint | URL-адрес конечной точки устройства | URL-адрес глобальной конечной точки, используемой для подготовки DPS. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Provision-EflowVm -full
.
Remove-EflowNetwork
Команда Remove-EflowNetwork удаляет существующую сеть, подключенную к виртуальной машине EFLOW. Эта команда принимает один параметр.
Параметр | Допустимые значения | Комментарии |
---|---|---|
vswitchName | Имя виртуального коммутатора. | Определяет имя виртуального коммутатора, назначенного виртуальной машине EFLOW. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Remove-EflowNetwork -full
.
Remove-EflowVmEndpoint
Команда Remove-EflowVmEndpoint удаляет существующую конечную точку сети, подключенную к виртуальной машине EFLOW. Эта команда принимает один параметр.
Параметр | Допустимые значения | Комментарии |
---|---|---|
vendpointName | Имя виртуальной конечной точки | Имя виртуальной конечной точки, назначенной виртуальной машине EFLOW. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Remove-EflowVmEndpoint -full
.
Remove-EflowVmSharedFolder
Команда Remove-EflowVmSharedFolder перестает предоставлять общий доступ к папке операционной системы Windows виртуальной машине EFLOW. У этой команды есть два параметра:
Параметр | Допустимые значения | Комментарии |
---|---|---|
sharedfolderRoot | Строка | Путь к общей корневой папке ОС узла Windows. |
hostFolderPath | Строка или список | Относительный путь и пути (к корневой папке) к общей папке или общей папке ОС Windows. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Remove-EflowVmSharedFolder -full
.
Set-EflowVM
Команда Set-EflowVM обновляет конфигурацию виртуальной машины, сохраняя в нее указанные в запросе свойства. Необязательные параметры позволяют определить нужную конфигурацию для виртуальной машины.
Параметр | Допустимые значения | Комментарии |
---|---|---|
cpuCount | Целочисленное значение от 1 до количества ядер ЦП на устройстве | Определяет количество ядер ЦП, используемых для виртуальной машины. |
memoryInMB | Целочисленное значение от 1024 до максимального объема свободной памяти на устройстве | Определяет объем памяти, выделенный для виртуальной машины. |
gpuName | Имя устройства GPU | Имя устройства GPU, которое будет использоваться для сквозной передачи. |
gpuPassthroughType | DirectDeviceAssignment, ParaVirtualization или "none" (без сквозной передачи) | Тип сквозной передачи GPU |
gpuCount | Целочисленное значение от 1 до количества ядер GPU на устройстве | Число устройств GPU для виртуальной машины. Примечание: допустимо только при использовании DirectDeviceAssignment |
headless | нет | Если этот флаг присутствует, он определяет требование подтверждения пользователя при любом предупреждении системы безопасности. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Set-EflowVM -full
.
Set-EflowVmDNSServers
Команда Set-EflowVmDNSServers настраивает DNS-серверы для виртуальной машины EFLOW.
Параметр | Допустимые значения | Комментарии |
---|---|---|
vendpointName | Строковое значение имени виртуальной конечной точки | Используйте Get-EflowVmEndpoint, чтобы получить виртуальные интерфейсы, назначенные виртуальной машине EFLOW. Например, DESKTOP-CONTOSO-EflowInterface |
dnsServers | Список IP-адресов DNS-сервера, используемых для разрешения имен | Например, @("10.0.10.1") |
Чтобы получить дополнительные сведения, используйте команду Get-Help Set-EflowVmDNSServers -full
.
Set-EflowVmFeature
Команда Set-EflowVmFeature включает или отключает состояние функциональных возможностей IoT Edge для Linux в Windows.
Параметр | Допустимые значения | Комментарии |
---|---|---|
функция | DpsTpm, Defender | Имя функции для переключения. |
включить | нет | Если этот флаг присутствует, команда включает указанную возможность. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Set-EflowVmFeature -full
.
Set-EflowVmTelemetryOption
Команда Set-EflowVmTelemetryOption включает или отключает необязательные данные телеметрии внутри виртуальной машины.
Параметр | Допустимые значения | Комментарии |
---|---|---|
optionalTelemetry | True или False | Определяет, выбраны ли необязательные данные телеметрии. |
Чтобы получить дополнительные сведения, используйте команду Get-Help Set-EflowVmTelemetryOption -full
.
Start-EflowVm
Команда Start-EflowVm запускает виртуальную машину. Если указанная виртуальная машина уже запущена, никакие действия не выполняются.
Чтобы получить дополнительные сведения, используйте команду Get-Help Start-EflowVm -full
.
Stop-EflowVm
Команда Stop-EflowVm останавливает виртуальную машину. Если эта виртуальная машина уже остановлена, никакие действия не выполняются.
Чтобы получить дополнительные сведения, используйте команду Get-Help Stop-EflowVm -full
.
Verify-EflowVm
Команда Verify-EflowVm предоставляется как функция для проверки того, успешно ли создана виртуальная машина IoT Edge для Linux в Windows. Он принимает только общие параметры, и возвращает значение True , если виртуальная машина была создана и false , если нет.
Чтобы получить дополнительные сведения, используйте команду Get-Help Verify-EflowVm -full
.
Следующие шаги
Из следующей статьи вы узнаете, как использовать описанные выше команды для установки и подготовки к работе IoT Edge для Linux в Windows: