Provisionar a Atualização de Dispositivo do Azure para o agente do Hub IoT

O agente do módulo de Atualização de Dispositivo pode ser executado junto com outros processos do sistema e módulos do IoT Edge que se conectam ao seu Hub IoT como parte do mesmo dispositivo lógico. Este artigo descreve como provisionar o agente de Atualização de Dispositivo como uma identidade de módulo.

Nota

Use a versão 1.x mais recente da implementação de referência do agente de atualização de dispositivos para beneficiar das melhorias mais recentes. Verifique a versão instalada na secção de propriedades do seu dispositivo gémeo IoT. Para obter mais informações, consulte as plataformas suportadas do Device Update for Hub IoT.

Identidade do módulo e identidade do dispositivo

Você pode criar até 50 identidades de módulo em cada identidade de dispositivo do Hub IoT do Azure. Cada identidade de módulo gera implicitamente um gêmeo de identidade de módulo. No lado do dispositivo, você pode usar os SDKs de dispositivo do Hub IoT para criar módulos que abram uma conexão independente com o Hub IoT.

A identidade do módulo e o gêmeo de identidade do módulo fornecem recursos semelhantes à identidade do dispositivo e ao gêmeo do dispositivo, mas com uma granularidade mais fina. Para obter mais informações, consulte Compreender e utilizar módulos gémeos no Hub IoT.

Quando você provisiona o agente de Atualização de Dispositivo como uma identidade de módulo, todas as comunicações entre o dispositivo e o serviço de Atualização de Dispositivo devem ocorrer pelo módulo gêmeo. Lembre-se de marcar o módulo gêmeo do dispositivo ao criar grupos de dispositivos. Se você migrar de um agente no nível do dispositivo para adicionar o agente como uma identidade de módulo, remova o agente mais antigo que se comunicava pelo gêmeo do dispositivo.

Tipos de atualização suportados

O Device Update suporta os seguintes tipos de atualização por via aérea de dispositivos IoT:

Preparar-se para atualizações de pacotes

Para configurar um dispositivo IoT ou um dispositivo IoT Edge para instalar atualizações baseadas em pacotes, adicione packages.microsoft.com aos repositórios da sua máquina seguindo estas etapas:

  1. Abra uma janela do Terminal na máquina ou dispositivo IoT onde você deseja instalar o agente de Atualização de Dispositivo.

  2. Instale a configuração do repositório que corresponde ao sistema operacional do seu dispositivo, por exemplo:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. Copie a lista gerada para o diretório sources.list.d .

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. Instale a chave pública Microsoft GPG.

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

Provisionar o agente de Atualização de Dispositivo

Você pode provisionar o agente de Atualização de Dispositivo como uma identidade de módulo em dispositivos habilitados para IoT Edge ou dispositivos IoT que não sejam IoT Edge. Para verificar se você tem o IoT Edge habilitado em seu dispositivo, consulte Exibir dispositivos registrados e recuperar informações de provisionamento.

Pode transferir imagens de exemplo para utilizar a partir da secção Recursos na página Versões. Em Tutorial_RaspberryPi3.zip, o ficheiro swUpdate é a imagem de base que pode gravar numa placa Raspberry Pi B3+. O arquivo .gz é a atualização que você pode importar por meio da Atualização de dispositivo. Para obter mais informações, consulte Atualização de dispositivo do Azure para o Hub IoT usando uma imagem do Raspberry Pi.

Em dispositivos habilitados para IoT Edge

Siga estas instruções para provisionar o agente de Atualização de Dispositivo em dispositivos habilitados para IoT Edge:

  1. Siga as instruções em Provisionar manualmente um único dispositivo Linux IoT Edge.

  2. Instale o agente de atualização da imagem do Device Update executando o comando seguinte:

    sudo apt-get install deviceupdate-agent
    
  3. Instale o agente de atualização do pacote de Atualização de Dispositivo.

    • Para obter as versões mais recentes do agente do packages.microsoft.com, atualize as listas de pacotes no seu dispositivo e instale o pacote do agente de Atualização de Dispositivo e suas dependências usando:

      sudo apt-get update
      
      sudo apt-get install deviceupdate-agent
      
    • Para versões do agente Release Candidate (rc), baixe o arquivo de .deb de Releases para a máquina na qual você deseja instalar o agente de Atualização de Dispositivo e execute o seguinte comando:

      sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
      
    • Se você estiver configurando um Microsoft Connected Cache (MCC) para um cenário de dispositivo desconectado, instale o plug-in APT de otimização de entrega da seguinte maneira:

      sudo apt-get install deliveryoptimization-plugin-apt
      

