Atualizar o IoT Edge

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

A versão com suporte é a IoT Edge 1.4. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Conforme o serviço do IoT Edge lança novas versões, é recomendável atualizar os dispositivos do IoT Edge para os recursos mais recentes e melhorias de segurança. Este artigo fornece informações sobre como atualizar seus dispositivos IoT Edge quando uma nova versão está disponível.

Dois componentes lógicos de um dispositivo IoT Edge precisam ser atualizados caso você queira passar para uma versão mais recente.

  • Subsistema de segurança - Embora a arquitetura do subsistemade segurança tenha mudado entre as versões 1.1 e 1.2, suas responsabilidades permaneceram as mesmas. Ele é executado no dispositivo, lida com tarefas baseadas em segurança e inicia os módulos quando o dispositivo é iniciado. O subsistema de segurança só pode ser atualizado a partir do próprio dispositivo.

  • Tempo de execução do IoT Edge - O tempo de execução do IoT Edge é composto pelos módulos de hub do IoT Edge () e agente do IoT Edge (edgeHubedgeAgent). Dependendo de como você estrutura sua implantação, o tempo de execução pode ser atualizado a partir do dispositivo ou remotamente.

Como atualizar

Use as seções deste artigo para atualizar o subsistema de segurança e os contêineres de tempo de execução em um dispositivo.

Versões de patch

Quando você atualiza entre versões de patch , por exemplo, 1.4.1 para 1.4.2, a ordem de atualização não é importante. Você pode atualizar o subsistema de segurança ou os contêineres de tempo de execução antes ou depois do outro. Para atualizar entre versões de patch:

  1. Atualizar o subsistema de segurança
  2. Atualizar os contêineres de runtime
  3. Verificar se as versões correspondem

Você pode solucionar problemas do processo de atualização a qualquer momento.

Lançamentos maiores ou menores

Ao atualizar entre versões principais ou secundárias, por exemplo, da 1.1 para a 1.4, atualize o subsistema de segurança e os contêineres de tempo de execução. Antes de uma versão, testamos o subsistema de segurança e a combinação de versão de contêiner de tempo de execução. Para atualizar entre versões principais ou secundárias do produto:

  1. No dispositivo, pare o IoT Edge usando o comando sudo systemctl stop iotedge e desinstale.

  2. No dispositivo, atualize seu mecanismo de contêiner, Docker ou Moby.

  3. No dispositivo, instale o IoT Edge.

    Se você estiver importando uma configuração antiga usando iotedge config importo , modifique a imagem [agent.config] do arquivo gerado /etc/aziot/config.toml para usar a imagem 1.4 para edgeAgent.

    Para obter mais informações, consulte Definir configurações de dispositivo do IoT Edge.

  4. No Hub IoT, atualize a implantação do módulo para fazer referência aos módulos mais recentes do sistema.

  5. No dispositivo, inicie o IoT Edge usando sudo iotedge config applyo .

Você pode solucionar problemas do processo de atualização a qualquer momento.

Atualizar o subsistema de segurança

O subsistema de segurança do IoT Edge é um conjunto de componentes nativo que precisa ser atualizado pelo gerenciador de pacotes no dispositivo do IoT Edge.

Verifique a versão do subsistema de segurança em execução no seu dispositivo pelo comando iotedge version. Se estiver usando IoT Edge para Linux no Windows, você precisará usar o SSH na máquina virtual Linux para verificar a versão.

Importante

Se estiver atualizando um dispositivo da versão 1.0 ou 1.1 para a mais recente, há diferenças nos processos de instalação e configuração que requerem etapas adicionais. Para obter mais informações, consulte as etapas mais adiante neste artigo: Caso especial: atualização da versão 1.0 ou 1.1 para a versão mais recente.

Em dispositivos Linux x64, use apt-get ou seu gerenciador de pacotes apropriado para atualizar o subsistema de segurança para a versão mais recente.

Atualizar apt:

sudo apt-get update

Observação

Para instruções para obter a configuração mais recente do repositório da Microsoft, confira as etapas preliminares para Instalar o IoT Edge.

Verifique quais versões do IoT Edge estão disponíveis:

apt list -a aziot-edge

Atualize o IoT Edge:

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

A execução apt-get install aziot-edge atualiza o subsistema de segurança e instala o serviço de identidade, aziot-identity-service, como uma dependência necessária.

É recomendável instalar o micro agente com o agente do Edge para habilitar o monitoramento de segurança e a proteção de seus dispositivos do Edge. Para saber mais sobre o Microsoft Defender para IoT, consulte O que é o Microsoft Defender para IoT para compiladores de dispositivos.

Em seguida, aplique novamente a configuração para garantir que o sistema esteja totalmente atualizado.

sudo iotedge config apply

Atualizar os contêineres de runtime

A maneira de atualizar o agente do IoT Edge e contêineres de hub do IoT Edge depende se você pode usar marcas sem interrupção (como 1.1) ou marcas específicas (como 1.1.1) em sua implantação.

