Tutorial: Atualização de Dispositivo do Azure para o Hub IoT usando um agente de simulador
A Atualização de Dispositivo do Azure para Hub IoT dá suporte a atualizações baseadas em imagem, pacote e script. Este tutorial demonstra uma atualização de dispositivo baseada em imagem de ponta a ponta que usa um agente de simulador do Ubuntu.
As atualizações de imagem fornecem um alto nível de confiança no estado final do dispositivo e não representam os mesmos desafios de gerenciamento de pacotes e dependências que as atualizações baseadas em pacotes ou scripts. É mais fácil replicar os resultados de uma atualização de imagem entre um ambiente de pré-produção e de produção ou adotar facilmente um modelo de failover A/B.
Neste tutorial:
- Atribua um dispositivo IoT a um grupo de Atualização de Dispositivo usando tags.
- Transfira e instale uma atualização de imagem.
- Importe a atualização da imagem.
- Implante a atualização de imagem.
- Exiba o histórico de implantação da atualização.
Pré-requisitos
- Uma máquina física ou virtual Ubuntu 18.04 x64
- Uma conta e instância de Atualização de Dispositivo configuradas com um hub IoT
Registrar e configurar um dispositivo e módulo
Adicione um dispositivo ao registro do dispositivo em seu hub IoT. Todos os dispositivos que se conectam ao Hub IoT devem ser registrados.
- No portal do Azure, abra a página do hub IoT associada à sua instância de Atualização de Dispositivo.
- No painel de navegação, selecione Dispositivos de gerenciamento de>dispositivos.
- Na página Dispositivos, selecione Adicionar dispositivo.
- Em ID do dispositivo, insira um nome para o dispositivo. Verifique se a caixa de seleção Gerar chaves automaticamente está marcada.
- Selecione Guardar. O dispositivo aparece na lista na página Dispositivos .
Criar uma identidade de módulo
Depois de registrar o dispositivo, crie uma identidade de módulo. Os módulos são identidades independentes para componentes de dispositivos IoT, que permitem uma granularidade mais fina quando o dispositivo executa vários processos.
Para este tutorial, você cria uma identidade de módulo para o agente de Atualização de Dispositivo que é executado no dispositivo. Para obter mais informações, consulte Compreender e usar gêmeos de módulo no Hub IoT.
- Na página Dispositivos, selecione o dispositivo que registou.
- Na página do dispositivo, selecione Adicionar identidade do módulo.
- Na página Adicionar Identidade do Módulo, em Nome da Identidade do Módulo, insira um nome para o módulo, como DeviceUpdateAgent.
- Selecione Guardar. A nova identidade do módulo aparece na página do dispositivo em Identidades do módulo.
- Selecione o nome do módulo e, na página Detalhes da Identidade do Módulo, selecione o ícone Copiar ao lado de Cadeia de conexão (chave primária). Salve esta cadeia de conexão de módulo para usar ao configurar o agente de Atualização de Dispositivo.
Adicionar uma etiqueta de grupo ao seu módulo twin
A Atualização de Dispositivo organiza automaticamente os dispositivos em grupos com base nas etiquetas atribuídas e nas propriedades de compatibilidade. Cada dispositivo pertence a apenas um grupo, mas os grupos podem ter vários subgrupos para classificar diferentes classes de dispositivos.
Pode atribuir uma etiqueta a qualquer dispositivo que a Atualização de Dispositivo consiga atribuir o dispositivo a um grupo de Atualização de Dispositivo. A tag pode estar no dispositivo twin ou no módulo twin como neste tutorial. Cada dispositivo pode ser atribuído a apenas um grupo de Atualização de Dispositivo.
Na página Detalhes da Identidade do Módulo, selecione Gêmeo de Identidade do Módulo.
Na página Module Identity Twin, adicione uma nova
DeviceUpdateGroup
tag ao código JSON no mesmo nível de eversion
, damodelId
seguinte maneira:"tags": { "DeviceUpdateGroup": "DU-simulator-tutorial" },
Selecione Guardar. O portal reformata o módulo gêmeo para incorporar a tag 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. Neste tutorial, você instala o agente de Atualização de Dispositivo no dispositivo Ubuntu 18.04 e o configura para ser executado como um simulador, demonstrando como você pode aplicar uma atualização a um dispositivo sem alterar a configuração do dispositivo.
Nota
Você também pode usar o Serviço de Identidade IoT do Azure para provisionar o dispositivo. Para fazer isso, instale o Azure IoT Identity Service antes de instalar o agente de Atualização de Dispositivo. Em seguida, configure o agente de Atualização de Dispositivo com "connectionType": "AIS"
e deixe connectionData
como uma cadeia de caracteres em branco no arquivo de configuração.
Adicione o repositório de pacotes da Microsoft e, em seguida, adicione a chave de assinatura do pacote 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
Instale o agente de Atualização de Dispositivo .deb pacotes.
sudo apt-get update sudo apt-get install deviceupdate-agent
Abra o arquivo de configuração do agente du-config.json.
sudo nano /etc/adu/du-config.json
Atualize du-config.json com os seguintes valores de exemplo. Substitua o espaço reservado
<connection string>
pela cadeia de conexão copiada da identidade do módulo. Para obter mais informações sobre os parâmetros, consulte Arquivo de configuração de atualização de dispositivo.manufacturer: "contoso"
model: "video"
agents.name: "aduagent"
agents.connectionData: <connection string>
agents.manufacturer: "contoso"
agents.model: "video"
O arquivo du-config.json editado deve ter esta aparência:
{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "video", "agents": [ { "name": "aduagent", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": <connection string> }, "manufacturer": "contoso", "model": "video" } ] }
Pressione Ctrl+X para sair do editor e digite y para salvar as alterações.
Para configurar o agente para ser executado como um simulador, execute o seguinte comando no dispositivo IoT. O agente de Atualização de Dispositivo invoca o manipulador do simulador para processar atualizações que usam a extensão Microsoft SWUpdate.
sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
Obter os arquivos do simulador
Baixe e extraia o arquivo Tutorial_Simulator.zip da seção Ativos da versão mais recente dos lançamentos de atualização do dispositivo GitHub para sua máquina Ubuntu 18.04.
Você pode usar
wget
para baixar o arquivo ZIP. Substitua<release_version>
pela versão mais recente, por exemplo1.0.0
.wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
Copie o arquivo sample-du-simulator-data.json da pasta Tutorial_Simulator extraída para a pasta tmp.
cp sample-du-simulator-data.json /tmp/du-simulator-data.json
Nota
Se a pasta tmp não existir, crie-a da seguinte forma:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Altere as permissões para o arquivo /tmp/sample-du-simulator-data.json .
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Reinicie o agente de Atualização de Dispositivo para aplicar as alterações.
sudo systemctl restart deviceupdate-agent
Importar a atualização
Baixe e extraia o arquivo Tutorial_Simulator.zip da seção Ativos da versão mais recente dos lançamentos de atualização de dispositivo do GitHub para sua máquina de desenvolvimento, se for diferente do seu dispositivo Ubuntu 18.04 IoT. Esta seção usa os arquivos TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu da pasta Tutorial_Simulator .
O arquivo de atualização é o mesmo do tutorial do Raspberry Pi. Como a atualização neste tutorial é simulada, o conteúdo específico do arquivo não importa.
Em sua máquina de desenvolvimento, entre no portal do Azure e vá para o hub IoT configurado com sua instância de Atualização de Dispositivo.
No painel de navegação, selecione Atualizações de gerenciamento de>dispositivos.
Na página Atualizações, selecione Importar uma nova atualização.
Na página Importar atualização, selecione Selecionar do contêiner de armazenamento.
Selecione uma conta de armazenamento existente ou crie uma nova conta selecionando Conta de armazenamento.
Selecione um contêiner existente ou crie um novo contêiner selecionando Contêiner. Esse contêiner é usado para preparar os arquivos de atualização para importação.
Nota
Para evitar a importação acidental de arquivos de atualizações anteriores, use um novo contêiner sempre que importar uma atualização. Se você não usar um novo contêiner, certifique-se de excluir todos os arquivos do contêiner existente.
Na página do contêiner, selecione Carregar. Procure e selecione os arquivos TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu e, em seguida, selecione Carregar.
Marque as caixas de seleção por ambos os arquivos e, em seguida, selecione Selecionar para retornar à página Importar atualização .
Na página Importar atualização, revise os arquivos a serem importados e selecione Importar atualização.
O processo de importação começa e você pode selecionar Exibir histórico de importação para exibir o histórico e o status das importações. Na página Histórico de atualizações , o campo Status mostra Bem-sucedido quando a importação for concluída. Você pode selecionar Atualizar para atualizar o status.
A atualização importada agora aparece na página Atualizações .
Para obter mais informações sobre o processo de importação, consulte Importar uma atualização para Atualização de dispositivo para o Hub IoT.
Selecione o grupo de dispositivos
Você pode usar a tag de grupo aplicada ao seu dispositivo para implantar a atualização no grupo de dispositivos. Selecione a guia Grupos e implantações na parte superior da página Atualizações para exibir a lista de grupos e implantações e o gráfico de conformidade de atualizações.
O gráfico de conformidade de atualização mostra a contagem de dispositivos em vários estados de conformidade: Na última atualização, Novas atualizações disponíveis e Atualizações em andamento. Para obter mais informações, consulte Conformidade com a Atualização de Dispositivo.
Em Nome do grupo, você verá uma lista de todos os grupos de dispositivos conectados a esse hub IoT e suas atualizações disponíveis, com links para implantar as atualizações em Status. Todos os dispositivos que não atendem aos requisitos de classe de dispositivo de um grupo aparecem em um grupo inválido correspondente. Para obter mais informações sobre tags e grupos, consulte Gerenciar grupos de dispositivos.
Você verá o grupo de dispositivos que contém o dispositivo simulado configurado neste tutorial. Selecione o nome do grupo para ver os seus detalhes.
Implantar a atualização
Na página Detalhes do grupo, você verá uma nova atualização disponível para esse grupo. Selecione Implantar para iniciar a implantação.
A atualização importada está listada como a melhor atualização disponível para este grupo. Selecione Implementar.
Agende sua implantação para iniciar imediatamente e selecione Criar.
Navegue até a guia Atualizações atuais. Em Detalhes da implantação, Status se transforma em Ativo.
Depois que o dispositivo for atualizado com êxito, retorne à página Atualizações . Você deve ver que seu gráfico de conformidade e detalhes de implantação foram atualizados para incluir a atualização instalada.
Exibir histórico de implantação de atualizações
Retorne à página de detalhes do grupo e selecione a guia Histórico de implantação.
Selecione Exibir detalhes da implantação ao lado da implantação que você criou. Selecione Atualizar para visualizar os detalhes de status mais recentes.
Clean up resources (Limpar recursos)
Se você vai continuar para o próximo tutorial, mantenha seus recursos de Atualização de Dispositivo e Hub IoT. Quando não precisar mais dos recursos criados para este tutorial, você poderá excluí-los.
- No portal do Azure, navegue até o grupo de recursos que contém os recursos.
- Se quiser excluir todos os recursos do grupo, selecione Excluir grupo de recursos.
- Se pretender eliminar apenas alguns dos recursos, utilize as caixas de verificação para selecionar os recursos e, em seguida, selecione Eliminar.