Tutorial: Atualização de Dispositivos para Hub IoT do Azure com o agente de referência do simulador Ubuntu (18.04 x64)

Este tutorial demonstra uma atualização baseada em imagens ponto a ponto com a Atualização de Dispositivos para Hub IoT. A Atualização de Dispositivos para Hub IoT do Azure suporta atualizações baseadas em imagens, baseadas em pacotes e em scripts.

As atualizações de imagens proporcionam um nível mais elevado de confiança no estado final do dispositivo. Normalmente, é mais fácil replicar os resultados de uma atualização de imagem entre um ambiente de pré-produção e um ambiente de produção porque não coloca os mesmos desafios que a gestão de pacotes e as respetivas dependências. Devido à sua natureza atómica, também pode adotar facilmente um modelo de ativação pós-falha A/B.

Neste tutorial, irá aprender a:

  • Atribua um dispositivo IoT a um grupo de Atualização de Dispositivos com etiquetas.
  • Transfira e instale uma imagem.
  • Importar uma atualização.
  • Implementar uma atualização de imagem.
  • Monitorize a implementação da atualização.

Pré-requisitos

  • Crie uma conta e instância de Atualização de Dispositivos configurada com um hub IoT.

  • Tenha um dispositivo Ubuntu 18.04. Este dispositivo pode ser físico ou uma máquina virtual.

  • Transfira o ficheiro zip com o nome Tutorial_Simulator.zip Release Assets na versão mais recente e deszipe-o.

    Se o seu dispositivo de teste for diferente do seu computador de desenvolvimento, transfira o ficheiro zip para ambos.

    Pode utilizar wget para transferir o ficheiro zip. Substitua <release_version> pela versão mais recente, por exemplo 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Registar um dispositivo e configurar uma identidade de módulo

Adicione um dispositivo ao registo de dispositivos no hub IoT. Todos os dispositivos que se ligam ao hub IoT têm de ser registados.

Nesta secção, também vamos criar uma identidade de módulo. Os módulos são identidades independentes para componentes que existem num dispositivo IoT, o que permite uma granularidade mais fina quando tem um dispositivo IoT a executar vários processos. Neste tutorial, irá utilizar esta identidade de módulo para o agente de Atualização de Dispositivos que é executado no dispositivo IoT. Para obter mais informações, veja Compreender e utilizar duplos módulos no Hub IoT.

  1. A partir do portal do Azure, navegue para o seu hub IoT.
  2. No painel esquerdo, selecione Devices (Dispositivos). Em seguida, selecione Adicionar Dispositivo.
  3. Em ID do Dispositivo, introduza um nome para o dispositivo. Certifique-se de que a caixa de verificação Degenerar automaticamente as chaves está selecionada.
  4. Selecione Guardar.
  5. Agora, é devolvido à página Dispositivos e o dispositivo que criou deve estar na lista. Selecione esse dispositivo.
  6. Selecione Adicionar Identidade do Módulo.
  7. Em Nome da Identidade do Módulo, introduza um nome para o módulo, por exemplo , DUAgent.
  8. Selecione Guardar

Copiar a cadeia de ligação do módulo

  1. Na vista do dispositivo, deverá ver o novo módulo listado no cabeçalho Identidades do Módulo . Selecione o nome do módulo para abrir os detalhes.
  2. Selecione o ícone Copiar junto a Cadeia de ligação (chave primária). Guarde esta cadeia de ligação para utilizar quando configurar o agente de Atualização de Dispositivos. Esta cadeia é a cadeia de ligação do módulo.

Adicionar uma etiqueta ao módulo duplo

  1. Ainda na página de detalhes da identidade do módulo, selecione Módulo Identity Twin

  2. Adicione um novo valor de etiqueta Atualização de Dispositivo ao mesmo nível modelId que e version no ficheiro duplo, conforme mostrado:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Captura de ecrã da etiqueta ADUGroup no módulo duplo.

    Todos os dispositivos geridos pela Atualização de Dispositivos precisam desta etiqueta reservada, que atribui o dispositivo a um grupo de Atualização de Dispositivos. Pode estar no dispositivo duplo ou num módulo duplo, conforme mostrado aqui. Cada dispositivo só pode ser atribuído a um grupo atualização de dispositivos.

  3. Selecione Guardar. O portal reformata o módulo duplo para incorporar a etiqueta na estrutura json.

