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 exemplo1.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.
- No portal do Azure, navegue até o seu hub IoT.
- No painel esquerdo, selecione Dispositivos. A seguir, 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 Salvar.
- Agora, você é redirecionado à página Dispositivos, e o dispositivo que você criou deverá estar na lista. Selecione o dispositivo.
- Selecione Adicionar Identidade do Módulo.
- Em Nome da Identidade do Módulo, insira um nome para o módulo, por exemplo, DUAgent.
- Selecione Salvar
Copie a cadeia de conexão do módulo
- 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.
- 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
Ainda na página de detalhes da identidade do módulo, selecione Identidade do Módulo Gêmeo
Adicione um novo valor de marca à Atualização de Dispositivo no mesmo nível como
modelId
eversion
no arquivo gêmeo, conforme mostrado:"tags": { "ADUGroup": "DU-simulator-tutorial" },
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.
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.
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
Instale os pacotes .deb do agente de Atualização de Dispositivo.
sudo apt-get update sudo apt-get install deviceupdate-agent
Abra o arquivo de configuração do agente.
sudo nano /etc/adu/du-config.json
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"
econnectionData
como uma cadeia de caracteres em branco no arquivo de configuração.- fabricante:
Salve e feche o arquivo.
CTRL
+X
,Y
eEnter
.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
Descompacte o arquivo
Tutorial_Simulator.zip
que você baixou nos pré-requisitos e copie o arquivosample-du-simulator-data.json
para a pastatmp
.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
Altere as permissões do novo arquivo.
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 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.
No computador de desenvolvimento, entre no portal do Azure e acesse o Hub IoT configurado com a Atualização de Dispositivo.
No painel de navegação, em Gerenciamento de Dispositivos, selecione Atualizações.
Selecione Importar nova atualização.
Selecione Selecionar no contêiner de armazenamento.
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.
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.
Marque a caixa de seleção de cada arquivo e, em seguida, selecione o botão Selecionar para retornar à página Importar atualização.
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.
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.
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.
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.
Acesse a guia Grupos e Implantações na parte superior da página Atualizações.
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.
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
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.
Selecione o nome do grupo para exibir os detalhes.
Na página de detalhes do grupo, você deverá ver uma nova atualização disponível. Selecione Implantar para iniciar a implantação.
A atualização que importamos na seção anterior é listada como a melhor atualização disponível para esse grupo. Selecione Implantar.
Agende sua implantação para iniciar imediatamente e, em seguida, selecione Criar.
Na página de detalhes do grupo, navegue até a guia Atualizações atuais. Em Detalhes da implantação, Status passa a Ativo.
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
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 criada.
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.
Procure o grupo de recursos no portal do Azure.
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.