Em dispositivos não habilitados para IoT Edge

Siga estas instruções para provisionar o agente de Atualização de Dispositivo em dispositivos IoT Linux sem o IoT Edge instalado. Pode provisionar o agente usando o Azure IoT Identity Service (AIS) ou configurando as credenciais diretamente no dispositivo.

Use Azure IoT Identity Service (AIS)

  1. Instale a versão mais recente do Serviço de Identidade IoT seguindo as instruções em Instalando o Serviço de Identidade IoT do Azure.

  2. Configure o Serviço de Identidade IoT seguindo as instruções em Configurando o Serviço de Identidade IoT do Azure. Certifique-se de que o serviço está configurado com a identidade apropriada do dispositivo ou módulo para poder fornecer informação de ligação ao agente de Atualização de Dispositivos.

  3. Instale o agente de Atualização de Dispositivo executando o seguinte comando:

    sudo apt-get install deviceupdate-agent
    

Nota

Se o seu dispositivo IoT não puder executar o Serviço de Identidade IoT ou o IoT Edge, que inclui o Serviço de Identidade IoT, ainda pode instalar o agente do Device Update e configurá-lo utilizando uma cadeia de ligação ou certificados X.509.

Utilizar uma string de ligação

Para testes ou em dispositivos restritos, você pode configurar o agente de Atualização de Dispositivo sem usar o serviço IoT Identity. Você pode usar uma cadeia de conexão para provisionar o agente de Atualização de Dispositivo a partir do módulo ou dispositivo.

  1. No portal do Azure, copie a cadeia de conexão primária. Se o agente de Atualização de Dispositivo estiver configurado como uma identidade de módulo, copie a cadeia de conexão principal do módulo. Caso contrário, copie a cadeia de conexão principal do dispositivo.

  2. Numa janela do Terminal no computador ou dispositivo IoT onde instalou o agente do Device Update, edite o ficheiro de configuração do Device Update executando o seguinte comando:

  3. No ficheiro du-config.json, defina todos os valores que tenham um marcador de posição Place value here e introduza a cadeia de ligação primária copiada como valor do campo connectionData. Para obter um exemplo, consulte Exemplo de conteúdo do arquivo "du-config.json".

Usar certificados X.509

O Device Update Agent versão 1.3.0 e posteriores suportam autenticação no Hub IoT usando certificados X.509. Hub IoT do Azure suporta dois métodos de configuração de certificados X.509:

  • Certificados assinados pela CA (recomendado): Os dispositivos autenticam-se usando um certificado emitido por uma autoridade certificadora (CA) de confiança.
  • Certificados auto-assinados (baseados em impressão digital): Cada identidade de dispositivo é configurada com uma impressão digital de certificado que Hub IoT valida durante a autenticação.

Configurar autenticação X.509

Registe a identidade do seu dispositivo no Hub IoT com a autenticação X.509 ativada.

  1. Configure o dispositivo usando um:
    • Um certificado emitido por uma autoridade certificadora (CA) de confiança.
    • Um certificado auto-assinado com uma impressão digital registada.
  2. Instale o agente de Atualização do Dispositivo no dispositivo.

O Serviço de Provisionamento de Dispositivos (DPS) pode ser usado para fornecer identidades e certificados de dispositivos. No entanto, o DPS não fornece identidades de módulos. A configuração do agente de atualização do dispositivo deve ainda estar completa no dispositivo.

