Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Atualização de Dispositivo para o Hub IoT do Azure dá suporte a 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 porque ele não apresenta os mesmos desafios que os pacotes e suas dependências. Devido à sua natureza atómica, também é possível adotar facilmente um modelo de transição A/B.
Este tutorial orienta você pelas etapas para concluir uma atualização completa baseada em imagem usando a Atualização de Dispositivo para o Hub IoT em uma placa Raspberry Pi 3 B+.
Neste tutorial, você aprenderá a:
- Faça o download de uma imagem.
- Adicione uma tag ao seu dispositivo IoT.
- Importe uma atualização.
- Crie um grupo de dispositivos.
- Implante uma atualização de imagem.
- Monitore a implantação da atualização.
Observação
As atualizações de imagem neste tutorial foram validadas na placa Raspberry Pi B3.
Pré-requisitos
Se ainda não tiver feito isso, crie uma conta e uma instância de Atualização de Dispositivo e configure um hub IoT.
Descarregar a imagem
Fornecemos imagens de exemplo em Recursos na página de lançamentos de Atualizações de Dispositivos no GitHub. O arquivo .gz é a imagem base que pode ser gravada numa placa Raspberry Pi 3 B+. O arquivo swUpdate é a atualização que você importaria por meio da Atualização de Dispositivo para o Hub IoT.
Gravar um cartão SD com a imagem
Use a sua ferramenta favorita para gravar o sistema operativo e instalar a imagem base de Atualização de Dispositivo (adu-base-image) no cartão SD que será usado no dispositivo Raspberry Pi 3 B+.
Utilize o bmaptool para gravar o cartão SD
Instale o
bmaptoolutilitário, se ainda não o tiver feito.sudo apt-get install bmap-toolsLocalize o caminho para o cartão SD em
/dev. O caminho deve ser parecido com/dev/sd*ou/dev/mmcblk*. Você pode usar odmesgutilitário para ajudar a localizar o caminho correto.Desmonte todas as partições montadas antes de piscar.
sudo umount /dev/<device>Certifique-se de que tem permissões de escrita para o dispositivo.
sudo chmod a+rw /dev/<device>Opcional: Para um flasheamento mais rápido, transfira o ficheiro bimap e o ficheiro de imagem e coloque-os na mesma diretoria.
Flashear o cartão SD.
sudo bmaptool copy <path to image> /dev/<device>
A Atualização de Dispositivo para o software Hub IoT do Azure está sujeita aos seguintes termos de licença:
Leia os termos de licença antes de usar o agente. A sua instalação e utilização constituem a sua aceitação destes termos. Se você não concordar com os termos de licença, não use o agente de Atualização de Dispositivo para o Hub IoT.
Criar um dispositivo ou módulo no Hub IoT e obter uma cadeia de conexão
Agora, adicione o dispositivo ao Hub IoT. De dentro do Hub IoT, uma cadeia de conexão é gerada para o dispositivo.
No portal do Azure, inicie o Hub IoT.
Crie um novo dispositivo.
No painel esquerdo, selecione Devices (Dispositivos). Em seguida, selecione Novo.
Em ID do dispositivo, insira um nome para o dispositivo. Verifique se a caixa de seleção Gerar chaves automaticamente está marcada.
Selecione Guardar. Na página Dispositivos , o dispositivo criado deve estar na lista.
Obtenha a cadeia de conexão do dispositivo usando uma das duas opções:
- Opção 1: Usar o agente de Atualização de Dispositivo com uma identidade de módulo: Na mesma página Dispositivos , selecione Adicionar Identidade do Módulo na parte superior. Crie um novo módulo de atualização de dispositivo com o nome IoTHubDeviceUpdate. Escolha outras opções à medida que se aplicam ao seu caso de uso e, em seguida, selecione Guardar. Selecione o módulo recém-criado. Na visualização do módulo, selecione o ícone Copiar ao lado de Cadeia de conexão primária.
- Opção 2: Use o agente de Atualização de Dispositivo com a identidade do dispositivo: na visualização do dispositivo, selecione o ícone Copiar ao lado de Cadeia de Conexão Primária.
Cole os caracteres copiados em algum lugar para uso posterior nas seguintes etapas:
Esta cadeia copiada é a cadeia de conexão do seu dispositivo.
Preparar configurações no dispositivo para a Atualização de Dispositivo para o Hub IoT
Dois arquivos de configuração devem estar no dispositivo para que a Atualização de Dispositivo para o Hub IoT seja configurada corretamente. O primeiro arquivo é o du-config.json arquivo, que deve existir em /adu/du-config.json. O segundo arquivo é o du-diagnostics-config.json arquivo, que deve existir em /adu/du-diagnostics-config.json.
Aqui estão dois exemplos para o du-config.json e os du-diagnostics-config.json arquivos:
Exemplo du-config.json
{
"schemaVersion": "1.0",
"aduShellTrustedUsers": [
"adu",
"do"
],
"manufacturer": "fabrikam",
"model": "vacuum",
"agents": [
{
"name": "main",
"runas": "adu",
"connectionSource": {
"connectionType": "string",
"connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
},
"manufacturer": "fabrikam",
"model": "vacuum"
}
]
}
Exemplo du-diagnostics-config.json
{
"logComponents":[
{
"componentName":"adu",
"logPath":"/adu/logs/"
},
{
"componentName":"do",
"logPath":"/var/log/deliveryoptimization-agent/"
}
],
"maxKilobytesToUploadPerLogPath":50
}
Configurar o agente de Atualização de Dispositivo no Raspberry Pi
Certifique-se de que o Raspberry Pi 3 está conectado à rede.
Siga estas instruções para adicionar os detalhes de configuração:
Primeiro, SSH na máquina usando o seguinte comando na janela do PowerShell:
ssh raspberrypi3 -l rootCrie ou abra o
du-config.jsonarquivo para edição usando:nano /adu/du-config.jsonDepois de executar o comando, você verá um editor aberto com o arquivo. Se você nunca criou o arquivo, ele estará vazio. Agora, copie o conteúdo do exemplo anterior du-config.json e substitua as configurações necessárias para o seu dispositivo. Em seguida, substitua a cadeia de conexão de exemplo pela do dispositivo que você criou nas etapas anteriores.
Depois de concluir as alterações, selecione Ctrl+X para sair do editor. Em seguida, digite y para salvar as alterações.
Agora você precisa criar o
du-diagnostics-config.jsonarquivo usando comandos semelhantes. Comece criando ou abrindo odu-diagnostics-config.jsonarquivo para edição usando:nano /adu/du-diagnostics-config.jsonCopie o conteúdo do exemplo anterior du-diagnostics-config.json e substitua quaisquer configurações que diferem da compilação padrão. O ficheiro de exemplo du-diagnostics-config.json representa os locais de registo padrão para Atualização de Dispositivos para o Hub IoT. Você só precisa alterá-los se sua implementação for diferente.
Depois de concluir as alterações, selecione Ctrl+X para sair do editor. Em seguida, digite y para salvar as alterações.
Use o comando a seguir para mostrar os arquivos localizados no
/adu/diretório. Você deve ver ambos os seus arquivos de configuração files.du-diagnostics-config.json para edição usando:ls -la /adu/
Reinicie o daemon do sistema de Atualização de Dispositivo para certificar-se de que as configurações foram aplicadas. Use o seguinte comando dentro do terminal conectado ao
raspberrypi:systemctl start adu-agentVerifique se o agente está ativo usando o seguinte comando:
systemctl status adu-agentVocê deve ver o status voltar como vivo e verde.
Conectar o dispositivo na Atualização de Dispositivo para o Hub IoT
No painel esquerdo, selecione Devices (Dispositivos).
Selecione o link com o nome do dispositivo.
Na parte superior da página, selecione Device Twin se você estiver se conectando diretamente à Atualização de Dispositivo usando a identidade do dispositivo IoT. Caso contrário, selecione o módulo que você criou e selecione seu módulo gêmeo.
Na secção reportada das propriedades do Device Twin, procure pela versão do kernel do Linux. Para um novo dispositivo, que não recebeu uma atualização da Atualização de Dispositivo, o valor DeviceManagement:DeviceInformation:1.swVersion representa a versão de firmware em execução no dispositivo. Depois que uma atualização for aplicada a um dispositivo, a Atualização de Dispositivo usará o valor da propriedade AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId para representar a versão de firmware em execução no dispositivo.
Os arquivos de imagem de base e atualização têm um número de versão no nome do arquivo.
adu-<image type>-image-<machine>-<version number>.<extension>
Use esse número de versão na seção "Importar a atualização" posterior.
Adicionar uma etiqueta ao dispositivo
Entre no portal do Azure e vá para o hub IoT.
No painel esquerdo, em Dispositivos, localize seu dispositivo IoT e vá para o dispositivo gêmeo ou módulo gêmeo.
No módulo twin do agente de Atualização de Dispositivo, exclua todos os valores de tag de Atualização de Dispositivo existentes, configurando-os para nulo. Se você estiver usando a identidade do dispositivo com o agente de Atualização de Dispositivo, faça essas alterações no gêmeo do dispositivo.
Adicione um novo valor de tag de Atualização de Dispositivo, conforme mostrado:
"tags": { "ADUGroup": "<CustomTagValue>" }
Importar a atualização
Baixe o manifesto do tutorial de exemplo (Tutorial Import Manifest_Pi.json) e a atualização de exemplo (adu-update-image-raspberrypi3-0.6.5073.1.swu) do Release Assets para obter o agente mais recente.
Entre no portal do Azure e vá para o seu hub IoT com a Atualização de Dispositivo. No painel esquerdo, em Gerenciamento Automático de Dispositivos, selecione Atualizações.
Selecione a guia Atualizações.
Selecione + Importar nova atualização.
Selecione + Seleção do contêiner de armazenamento. Selecione uma conta existente ou crie uma nova conta usando + Conta de armazenamento. Em seguida, selecione um contêiner existente ou crie um novo contêiner usando + Container. Esse contêiner será usado para preparar seus arquivos de atualização para importação.
Observação
Recomendamos que você use um novo contêiner sempre que importar uma atualização para evitar a importação acidental de arquivos de atualizações anteriores. Se você não usar um novo contêiner, certifique-se de excluir todos os arquivos do contêiner existente antes de concluir esta etapa.
No seu contêiner, selecione Carregar e vá para os arquivos que você baixou na etapa 1. Depois de selecionar todos os seus arquivos de atualização, selecione Carregar. Em seguida, selecione o botão Selecionar para retornar à página Importar atualização .
Esta captura de tela mostra a etapa de importação. Os nomes de arquivo podem não corresponder aos usados no exemplo.
Na página Importar atualização, revise os arquivos a serem importados. Em seguida, selecione Importar atualização para iniciar o processo de importação.
O processo de importação começa e a tela alterna para a seção Histórico de importação . Quando a coluna Status indicar que a importação foi bem-sucedida, selecione o cabeçalho Atualizações Disponíveis. Você deve ver sua atualização importada na lista agora.
Saiba mais sobre como importar atualizações.
Criar um grupo de atualização
Vá para a aba Grupos e Implementações na parte superior da página.
Selecione Adicionar grupo para criar um novo grupo.
Selecione uma marca do Hub IoT e uma classe de dispositivo na lista. Em seguida, selecione Criar grupo.
Depois de o grupo ser criado, o gráfico de conformidade de atualização e a lista de grupos são atualizados. 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. Saiba mais sobre a conformidade com atualizações.
Você deve ver seu grupo recém-criado e todas as atualizações disponíveis para os dispositivos no novo grupo. Se houver dispositivos que não atendam aos requisitos de classe de dispositivo do grupo, eles aparecerão em um grupo inválido correspondente. Para implantar a melhor atualização disponível para o novo grupo definido pelo usuário a partir desse modo de exibição, selecione Implantar ao lado do grupo.
Saiba mais sobre como adicionar tags e criar grupos de atualização.
Implantar a atualização
Depois que o grupo for criado, você verá uma nova atualização disponível para seu grupo de dispositivos. Um link para a atualização deve estar em Melhor atualização. Talvez seja necessário atualizar uma vez. Saiba mais sobre a conformidade da atualização.
Selecione o grupo-alvo selecionando o nome do grupo. Você será direcionado para os detalhes do grupo em Informações Básicas do Grupo.
Para iniciar a implantação, vá para a guia Implantação atual . Selecione o link de implantação ao lado da atualização desejada na seção Atualizações disponíveis . A melhor atualização disponível para um determinado grupo é indicada com um destaque de Melhor.
Agende sua implantação para começar imediatamente ou no futuro. Depois, selecione Criar.
Em Detalhes da implantação, Status se transforma em Ativo. A atualização implantada está marcada com (a implantar).
Veja o gráfico de conformidade para ver se a atualização está em andamento.
Depois que o dispositivo for atualizado com êxito, você verá que o gráfico de conformidade e os detalhes de implantação foram atualizados para refletir o mesmo.
Monitorar a implantação da atualização
Na parte superior da página, selecione o separador Histórico de Implementação.
Selecione Detalhes ao lado da implantação que você criou.
Selecione Atualizar para visualizar os detalhes de status mais recentes.
Agora você concluiu uma atualização de imagem de ponta a ponta bem-sucedida usando a Atualização de Dispositivo para o Hub IoT em um dispositivo Raspberry Pi 3 B+.
Limpeza de recursos
Quando não for mais necessário, limpe sua conta de Atualização de Dispositivo, instância, hub IoT e dispositivo IoT.