Verifique a versão do agente do IoT Edge e de módulos de hub do IoT Edge atualmente em seu dispositivo usando o comando iotedge logs edgeAgent ou iotedge logs edgeHub. Se estiver usando IoT Edge para Linux no Windows, você precisará usar o SSH na máquina virtual Linux para verificar a versão do módulo de runtime.

Screenshot of where to find the container version in console logs.

Reconhecer as marcas do IoT Edge

O agente do IoT Edge e as imagens de hub do IoT Edge são marcadas com a versão do IoT Edge a que estão associados. Há duas maneiras diferentes de usar marcas com as imagens de runtime:

  • Marcas sem interrupção – use os dois primeiros valores do número de versão para obter a imagem mais recente que corresponde a esses dígitos. Por exemplo, 1.1 é atualizado sempre que há uma nova versão para apontar para a versão 1.1.x mais recente. Se o runtime do contêiner em seu dispositivo IoT Edge extrair a imagem novamente, os módulos de runtime serão atualizados para a versão mais recente. Implantações do portal do Azure usam como padrão marcas sem interrupção. Essa abordagem é sugerida para fins de desenvolvimento.

  • Marcas específicas – use todos os três valores do número de versão para definir explicitamente a versão da imagem. Por exemplo, 1.1.0 não mudará após seu lançamento inicial. Você pode declarar um novo número de versão no manifesto de implantação quando estiver pronto para atualizar. Essa abordagem é sugerida para fins de produção.

Atualizar uma imagem de tag sem interrupção

Se você usar marcas sem interrupção em sua implantação (por exemplo, mcr.microsoft.com/azureiotedge-hub:1.1), será necessário forçar o runtime do contêiner em seu dispositivo para obter a versão mais recente da imagem.

Exclua a versão local da imagem do seu dispositivo IoT Edge. Em computadores Windows, desinstalar o subsistema de segurança também remove as imagens de runtime, portanto, você não precisará realizar esta etapa novamente.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Talvez você precise usar a marca -f de forçar para remover as imagens.

O serviço IoT Edge extrai as versões mais recentes das imagens de tempo de execução e as inicia automaticamente em seu dispositivo novamente.

Atualizar uma imagem de tag específica

Se você usar marcas específicas em sua implantação (por exemplo, mcr.microsoft.com/azureiotedge-hub:1.4), tudo o que você precisa fazer é atualizar a marca no manifesto de implantação e aplicar as alterações ao dispositivo.

  1. No Hub IoT no portal do Azure, selecione o dispositivo IoT Edge e selecione Definir módulos.

  2. Na guia Módulos, selecione Configurações de tempo de execução.

    Screenshot that shows location of the Runtime Settings tab.

  3. Em Configurações de Tempo de Execução, atualize o valor de URI da Imagem na seção Agente de Borda com a versão desejada. Não selecione Aplicar ainda.

    Screenshot that shows where to update the image URI with your version in the Edge Agent.

  4. Selecione a guia Edge Hub e atualize o valor de URI da imagem com a mesma versão desejada.

    Screenshot that shows where to update the image URI with your version in the Edge Hub.

  5. Selecione Aplicar para salvar as alterações.

  6. Selecione Revisar + criar, revise a implantação conforme visto no arquivo JSON e selecione Criar.

Verificar se as versões correspondem

  1. Em seu dispositivo, use iotedge version para verificar a versão do subsistema de segurança. A saída inclui os números de versão principal, secundária e de revisão. Por exemplo, iotedge 1.4.2.

  2. Nas configurações de tempo de execução de implantação do dispositivo, verifique se as versões de URI da imagem edgeHub e edgeAgent correspondem à versão principal e secundária do subsistema de segurança. Se a versão do subsistema de segurança for 1.4.2, as versões de imagem serão 1.4. Por exemplo, mcr.microsoft.com/azureiotedge-hub:1.4 e mcr.microsoft.com/azureiotedge-agent:1.4.

Observação

Atualize o subsistema de segurança e os contêineres de tempo de execução do IoT Edge para a mesma versão de lançamento com suporte. Embora exista suporte para versões incompatíveis, não testamos todas as combinações de versões.

Para localizar a versão mais recente do Azure IoT Edge, confira Versões do Azure IoT Edge.

Caso especial: atualizar da versão 1.0 ou 1.1 para a mais recente

A partir da versão 1.2, o serviço do IoT Edge usa um novo nome de pacote e tem algumas diferenças nos processos de instalação e configuração. Se tiver um dispositivo IoT Edge executando a versão 1.0 ou 1.1, use estas instruções para saber como atualizar para a versão mais recente.

