Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
IoT Edge 1.1
Importante
O IoT Edge 1.1 data de término do suporte foi 13 de dezembro de 2022. Confira o Ciclo de Vida do Produto da Microsoft para obter informações sobre o suporte deste produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Update IoT Edge.
Este artigo fornece instruções de ponta a ponta para o provisionamento automático de um ou mais dispositivos IoT Edge para Linux no Windows usando certificados X.509. Você pode provisionar automaticamente dispositivos do Azure IoT Edge com o serviço de provisionamento de dispositivos no Hub IoT do Azure (DPS). Se você não estiver familiarizado com o processo de provisionamento automático, reveja a visão geral de provisionamento antes de continuar.
As tarefas são as seguintes:
- Gerar certificados e chaves.
- Crie um registro individual para um único dispositivo ou um registro de grupo para um conjunto de dispositivos.
- Implante uma máquina virtual do Linux com o runtime do IoT Edge instalado e conecte-o ao Hub IoT.
Usar certificados X.509 como um mecanismo de atestado é uma maneira excelente de escalar a produção e simplificar o provisionamento do dispositivo. Normalmente, os certificados X.509 são organizados em uma cadeia de certificados de confiança. Começando com um certificado raiz autoassinado ou confiável, cada certificado na cadeia assina o certificado imediatamente inferior. Esse padrão cria uma cadeia de confiança delegada do certificado raiz até cada certificado intermediário e, em seguida, até o certificado final de dispositivo downstream instalado em um dispositivo.
Pré-requisitos
Recursos de nuvem
- Um Hub IoT ativo
- Uma instância do Serviço de Provisionamento de Dispositivos no Hub IoT no Azure, vinculada ao seu hub IoT
- Se você não tiver uma instância do Serviço de Provisionamento de Dispositivos, poderá seguir as instruções nas seções Criar um novo Serviço de Provisionamento de Dispositivos no Hub IoT e Vincular o Hub IoT e o Serviço de Provisionamento de Dispositivos do início rápido do Serviço de Provisionamento de Dispositivos no Hub IoT.
- Depois que o Serviço de Provisionamento de Dispositivo estiver em execução, copie o valor do Escopo de ID da página de resumo. Você usa esse valor ao configurar o runtime do Azure IoT Edge.
Requisitos do dispositivo
Um dispositivo Windows com os seguintes requisitos mínimos:
Requisitos do sistema
- Windows 101/11 (Pro, Enterprise, IoT Enterprise)
- Windows Server 20191/2022
1 Windows 10 e Windows Server 2019, no mínimo build 17763 com todas as atualizações cumulativas atuais instaladas.
Requisitos de hardware
- Memória livre mínima: 1 GB
- Espaço em disco livre mínimo: 10 GB
Suporte à virtualização
- Habilite o Hyper-V no Windows 10. Para obter mais informações, confira Instalar o Hyper-V no Windows 10.
- No Windows Server, instale a função Hyper-V e crie um comutador de rede padrão. Para mais detalhes, consulte Virtualização aninhada para Azure IoT Edge para Linux no Windows.
- Em uma máquina virtual, configure a virtualização aninhada. Para obter mais informações, confira: virtualização aninhada.
Suporte à rede
- Windows Server não vem com um switch padrão. Antes de poder implantar o EFLOW em um dispositivo Windows Server, é necessário criar um comutador virtual. Para obter mais informações, confira Criar um comutador virtual para Linux no Windows.
- As versões de desktop do Windows vêm com uma chave padrão que pode ser usada para a instalação do EFLOW. Se necessário, você pode criar seu switch virtual personalizado.
Dica
Se você quer usar os módulos do Linux acelerados por GPU na implantação do Azure IoT Edge para Linux no Windows, há várias opções de configuração a serem consideradas.
Você precisará instalar os drivers corretos, dependendo da arquitetura da GPU, e talvez precisará de acesso a um build do Programa Windows Insider. Para determinar suas necessidades de configuração e atender a esses pré-requisitos, confira Aceleração de GPU do Azure IoT Edge para Linux no Windows.
Reserve tempo para atender aos pré-requisitos de aceleração de GPU agora. Será necessário reiniciar o processo de instalação se você decidir que deseja a aceleração de GPU durante a instalação.
Ferramentas para desenvolvedores
Você pode usar o PowerShell ou o Windows Admin Center para gerenciar seus dispositivos IoT Edge. Cada utilitário tem seus próprios pré-requisitos:
Se você quiser usar o PowerShell, use as seguintes etapas para preparar seu dispositivo de destino para a instalação do Azure IoT Edge para Linux no Windows e a implantação da máquina virtual Linux:
Defina a política de execução no dispositivo de destino como
AllSigned. Você pode verificar a política de execução atual em um prompt do PowerShell com privilégios elevados usando o seguinte comando:Get-ExecutionPolicy -ListSe a política de execução do
local machinenão forAllSigned, você poderá definir a política de execução usando:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Para obter mais informações sobre o módulo do PowerShell do Azure IoT Edge para Linux no Windows, confira a referência de funções do PowerShell.
Gerar certificados de identidade do dispositivo
O certificado de identidade do dispositivo é um certificado downstream que se conecta por meio de uma cadeia de certificados de confiança ao certificado de autoridade de certificação (CA) X.509 superior. O certificado de identidade do dispositivo deve ter um CN (nome comum) definido como a identidade do dispositivo que você deseja que o dispositivo tenha no hub IoT.
Os certificados de identidade do dispositivo são usados apenas para provisionar o dispositivo do IoT Edge e autenticar o dispositivo com o Hub IoT do Azure. Eles não são certificados de assinatura, ao contrário dos certificados de CA apresentados pelo dispositivo IoT Edge aos módulos ou dispositivos downstream para verificação. Para saber mais, confira Detalhes do uso do certificado do Azure IoT Edge.
Depois de criar o certificado de identidade do dispositivo, você deve ter dois arquivos: um arquivo .cer ou .pem que contém a parte pública do certificado e um arquivo .cer ou .pem com a chave privada do certificado. Se você planeja usar o registro de grupo no DPS, também precisa do segmento público de um certificado CA raiz ou intermediário na mesma cadeia de confiança de certificados.
Você precisa dos seguintes arquivos para configurar o provisionamento automático com X.509:
- O certificado de identidade do dispositivo e seu certificado de chave privada. O certificado de identidade do dispositivo será carregado no DPS se você criar um registro individual. A chave privada é passada para o runtime do IoT Edge.
- Um certificado de cadeia completo, que deve ter pelo menos a identidade do dispositivo e os certificados intermediários nele. O certificado de cadeia completo é passado para o runtime do IoT Edge.
- Um certificado de AC intermediária ou raiz da cadeia de confiança. Esse certificado será carregado no DPS se você criar um registro de grupo.
Observação
No momento, uma limitação no libiothsm impede o uso de certificados que expiram em ou após 1º de janeiro de 2038.
Usar certificados de teste (opcional)
Se você não tem uma autoridade de certificação disponível para criar certificados de identidade e quer experimentar esse cenário, o repositório Git do Azure IoT Edge contém scripts que você pode usar para gerar certificados de teste. Esses certificados foram criados apenas para o teste de desenvolvimento e não devem ser usados na produção.
Para criar certificados de teste, siga as etapas em Criar certificados de demonstração para testar recursos do dispositivo do IoT Edge. Conclua as duas seções necessárias para configurar os scripts para geração de certificados e para criar um certificado de autoridade certificadora raiz. Em seguida, siga as etapas para criar um certificado de identidade do dispositivo. Quando tiver terminado, você deverá ter a cadeia de certificados e o par de chaves a seguir:
<WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem<WRKDIR>\private\iot-edge-device-identity-<name>.key.pem
Você precisa desses dois certificados no dispositivo do IoT Edge. Para utilizar o registro individual no DPS, você deverá carregar o arquivo .cert.pem. Se você for usar o registro de grupo no DPS, também precisará carregar um certificado de AC raiz ou intermediária na mesma cadeia de certificados de confiança. Se você estiver usando certificados de demonstração, use o certificado <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem para registro de grupo.
Criar um registro de DPS
Use os certificados e chaves gerados para criar um registro no DPS de um ou mais dispositivos Azure IoT Edge.
Se você quiser provisionar um único dispositivo IoT Edge, crie um registro individual. Se você precisar de vários dispositivos provisionados, siga as etapas para criar um registro de grupo do DPS.
Ao criar uma inscrição no DPS, você tem a oportunidade de declarar um Estado Inicial do Device Twin. No dispositivo gêmeo, você pode definir tags para agrupar dispositivos por qualquer métrica que precisar em sua solução, como região, ambiente, local ou tipo de dispositivo. Essas etiquetas são usadas para criar implantações automáticas.
Para saber mais sobre registros no serviço de provisionamento de dispositivos, confira Como gerenciar registros de dispositivo.
Criar um registro individual de DPS
As inscrições individuais utilizam a seção pública do certificado de identidade de um dispositivo e a comparam com o certificado no dispositivo.
Dica
As etapas neste artigo são para o portal do Microsoft Azure, mas também é possível criar registros individuais usando a CLI do Azure. Para obter mais informações, confira az iot dps enrollment. Como parte do comando da CLI, use o sinalizador habilitado para o Edge para especificar que o registro é para um dispositivo do IoT Edge.
No portal do Azure, navegue até sua instância do serviço de provisionamento de dispositivos no Hub IoT.
Em Configurações, selecione Gerenciar registros.
Selecione adicionar registro individual, em seguida, conclua as seguintes etapas para configurar o registro:
Mecanismo: selecione X.509.
Arquivo .pem ou .cer do certificado primário: carregue o arquivo público do certificado de identidade do dispositivo. Se você usou os scripts para gerar um certificado de teste, escolha o seguinte arquivo:
<WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pemID de Dispositivo do Hub IoT: forneça uma ID para o seu dispositivo, se desejar. Você pode usar IDs de dispositivo para direcionar um dispositivo individual na implantação de módulos. Se você não fornecer uma ID de dispositivo, o CN (nome comum) no certificado X.509 será usado.
Dispositivo do IoT Edge: selecione True para declarar que o registro é para um dispositivo do IoT Edge.
Selecione os hubs IoT aos quais este dispositivo pode ser atribuído: escolha o Hub IoT vinculado ao qual você deseja conectar o dispositivo. Você pode escolher vários hubs e o dispositivo será atribuído a um deles de acordo com a política de alocação selecionada.
Estado inicial do dispositivo gêmeo: adicione um valor de etiqueta ao dispositivo gêmeo, se desejar. Você pode usar tags para direcionar grupos de dispositivos para a implantação automática. Por exemplo:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Clique em Salvar.
Em Gerenciar Registros, você pode ver a ID do Registro que acabou de criar. Anote-a, pois ela pode ser usada quando você provisiona seu dispositivo.
Agora que existe um registro para esse dispositivo, o runtime do IoT Edge pode provisionar automaticamente o dispositivo durante a instalação.
Instalar o IoT Edge
Implante o Azure IoT Edge para Linux em Windows no dispositivo alvo.
Instale o IoT Edge para Linux no Windows em seu dispositivo de destino.
Observação
O processo do PowerShell a seguir descreve como implantar o IoT Edge para Linux no Windows no dispositivo local. Para fazer a implantação em um dispositivo de destino remoto usando o PowerShell, use o PowerShell Remoto para estabelecer uma conexão com um dispositivo remoto e executar esses comandos remotamente no dispositivo.
Em uma sessão do PowerShell com privilégios elevados, execute cada um dos comandos a seguir para baixar o IoT Edge para Linux no Windows.
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEflowMSI" -OutFile $msiPathInstale o IoT Edge para Linux no Windows em seu dispositivo.
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"Você pode especificar diretórios personalizados de instalação do IoT Edge no Linux e no Windows e do VHDX adicionando os parâmetros
INSTALLDIR="<FULLY_QUALIFIED_PATH>"eVHDXDIR="<FULLY_QUALIFIED_PATH>"ao comando de instalação. Por exemplo, se você quiser usar a pasta D:\EFLOW para instalação e a pasta D:\EFLOW-VHDX para o VHDX, poderá usar o seguinte cmdlet do PowerShell.Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"Defina a política de execução no dispositivo de destino como
AllSigned, se ainda não estiver definida. Confira os pré-requisitos do PowerShell para comandos para verificar a política de execução atual e definir a política de execução comoAllSigned.Crie a implantação do IoT Edge para Linux em Windows. A implantação cria sua máquina virtual do Linux e instala o runtime do IoT Edge para você.
Deploy-EflowDica
Por padrão, o comando
Deploy-Eflowcria a máquina virtual Linux com 1 GB de RAM, 1 núcleo vCPU e 16 GB de espaço em disco. No entanto, os recursos de que sua VM precisa dependem muito das cargas de trabalho implantadas. Se a VM não tiver memória suficiente para dar suporte às cargas de trabalho, ela não será iniciada.Você pode personalizar os recursos disponíveis da máquina virtual usando os parâmetros opcionais do comando
Deploy-Eflow.Por exemplo, o comando a seguir cria uma máquina virtual com 4 núcleos de vCPU, 4 GB de RAM (representado em MB) e 20 GB de espaço em disco:
Deploy-Eflow -cpuCount 4 -memoryInMB 4096 -vmDiskSize 20Para obter informações sobre todos os parâmetros opcionais disponíveis, confira Funções do PowerShell para o IoT Edge para Linux no Windows.
Aviso
Por padrão, a máquina virtual do Linux do EFLOW não tem nenhuma configuração de DNS. As implantações que usam o DHCP tentarão obter a configuração de DNS propagada pelo servidor DHCP. Verifique a configuração de DNS para garantir a conectividade com a Internet. Para obter mais informações, confira AzEFLOW-DNS.
Você pode atribuir uma GPU à implantação para habilitar os módulos do Linux acelerados por GPU. Para obter acesso a esses recursos, você precisará instalar os pré-requisitos detalhados em aceleração de GPU do Azure IoT Edge para Linux no Windows.
Para usar uma passagem de GPU, adicione os parâmetros gpuName, gpuPassthroughType e gpuCount ao comando
Deploy-Eflow. Para obter informações sobre todos os parâmetros opcionais disponíveis, confira Funções do PowerShell para o IoT Edge para Linux no Windows.Aviso
Habilitar a passagem de dispositivo de hardware pode aumentar os riscos de segurança. A Microsoft recomenda um driver de mitigação de dispositivo do fornecedor da GPU, quando aplicável. Para obter mais informações, confira Implantar dispositivos gráficos usando a atribuição discreta de dispositivo.
Insira "Y" para aceitar os termos de licença.
Insira "O" ou "R" para ativar ou desativar Dados de diagnóstico opcionais, dependendo de sua preferência.
Depois que a implantação for concluída, a janela do PowerShell relatará Implantação bem-sucedida.
Após uma implantação bem-sucedida, você estará pronto para provisionar seu dispositivo.
Provisionar o dispositivo com a identidade de nuvem dele
Depois que o runtime for instalado no seu dispositivo, configure-o com as informações que ele usa para se conectar ao serviço de provisionamento de dispositivos e ao Hub IoT.
Prepare as seguintes informações:
- O valor do DPS Escopo da ID. É possível recuperar esse valor da página de visão geral da instância do DPS no portal do Azure.
- O arquivo da cadeia de certificados de identidade no dispositivo.
- O arquivo de chave de identidade do dispositivo.
Você pode usar o PowerShell ou o Windows Admin Center para provisionar seu dispositivo IoT Edge.
Para o PowerShell, execute o seguinte comando com os valores de espaço reservado atualizados com seus próprios valores:
Provision-EflowVm -provisioningType DpsX509 -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -identityCertPath PASTE_ABSOLUTE_PATH_TO_IDENTITY_CERTIFICATE_HERE -identityPrivKeyPath PASTE_ABSOLUTE_PATH_TO_IDENTITY_PRIVATE_KEY_HERE
Verifique se a instalação é bem-sucedida
Verifique se o IoT Edge para Linux no Windows foi instalado e configurado com êxito em seu dispositivo IoT Edge.
Você pode verificar se o registro individual criado no serviço de provisionamento de dispositivos foi usado. Navegue até a sua instância do serviço de provisionamento de dispositivos do portal do Azure. Abra os detalhes da matrícula para a matrícula individual que você criou. Observe que o status da inscrição é atribuído e o ID do dispositivo está listado.
Faça logon em sua máquina virtual IoT Edge para Linux no Windows usando o seguinte comando em sua sessão do PowerShell:
Connect-EflowVmObservação
A única conta permitida para o SSH da máquina virtual é o usuário que a criou.
Depois de fazer logon, você poderá verificar a lista de módulos do IoT Edge em execução usando o seguinte comando do Linux:
sudo iotedge listSe você precisar solucionar problemas de serviço do IoT Edge, use os comandos do Linux a seguir.
Se você precisar solucionar problemas do serviço, recupere os logs de serviço.
sudo journalctl -u iotedgeUse a ferramenta
checkpara verificar a configuração e o status de conexão do dispositivo.sudo iotedge check
Observação
Em um dispositivo recém-provisionado, você pode ver um erro relacionado ao Hub do IoT Edge:
× preparação para produção: o diretório de armazenamento do Hub do Edge está persistido no sistema de arquivos do host – Erro
Não foi possível verificar o estado atual do contêiner edgeHub
Esse erro é esperado em um dispositivo recém-provisionado, pois o módulo do Hub do IoT Edge não está em execução. Para resolver o erro, no Hub IoT, defina os módulos para o dispositivo e crie uma implantação. A criação de uma implantação para o dispositivo inicia os módulos no dispositivo, incluindo o módulo IoT Edge Hub.
Quando você criar um novo dispositivo do IoT Edge, ele exibirá o código de status 417 -- The device's deployment configuration is not set no portal do Azure. Esse status é normal e significa que o dispositivo está pronto para receber uma implantação do módulo.
Desinstalar o IoT Edge para Linux no Windows
Se você quiser remover a instalação do Azure IoT Edge para Linux no Windows do dispositivo, use os comandos a seguir.
- Abra as Configurações no Windows
- Selecione Adicionar ou remover programas
- Selecione o aplicativo LTS do Azure IoT Edge
- Selecionar Desinstalar
Próximas etapas
O processo de registro do serviço de provisionamento de dispositivo permite definir a ID do dispositivo e as tags do dispositivo gêmeo ao mesmo tempo em que você provisiona o novo dispositivo. Você pode usar esses valores para direcionar dispositivos individuais ou grupos de dispositivos usando o gerenciamento automático de dispositivos. Saiba como Implantar e monitorar os módulos de IoT Edge em escala usando o portal do Azure ou usando a CLI do Azure.
Você também pode:
- Prossiga para implantar módulos do IoT Edge para saber como implantar módulos em seu dispositivo.
- Saiba como gerenciar certificados em sua máquina virtual do IoT Edge para Linux no Windows e transferir arquivos do sistema operacional host para sua máquina virtual Linux.
- Saiba como configurar seus dispositivos IoT Edge para se comunicar por meio de um servidor proxy.