Instalar e configurar o agente de Atualização de Dispositivos

O agente da Atualização de Dispositivos é executado em todos os dispositivos geridos pela Atualização de Dispositivos. Para este tutorial, vamos configurá-lo para ser executado como um simulador para que possamos ver como uma atualização pode ser aplicada a um dispositivo sem alterar realmente a configuração do dispositivo.

  1. No seu dispositivo IoT, adicione o repositório de pacotes da Microsoft e, em seguida, adicione a chave de assinatura do pacote Microsoft à sua lista de chaves fidedignas.

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb   
    
  2. Instale os pacotes .deb do agente de Atualização de Dispositivos.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Abra o ficheiro de configuração do agente.

    sudo nano /etc/adu/du-config.json
    
  4. Atualize os seguintes valores no ficheiro de configuração:

    • fabricante: "Contoso" – este valor é utilizado para classificar o dispositivo IoT para segmentar as atualizações.
    • modelo: "Video" – este valor é utilizado para classificar o dispositivo IoT para segmentar atualizações.
    • name: "aduagent"
    • agents.connectionData: forneça a cadeia de ligação que copiou da identidade do módulo.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Para obter mais informações sobre os parâmetros neste passo, veja Ficheiro de configuração da Atualização de Dispositivos.

    Nota

    Também pode utilizar o Serviço de Identidade IoT para aprovisionar o dispositivo. Para tal, instale o serviço de avanço iot antes de instalar o agente de Atualização de Dispositivos. Em seguida, configure o agente de Atualização de Dispositivos com "connectionType": "AIS" e connectionData como uma cadeia em branco no ficheiro de configuração.

  5. Guarde e feche o ficheiro. CTRL+X, Ye Enter.

  6. Configure o agente para ser executado como um simulador. Execute o seguinte comando no dispositivo IoT para que o agente da Atualização de Dispositivos invoque o processador do simulador para processar uma atualização de pacote com SWUpdate (microsoft/swupdate:1).

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Deszipe Tutorial_Simulator.zip o ficheiro que transferiu nos pré-requisitos e copie o sample-du-simulator-data.json ficheiro para a tmp pasta.

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Se /tmp não existir, execute:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Alterar permissões para o novo ficheiro.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Reinicie o agente de Atualização de Dispositivos para aplicar as alterações.

     sudo systemctl restart deviceupdate-agent
    

Importar uma atualização

Nesta secção, vai utilizar os ficheiros TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu os transferidos Tutorial_Simulator.zip nos pré-requisitos. O ficheiro de atualização é reutilizado a partir do tutorial Raspberry Pi. Uma vez que a atualização neste tutorial é simulada, o conteúdo de ficheiro específico não importa.

  1. No seu computador de desenvolvimento, inicie sessão no portal do Azure e aceda ao hub IoT que está configurado com a Atualização de Dispositivos.

  2. No painel de navegação, em Gestão de Dispositivos, selecione Atualizações.

  3. Selecione Importar uma nova atualização.

  4. Selecione Selecionar a partir do contentor de armazenamento.

  5. Selecione uma conta de armazenamento existente ou crie uma nova conta ao selecionar + Conta de armazenamento. Em seguida, selecione um contentor existente ou crie um novo contentor ao selecionar + Contentor. Este contentor será utilizado para preparar os ficheiros de atualização para importação.

    Nota

    Recomendamos que utilize um novo contentor sempre que importar uma atualização para evitar importar acidentalmente ficheiros de atualizações anteriores. Se não utilizar um novo contentor, certifique-se de que elimina quaisquer ficheiros do contentor existente antes de concluir este passo.

    Captura de ecrã que mostra Contas de armazenamento e Contentores.

  6. No contentor, selecione Carregar e aceda aos ficheiros que transferiu nos pré-requisitos. Selecione os ficheiros TutorialImportManifest_Sim.importmanifest.json e os ficheiros adu-update-image-raspberrypi3.swu e, em seguida, selecione Carregar.

  7. Selecione a caixa de verificação por cada ficheiro e, em seguida, selecione o botão Selecionar para regressar à página Importar atualização .

    Captura de ecrã que mostra a seleção de ficheiros carregados no contentor.

  8. Na página Importar atualização , reveja os ficheiros a importar. Em seguida, selecione Importar atualização para iniciar o processo de importação.

    Captura de ecrã que mostra os ficheiros carregados que serão importados como uma atualização.

  9. O processo de importação é iniciado e o ecrã muda para a secção Histórico de Importações . A coluna Estado mostra a importação como Em execução enquanto a importação está em curso e Com êxito quando a importação estiver concluída. Utilize o botão Atualizar para atualizar o estado.

  10. Quando a coluna Estado indicar que a importação foi concluída com êxito, selecione o cabeçalho Atualizações disponíveis . Deverá ver a atualização importada na lista agora.

    Captura de ecrã que mostra a nova atualização listada como uma atualização disponível.