Para instruções de configuração passo a passo, incluindo cenários avançados como chaves suportadas por hardware (por exemplo, módulos de segurança de hardware (HSMs) ou armazenamento de chaves baseado em PKCS#11 para manuseamento seguro de chaves), consulte o guia de autenticação X.509: Como Usar a Autenticação do Certificado de Cliente X.509.

Nota

O suporte de autenticação X.509 no agente Device Update utiliza a configuração padrão de identidade do Hub IoT do Azure. Esta funcionalidade não está integrada com a gestão de certificados (preview) do Azure Device Registry (ADR).

Configurar o agente de Atualização de Dispositivo

Depois de instalar o agente Device Update, edite o ficheiro de configuração Device Update executando o seguinte comando.

sudo nano /etc/adu/du-config.json

No ficheiro du-config.json, defina todos os valores que contêm um marcador de posição Place value here.

Azure IoT Serviço de Identidade (AIS)

  • "connectionType": "AIS"
  • "connectionData": "" (fio vazio)

Nota

Ao utilizar o Azure IoT Identity Service (AIS), o serviço deve ser configurado para fornecer a identidade correta ao agente de Atualização do Dispositivo. Isto inclui configurar identidades em config.toml e garantir que o agente está associado à identidade adequada do dispositivo ou do módulo. Se o agente de Atualização de Dispositivo correr como um módulo, deve ser configurada uma identidade correspondente para que o AIS possa devolver a informação de ligação do módulo ao agente. Para detalhes de configuração, consulte Configuring the Azure IoT Identity Service.

String de ligação

  • "connectionType": "string"
  • "connectionData": "HostName=<hub>.azure-devices.net;DeviceId=<device>;SharedAccessKey=<key>" (substitui pelo teu nome de host Hub IoT, ID do dispositivo e chave de acesso partilhada)

Certificados X.509

  • "connectionType": "x509"
  • "connectionData": "HostName=<hub>.azure-devices.net;DeviceId=<device>;x509=true" (substitui pelo teu nome de host Hub IoT e ID do dispositivo)
  • "connectionX509CertFilePath": "/etc/adu/certs/client.pem"
  • "connectionX509PrivateKeyFilePath": "/etc/adu/certs/client.key"
  • "connectionX509CaCertFilePath": "/etc/adu/certs/ca.pem"

Para detalhes completos de configuração, consulte o Guia de Configuração do Agente de Atualização de Dispositivos Azure .

Para mais informações, veja: Ficheiro de configuração Atualização do Dispositivo. Para obter um exemplo, consulte Exemplo de conteúdo do arquivo "du-config.json".

Inicie o agente de Atualização de Dispositivo

Inicie o agente de Atualização de Dispositivo e verifique se ele está sendo executado com êxito no seu dispositivo.

  1. Em uma janela Terminal na máquina ou dispositivo IoT onde você instalou o agente de Atualização de Dispositivo, reinicie o agente executando o seguinte comando:

    sudo systemctl restart deviceupdate-agent
    
  2. Verifique o status do agente executando o seguinte comando.

    sudo systemctl status deviceupdate-agent
    

    Você deve ver o status OK.

  3. Na página do portal do Hub IoT, vá para Dispositivos ou IoT Edge para localizar o dispositivo que você configurou e veja o agente de Atualização de Dispositivo em execução como um módulo. Por exemplo:

    Diagrama do nome do módulo de Atualização de Dispositivo mostrando o status Conectado.

Habilitar o agente de Atualização de Dispositivo atrás de um servidor proxy

Os dispositivos que executam o agente de Atualização de Dispositivo enviam solicitações HTTPS para se comunicar com o Hub IoT. Se você conectou seu dispositivo a uma rede que usa um servidor proxy, precisará configurar o serviço systemd de Atualização de Dispositivo para se comunicar através do servidor.

Antes de configurar a Atualização do Dispositivo, certifique-se de que tem a URL do Proxy. A URL do proxy está no formato protocol://proxy_host:proxy_port.

Crie um diretório de configuração de ajuste do systemd e o ficheiro de ajuste executando o seguinte comando:

sudo mkdir -p /etc/systemd/system/deviceupdate-agent.service.d
sudo nano /etc/systemd/system/deviceupdate-agent.service.d/override.conf

Adicionar os detalhes do proxy à configuração

[Service]
Environment="HTTP_PROXY=http://your.proxy.server:port"
Environment="HTTPS_PROXY=http://your.proxy.server:port"

Reinicie o agente para aplicar as alterações:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent

Em seguida, você pode verificar se as variáveis de ambiente são aplicadas usando

sudo systemctl show deviceupdate-agent | grep -i proxy

Criar e executar um agente de Atualização de Dispositivo

Você também pode criar e modificar seu próprio agente de Atualização de Dispositivo personalizado. Siga as instruções em Como criar o Device Update Agent para criar o Device Update Agent a partir da origem.

Depois que o agente for compilado com êxito, siga Executando a Atualização de Dispositivo para o Agente de Referência do Hub IoT para executar o agente. Para fazer as alterações necessárias para incorporar o agente em sua imagem, siga Como modificar o código do agente de atualização de dispositivo.

Resolução de Problemas

Se você tiver problemas, consulte o Guia de Solução de Problemas da Atualização de Dispositivo para o Hub IoT para ajudar a resolver os problemas e coletar as informações necessárias para fornecer à Microsoft.