Atualizar o IoT Edge
Aplica-se a: 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 (
edgeHub
edgeAgent
). 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:
- Atualizar o subsistema de segurança
- Atualizar os contêineres de runtime
- 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:
No dispositivo, pare o IoT Edge usando o comando
sudo systemctl stop iotedge
e desinstale.No dispositivo, atualize seu mecanismo de contêiner, Docker ou Moby.
No dispositivo, instale o IoT Edge.
Se você estiver importando uma configuração antiga usando
iotedge config import
o , 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.
No Hub IoT, atualize a implantação do módulo para fazer referência aos módulos mais recentes do sistema.
No dispositivo, inicie o IoT Edge usando
sudo iotedge config apply
o .
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.
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.
No Hub IoT no portal do Azure, selecione o dispositivo IoT Edge e selecione Definir módulos.
Na guia Módulos, selecione Configurações de tempo de execução.
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.
Selecione a guia Edge Hub e atualize o valor de URI da imagem com a mesma versão desejada.
Selecione Aplicar para salvar as alterações.
Selecione Revisar + criar, revise a implantação conforme visto no arquivo JSON e selecione Criar.
Verificar se as versões correspondem
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.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 comandoiotedge 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:
Atualize o apt-get.
sudo apt-get update
Desinstale a versão anterior do IoT Edge, deixando os arquivos de configuração existentes.
sudo apt-get remove iotedge
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.
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