Para obter mais informações sobre o processo de importação, consulte Importar uma atualização para a Atualização de Dispositivos para Hub IoT.

Ver grupos de dispositivos

A Atualização de Dispositivos utiliza grupos para organizar dispositivos. A Atualização de Dispositivos ordena automaticamente os dispositivos em grupos com base nas respetivas etiquetas atribuídas e propriedades de compatibilidade. Cada dispositivo pertence apenas a um grupo, mas os grupos podem ter vários subgrupos para ordenar diferentes classes de dispositivos.

  1. Aceda ao separador Grupos e Implementações na parte superior da página Atualizações.

  2. Veja a lista de grupos e o gráfico de conformidade de atualizações. O gráfico de conformidade de atualizações mostra a contagem de dispositivos em vários estados de conformidade: Na atualização mais recente, novas atualizações disponíveis e Atualizações em curso. Saiba mais sobre a conformidade de atualizações.

    Captura de ecrã que mostra a vista de conformidade de atualizações.

    Deverá ver um grupo de dispositivos que contém o dispositivo simulado que configurou neste tutorial juntamente com quaisquer atualizações disponíveis para os dispositivos no novo grupo. Se existirem dispositivos que não cumpram os requisitos de classe de dispositivo do grupo, estes serão apresentados num grupo inválido correspondente.

Para obter mais informações sobre etiquetas e grupos, veja Gerir grupos de dispositivos.

Implementar a atualização

  1. No separador Grupos e Implementações , deverá ver uma nova atualização disponível para o grupo de dispositivos. Uma ligação para a atualização deve estar em Estado. Poderá ter de atualizar a página.

  2. Selecione o nome do grupo para ver os respetivos detalhes.

  3. Na página de detalhes do grupo, deverá ver que existe uma nova atualização disponível. Selecione Implementar para iniciar a implementação.

    Captura de ecrã que mostra o início de uma implementação de atualização de grupo.

  4. A atualização que importámos na secção anterior está listada como a melhor atualização disponível para este grupo. Selecione Implementar.

  5. Agende a implementação para iniciar imediatamente e, em seguida, selecione Criar.

  6. Na página de detalhes do grupo, navegue para o separador Atualizações atuais. Em Detalhes da implementação, o Estado muda para Ativo.

  7. Depois de o dispositivo ser atualizado com êxito, regresse à página Atualizações. Deverá ver que o gráfico de conformidade e os detalhes de implementação são atualizados para refletir o mesmo.

Monitorizar a implementação de atualizações

  1. Regresse à página de detalhes do grupo e selecione o separador Histórico de implementações .

  2. Selecione Ver detalhes de implementação junto à implementação que criou.

    Captura de ecrã que mostra os Detalhes da implementação.

  3. Selecione Atualizar para ver os detalhes de estado mais recentes.

Concluiu uma atualização de imagem ponto a ponto com êxito com a Atualização de Dispositivos para Hub IoT com o agente de referência do simulador Ubuntu (18.04 x64).

Limpar os recursos

Se pretender continuar para o próximo tutorial, mantenha a Atualização de Dispositivos e Hub IoT recursos.

Quando já não for necessário, pode eliminar estes recursos no portal do Azure.

  1. Navegue para o grupo de recursos no portal do Azure.

  2. Escolha os recursos a eliminar.

    • Se quiser eliminar todos os recursos no grupo, selecione Eliminar grupo de recursos.
    • Se apenas quiser eliminar recursos selecionados, utilize as caixas de verificação para selecionar os recursos e, em seguida, selecione Eliminar.

Passos seguintes

Neste tutorial, aprendeu a importar e implementar uma atualização de imagens. Em seguida, saiba como atualizar pacotes de dispositivos.