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

Este tutorial demonstra uma atualização de ponta a ponta baseada em imagem usando a Atualização de Dispositivo para Hub IoT. A Atualização de Dispositivo do Hub IoT do Azure é compatível com atualizações baseadas em imagem, pacote e script.

As atualizações de imagem fornecem um nível mais alto 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, já que não são apresentados os mesmos desafios que o gerenciamento de pacotes e suas dependências. Devido à natureza atômica, também é possível adotar facilmente um modelo de failover A/B.

Neste tutorial, você aprenderá como:

  • Atribua um dispositivo IoT a um grupo de Atualização de Dispositivo usando marcas.
  • Baixar e instalar uma imagem.
  • Importar uma atualização.
  • Implantar uma atualização de imagem.
  • Monitorar a implantação da atualização.

Pré-requisitos

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

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

  • Baixe o arquivo zip chamado Tutorial_Simulator.zip de Ativos de Lançamento na última versão e descompacte-o.

    Se o dispositivo de teste for diferente do computador de desenvolvimento, baixe o arquivo zip em ambos.

    Você pode usar wget para baixar o arquivo 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
    

Registrar um dispositivo e configurar uma identidade do módulo

Adicione um dispositivo ao registro de dispositivo no hub IoT. Todos os dispositivos que se conectam ao Hub IoT precisam ser registrados.

Nesta seção, também criaremos uma identidade do módulo. Os módulos são identidades independentes para componentes que existem em um dispositivo IoT, o que permite granularidade mais fina ao ter um dispositivo IoT executando vários processos. Para este tutorial, você usará essa identidade do módulo para o agente de Atualização de Dispositivo executado no dispositivo IoT. Para obter mais informações, confira Noções básicas e uso de módulos gêmeos no Hub IoT.

  1. No portal do Azure, navegue até o seu hub IoT.
  2. No painel esquerdo, selecione Dispositivos. A seguir, selecione Adicionar Dispositivo.
  3. Em ID do Dispositivo, insira um nome para o dispositivo. Verifique se a caixa de seleção Gerar chaves automaticamente está marcada.
  4. Selecione Salvar.
  5. Agora, você é redirecionado à página Dispositivos, e o dispositivo que você criou deverá estar na lista. Selecione o dispositivo.
  6. Selecione Adicionar Identidade do Módulo.
  7. Em Nome da Identidade do Módulo, insira um nome para o módulo, por exemplo, DUAgent.
  8. Selecione Salvar

Copie a cadeia de conexão do módulo

  1. No modo de exibição do dispositivo, você deverá ver seu novo módulo listado no título Identidades do Módulo. Selecione o nome do módulo para abrir seus detalhes.
  2. Selecione o ícone Copiar ao lado de Cadeia de conexão (chave primária). Salve essa cadeia de conexão a ser usada ao configurar o agente de Atualização de Dispositivo. Essa cadeia de caracteres é a cadeia de conexão do módulo.

Adicionar uma marca ao módulo gêmeo

  1. Ainda na página de detalhes da identidade do módulo, selecione Identidade do Módulo Gêmeo

  2. Adicione um novo valor de marca à Atualização de Dispositivo no mesmo nível como modelId e version no arquivo gêmeo, conforme mostrado:

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

    Captura de tela da marca ADUGroup no módulo gêmeo.

    Cada dispositivo gerenciado pela Atualização de Dispositivo precisa dessa marca reservada, que atribui o dispositivo a um grupo de Atualização de Dispositivo. Ele pode estar no dispositivo gêmeo ou em um módulo gêmeo, conforme mostrado aqui. Cada dispositivo só pode ser atribuído a um grupo de Atualização de Dispositivo.

  3. Selecione Salvar. O portal reformata o módulo gêmeo para incorporar a marca na estrutura JSON.

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

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

  1. Em seu dispositivo IoT, adicione o repositório de pacotes da Microsoft e, em seguida, adicione a chave de assinatura de pacote da Microsoft à sua lista de chaves confiáveis.

    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 Dispositivo.

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

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

    • fabricante: "Contoso" – Esse valor é usado para classificar o dispositivo IoT para direcionar atualizações.
    • modelo: "Video" – Esse valor é usado para classificar o dispositivo IoT para direcionar atualizações.
    • nome: "aduagent"
    • agents.connectionData: forneça a cadeia de conexão que você copiou da identidade do módulo.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Para obter mais informações sobre os parâmetros nesta etapa, consulte Arquivo de configuração de Atualização de Dispositivo.

    Observação

    Você também pode usar o Serviço de Identidade IoT para provisionar o dispositivo. Para fazer isso, instale o serviço de entidade iot antes de instalar o agente de Atualização de Dispositivo. Em seguida, configure o agente de Atualização de Dispositivo com "connectionType": "AIS" e connectionData como uma cadeia de caracteres em branco no arquivo de configuração.

  5. Salve e feche o arquivo. CTRL+X, Y e Enter.

  6. Configure o agente para ser executado como um simulador. Execute o seguinte comando no dispositivo IoT para que o agente de Atualização de Dispositivo invoque o manipulador 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. Descompacte o arquivo Tutorial_Simulator.zip que você baixou nos pré-requisitos e copie o arquivo sample-du-simulator-data.json para a pasta tmp.

    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. Altere as permissões do novo arquivo.

    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 Dispositivo para aplicar suas alterações.

     sudo systemctl restart deviceupdate-agent
    

Importar uma atualização