Algumas das principais diferenças entre a versão mais recente e a versão 1.1 e anterior incluem:

  • O nome do pacote mudou de iotedge para aziot-edge.
  • O pacote libiothsm-std não é mais usado. Se tiver usado o pacote padrão fornecido como parte da versão de IoT Edge, suas configurações poderão ser transferidas para a nova versão. Se você usou uma implementação diferente do libiothsm-std, todos os certificados fornecidos pelo usuário, como o certificado de identidade do dispositivo, a autoridade de certificação do dispositivo e o pacote de confiança, precisarão ser reconfigurados.
  • Um novo serviço de identidade, o aziot-Identity-service, foi introduzido como parte da versão 1.2. Esse serviço cuida do provisionamento e gerenciamento de identidades para o IoT Edge e para outros componentes de dispositivo que precisam se comunicar com o Hub IoT, como a Atualização de Dispositivo para Hub IoT.
  • O arquivo de configuração padrão tem um novo nome e local. Anteriormente /etc/iotedge/config.yaml, agora, espera-se que as informações de configuração do dispositivo estejam em /etc/aziot/config.toml por padrão. O comando iotedge config import pode ser usado para ajudar a migrar informações de configuração do local e da sintaxe antigos para a nova.
    • O comando de importação não pode detectar ou modificar as regras de acesso ao TPM (Trusted Platform Module) de um dispositivo. Se o dispositivo usar atestado TPM, você precisará atualizar manualmente o arquivo /etc/udev/rules.d/tpmaccess.rules para conceder acesso ao serviço aziottpm. Para saber mais, confira Conceder acesso IoT Edge ao TPM.
  • A API de carga de trabalho na versão mais recente salva os segredos criptografados em um novo formato. Se você atualizar de uma versão mais antiga para a versão mais recente, a chave mestra de criptografia existente será importada. A API de carga de trabalho pode ler segredos salvos no formato anterior usando a chave de criptografia importada. No entanto, a API de carga de trabalho não pode gravar segredos criptografados no formato antigo. Depois que um módulo criptografa novamente um segredo, ele é salvo no novo formato. Os segredos criptografados na versão mais recente não podem ser lidos pelo mesmo módulo na versão 1.1. Se você mantiver dados criptografados em uma pasta ou volume montado no host, sempre crie uma cópia de backup dos dados antes de atualizar para manter a capacidade de fazer o downgrade, se necessário.
  • Para compatibilidade com versões anteriores ao conectar dispositivos incompatíveis com o TLS 1.2, você pode configurar o Hub do Edge para aceitar o TLS 1.0 ou 1.1 por meio da variável de ambiente SslProtocols. O suporte para TLS 1.0 e 1.1 no Hub IoT é considerado herdado e também pode ser removido do Hub de Borda em versões futuras.  Para evitar problemas futuros, use o TLS 1,2 como a única versão do TLS ao se conectar ao Hub do Edge ou ao Hub IoT.
  • A versão prévia do agente MQTT experimental no Hub do Edge 1.2 terminou e não está incluída no Hub do Edge 1.4. Continuamos a refinar nossos planos para um agente MQTT com base nos comentários recebidos. Enquanto isso, se você precisar de um agente de MQTT compatível com os padrões no IoT Edge, implante um agente de software livre, como o Mosquitto, como módulo do IoT Edge.
  • A partir da versão 1.2, quando uma imagem de backup é removida de um contêiner, o contêiner continua em execução e ele persiste entre reinicializações. Na versão 1.1, quando uma imagem de backup é removida, o contêiner é recriado imediatamente e a imagem de backup é atualizada.

Antes de automatizar qualquer processo de atualização, valide se ele funciona em máquinas de teste.

Quando estiver pronto, siga estas etapas para atualizar o IoT Edge em seus dispositivos:

  1. Atualize o apt-get.

    sudo apt-get update
    
  2. Desinstale a versão anterior do IoT Edge, deixando os arquivos de configuração existentes.

    sudo apt-get remove iotedge
    
  3. Instale a versão mais recente do IoT Edge, junto ao serviço de identidade do IoT e o micro agente para Edge do Microsoft Defender para IoT.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

É recomendável instalar o micro agente com o agente do Edge para habilitar o monitoramento de segurança e a proteção de seus dispositivos do Edge. Para saber mais sobre o Microsoft Defender para IoT, consulte O que é o Microsoft Defender para IoT para compiladores de dispositivos.

  1. Importe o arquivo config.yaml antigo para seu novo formato e aplique as informações de configuração.

    sudo iotedge config import
    

Agora que o serviço IoT Edge mais recente está em execução em seus dispositivos, você também precisa atualizar os contêineres de tempo de execução para a versão mais recente. O processo de atualização para contêineres de tempo de execução é o mesmo que o processo de atualização para o serviço IoT Edge.

Solução de problemas

Você pode visualizar os logs do seu sistema a qualquer momento executando os seguintes comandos do seu dispositivo.

  • Inicie a solução de problemas usando o comando check . Ele executa uma coleção de testes de configuração e conectividade para problemas comuns.

    sudo iotedge check --verbose
    
  • Para exibir o status do sistema IoT Edge, execute:

    sudo iotedge system status 
    
  • Para exibir os logs de componentes do host, execute:

    sudo iotedge system logs
    
  • Para verificar se há problemas recorrentes relatados com o edgeAgent e o edgeHub, execute:

    Certifique-se de substituir <module> pelo seu próprio nome de módulo. Se não houver problemas, você não verá nenhuma saída.

    sudo iotedge logs <module>
    

Para obter mais informações, consulte Solucionar problemas do dispositivo IoT Edge.

Próximas etapas

Exibir as versões do Azure IoT Edge mais recentes.

Fique por dentro das atualizações e comunicados mais recentes no blog da Internet das Coisas