Você precisará dos arquivos TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu que estão no Tutorial_Simulator.zip baixado nos pré-requisitos. O arquivo de atualização é reutilizado no tutorial do Raspberry Pi. Como a atualização neste tutorial é simulada, o conteúdo do arquivo específico não importa.

  1. No computador de desenvolvimento, entre no portal do Azure e acesse o Hub IoT configurado com a Atualização de Dispositivo.

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

  3. Selecione Importar nova atualização.

  4. Selecione Selecionar no contêiner de armazenamento.

  5. Selecione uma conta de armazenamento existente ou crie uma conta, selecionando + Conta de armazenamento. Em seguida, selecione um contêiner existente ou crie um contêiner, selecionando + Contêiner. Esse contêiner será usado para preparar os arquivos de atualização para importação.

    Observação

    É recomendável usar um contêiner novo cada vez que você importar uma atualização para evitar a importação acidental de arquivos de atualizações anteriores. Se você não usar um contêiner novo, não deixe de excluir todos os arquivos do contêiner existente antes de concluir esta etapa.

    Captura de tela que mostra as contas de armazenamento e os contêineres.

  6. No contêiner, selecione Carregar e navegue até os arquivos baixados nos pré-requisitos. Selecione os arquivos TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu e selecione Carregar.

  7. Marque a caixa de seleção de cada arquivo e, em seguida, selecione o botão Selecionar para retornar à página Importar atualização.

    Captura de tela que mostra a seleção de arquivos carregados no contêiner.

  8. Na página Importar atualização, examine os arquivos a serem importados. Em seguida, selecione Importar atualização para iniciar o processo de importação.

    Captura de tela que mostra arquivos carregados que serão importados como uma atualização.

  9. O processo de importação é iniciado e a tela é alterada para a seção Histórico de importação. A coluna Status mostra a importação como Em execução enquanto a importação está em andamento e Bem-sucedida quando a importação é concluída. Use o botão Atualizar para atualizar o status.

  10. Quando a coluna Status indicar que a importação foi bem-sucedida, selecione o cabeçalho Atualizações disponíveis. Agora a atualização importada deve estar presente na lista.

    Captura de tela 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 Dispositivo para Hub IoT.

Exibir grupos de dispositivos

A Atualização de Dispositivos usa grupos para organizar os dispositivos. A Atualização de Dispositivo classifica automaticamente os dispositivos em grupos com base nas marcas atribuídas e propriedades de compatibilidade. Cada dispositivo pertence a apenas um grupo, mas os grupos podem ter vários subgrupos para classificar as diferentes classes de dispositivos.

  1. Acesse a guia Grupos e Implantações na parte superior da página Atualizações.

  2. Exiba a lista de grupos e o gráfico de conformidade de atualização. O gráfico de conformidade da atualização mostra a contagem de dispositivos em vários estados de conformidade: Com a atualização mais recente, Novas atualizações disponíveis e Atualizações em andamento. Saiba mais sobre a conformidade de atualizações.

    Captura de tela que mostra a exibição de conformidade da atualização.

    Você deverá visualizar um grupo de dispositivos contendo o dispositivo simulado que você configurou neste tutorial juntamente com as atualizações disponíveis para os dispositivos no novo grupo. Se houver dispositivos que não atendem aos requisitos de classe de dispositivo do grupo, eles aparecerão em um grupo inválido correspondente.

Para obter mais informações sobre as marcas e os grupos, consulte Gerenciar grupos de dispositivos.

Implantar a atualização

  1. Na guia Grupos e Implantações, você deverá ver uma nova atualização disponível para o grupo de dispositivos. Um link para a atualização deve estar em Status. Talvez seja necessário atualizar a página.

  2. Selecione o nome do grupo para exibir os detalhes.

  3. Na página de detalhes do grupo, você deverá ver uma nova atualização disponível. Selecione Implantar para iniciar a implantação.

    Captura de tela que mostra o início de uma implantação de atualização de grupo.

  4. A atualização que importamos na seção anterior é listada como a melhor atualização disponível para esse grupo. Selecione Implantar.

  5. Agende sua implantação para iniciar imediatamente e, em seguida, selecione Criar.

  6. Na página de detalhes do grupo, navegue até a guia Atualizações atuais. Em Detalhes da implantação, Status passa a Ativo.

  7. Depois que o dispositivo for atualizado com êxito, retorne à página Atualizações. Você deve ver que o gráfico de conformidade e os detalhes de implantação estão atualizados para refletir as mesmas informações.

Monitorar a implantação da atualização

  1. Retorne à página de detalhes do grupo e selecione a guia Histórico de implantação.

  2. Selecione Exibir detalhes da implantação ao lado da implantação criada.

    Captura de tela que mostra os detalhes da implantação.

  3. Selecione Atualizar para exibir os detalhes mais recentes do status.

Você acabou de concluir uma atualização de imagem de ponta a ponta com êxito usando a Atualização de Dispositivo para Hub IoT e o agente de referência do simulador do Ubuntu (18.04 x64).

Limpar recursos

Se você quiser continuar para o próximo tutorial, mantenha os recursos da Atualização de Dispositivo e do Hub IoT.

Quando não for mais necessário, você poderá excluir esses recursos no portal do Azure.

  1. Procure o grupo de recursos no portal do Azure.

  2. Escolha os recursos a serem excluídos.

    • Se você quiser excluir todos os recursos do grupo, selecione Excluir grupo de recursos.
    • Se você quiser apenas excluir recursos selecionados, use as caixas de seleção para selecionar os recursos e selecione Excluir.

Próximas etapas

Neste tutorial, você aprendeu a importar e implantar uma atualização de imagem. Em seguida, saiba como atualizar pacotes de dispositivos.