Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo destina-se a pessoas que pretendem adicionar capacidades OSConfig aos respetivos dispositivos, para que a configuração possa ser aprovisionada, gerida e monitorizada através dos serviços IoT do Azure. Isto pode incluir construtores de dispositivos, integradores de sistemas, construtores de soluções, etc.
O agente OSConfig é um componente compacto do Linux que projeta a configuração local de cada dispositivo no Azure IoT para aprovisionamento e gestão em escala. Para obter contexto sobre as motivações e a utilização do OSConfig, veja: O que é o OSConfig para IoT.
Escala da frota ou dispositivo único?
Para começar a experimentar cenários, pode instalar o OSConfig num único dispositivo.
Em escala, cada dispositivo cuja configuração será aprovisionada e gerida tem de ter o agente OSConfig, tal como no diagrama seguinte.
Normalmente, o agente OSConfig seria incluído em imagens do SO do dispositivo de referência, que são depois aplicadas a muitos dispositivos.
Que tipos de dispositivos?
Classes de hardware
Veja a tabela abaixo para obter um resumo. As notas detalhadas seguem a tabela.
| Instalar o OSConfig? | |
|---|---|
| Classe MCU ¹ | Agora, não |
| MPU/CPU menos potente c/ Linux ² | Yes |
| Dispositivos mais potentes com Linux ³ | Yes |
| Dispositivos com o Windows IoT | Capacidades semelhantes incorporada, referência CSP |
¹ classe MCU: para contexto, estes incluem dispositivos Arduino, dispositivos baseados em RP2040, etc. Normalmente, estes dispositivos executam código bare-metal específico do cenário ou com um microSE, como AzureRTOS ou FreeRTOS.
² Classe MPU/CPU menos potente w/ Linux: o agente foi concebido para ser compacto e eficiente, permitindo a utilização para dispositivos mais pequenos capazes de executar o Linux.
³ Computação edge mais poderosa w/ Linux: como um componente eficiente do lado do dispositivo, o agente OSConfig está perfeitamente em casa em dispositivos de computação edge mais poderosos, como kits NVidia Jetson.
Linux "Dispositivos IoT" vs. Linux "Dispositivos Edge"
No ecossistema IoT do Azure para Linux, os termos dispositivo IoT vs. Dispositivo Edge são por vezes utilizados para diferenciar se o dispositivo IoT Edge instalado. Existe também uma correlação solta com a classe de dispositivo (os dispositivos maiores tendem a ter IoT Edge instalados).
O OSConfig funciona em qualquer um dos contextos. Pode ser executado lado a lado com IoT Edge, mas não requer IoT Edge.
E os segredos do dispositivo e várias aplicações/agentes/módulos?
Recomendamos a utilização do OSConfig juntamente com o Azure IoT Identity Service (AIS).
O AIS é o mediador no dispositivo da Microsoft para processar segredos e autenticação. O AIS torna totalmente integrado que várias aplicações, agentes e/ou módulos do Edge partilhem uma única identidade de dispositivo. Os passos abaixo demonstram a utilização do AIS e do OSConfig em conjunto.
O AIS está disponível autónomo e também está incluído no IoT Edge 1.2 e superior. Considere o seguinte ao instalar.
| Instalar o AIS? | |
|---|---|
| O dispositivo não tem IoT Edge (também conhecido como "Dispositivo IoT") | Yes |
| O dispositivo tem IoT Edge 1.2 ou superior | Sim¹ |
| O dispositivo tem IoT Edge 1,1 ou inferior | No² |
¹ IoT Edge 1.2 e superior incluem os componentes do AIS. Para simplificar as instruções, os passos abaixo incluem sempre a instalação do AIS. Esta abordagem permite ao gestor de pacotes detetar se este passo não é uma operação, em vez de recriar essa lógica externamente.
² Não instale o AIS em dispositivos com IoT Edge 1.1 ou inferior. Considere mudar para uma versão posterior do IoT Edge. Se não estiver pronto para atualizar IoT Edge mas ainda quiser explorar cenários osConfig, considere experimentar os cenários noutro dispositivo ou VM por enquanto.
Tarefa 1. Instalar os componentes no dispositivo
Existem três opções que se adequam às suas necessidades:
- A. Instalar pacotes
- B. Criar a partir da origem
- C. Utilizar dispositivos com as capacidades incorporadas
Selecione a sua experiência preferida abaixo para obter instruções:
- A. Instalar pacotes (mais populares)
- B. Compilar a partir da origem (mais flexível)
- C. Incorporado (pré-visualização)
Os pacotes de instalação prontos a preparar estão disponíveis para arm64 (também conhecido como aarch64), amd64 (também conhecido como x86_64) em:
- Debian 10
- Debian 11
- Ubuntu Server 18.04
- Ubuntu Server 20.04
Passo 1.1. Ligar um dispositivo ao packages.microsoft.com
Pode utilizar os seguintes comandos de exemplo para ligar o gestor de pacotes do SO ao canal estável no packages.microsoft.com.
#!/bin/bash
## For Ubuntu and on Debian 10+
## Register packages.microsoft.com key and prod channel
sudo wget https://packages.microsoft.com/keys/microsoft.asc -O /etc/apt/trusted.gpg.d/packages-microsoft-com_key.asc
os_name=$(grep ^ID= /etc/os-release | tr -d "ID=")
os_version=$(grep ^VERSION_ID /etc/os-release | tr -d "VERSION_ID=")
sudo wget https://packages.microsoft.com/config/"$os_name"/"$os_version"/prod.list -O /etc/apt/sources.list.d/packages-microsoft-com_prod.list
sudo apt update
Dica
O exemplo acima liga o prod gestor de pacotes ao canal no packages.microsoft.com, o que é adequado para a maioria dos dispositivos e situações. Para obter informações sobre compilações de pré-visualização, consulte: Acerca da pré-visualização do OSConfig ou das compilações "insiders"
Passo 1.2. Instalar o pacote do AIS
Atenção
Conforme indicado acima, não instale o AIS num dispositivo com IoT Edge 1.1 ou inferior. O AIS destina-se a dispositivos sem IoT Edge ou dispositivos com IoT Edge 1.2 ou superior.
sudo apt-get install -y aziot-identity-service
Passo 1.3. Instalar o pacote OSConfig
sudo apt-get install -y osconfig
Se estiver a instalar apenas os componentes neste momento (por exemplo, a preparar uma imagem de base) para não ligar ao Azure, pode parar aqui. Os passos seguintes seriam executados mais tarde, talvez pelo seu cliente.
Tarefa 2. Ligar ao Azure
Agora que o agente OSConfig e o AIS estão presentes no dispositivo, o passo seguinte é configurar o dispositivo com uma identidade para que possa ligar ao Azure.
Dica
Alguns dispositivos podem ter mecanismos para o fazer em seu nome. Por exemplo, os dispositivos do Azure Percept incluem uma experiência de configuração para ligar o dispositivo.
Passo 2.1. Definir a credencial do dispositivo no AIS no dispositivo
O AIS suporta vários cenários de implementação e métodos de autenticação.
O exemplo simplista seguinte utiliza uma cadeia de ligação com uma chave simétrica. Para cenários de produção, escolha uma das opções de autenticação mais fortes descritas em Configurar o Azure IoT Identity Service.
Exemplo Rápido: Ligar com chave simétrica
No portal do Azure:
- Navegar para a lista de dispositivos Hub IoT
- Criar uma identidade de dispositivo, se necessário
- Navegue para as propriedades do dispositivo e copie a cadeia de ligação
No dispositivo:
- Execute os seguintes comandos para definir a credencial no AIS, substituindo o marcador de posição da cadeia de ligação pelo seu.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>" sudo aziotctl config apply
Passo 2.2. Verificar a ligação com êxito ao Azure
Pode verificar se o AIS e o OSConfig estão a ligar a Hub IoT com estes comandos no dispositivo:
sudo aziotctl check
sudo systemctl status osconfig | grep Active
O resultado do aziotctl check comando deve indicar a passagem de todos os testes.
O resultado do systemctl status osconfig deve incluir Active: active. Em alguns casos, poderá ver Active: activating (auto-restart) , o que significa que o systemd está à espera de um temporizador para reiniciar o serviço. Para ultrapassar isto imediatamente em vez de aguardar, execute sudo systemctl restart osconfige, em seguida, tente o comando de estado novamente.
Já está! O cliente OSConfig está agora em execução no seu dispositivo.
Definições opcionais do agente
Muitas pessoas podem ignorar esta secção e simplesmente utilizar os comportamentos predefinidos. Se tiver restrições de ambiente ou governação, como servidores proxy, restrições de firewall de saída ou redes em camadas, veja o seguinte:
Hub IoT seleção de protocolo
Dica
A seleção do protocolo foi adicionada ao canal prod/estável na versão v1.0.2.2022040405. Confirme que está a utilizar a versão mais recente do OSConfig.
Ao comunicar com o Hub IoT, o agente OSConfig pode utilizar o Transporte de Telemetria de Colocação de Mensagens em Fila (MQTT) simples ou pode utilizar mQTT através de WebSockets (MQTT_WS).
Muitas pessoas não precisam de especificar um protocolo e podem simplesmente utilizar comportamentos predefinidos. Se precisar de especificar um protocolo com base numa das seguintes considerações, definirá o Protocol valor em /etc/osconfig/osconfig.json.
| MQTT | MQTT_WS | |
|---|---|---|
| Porta TCP ¹ | 8883 | 443 |
| Servidor proxy ² | No | Yes |
| gateway de IoT Edge (principal/subordinado) ³ |
Yes | No |
| Identificador de protocolo para definir em osconfig.json |
1 | 2 |
¹ Refere-se à porta TCP utilizada quando o agente OSConfig no dispositivo liga a saída ao Hub IoT
² Refere-se ao facto de o OSConfig poder utilizar explicitamente um servidor proxy HTTP (através de https_proxy variável de ambiente)
³ Refere-se ao cenário de Gateway Transparente IoT Edge, no qual o OSConfig em execução num dispositivo subordinado se liga a Hub IoT através de um dispositivo principal
Ligar através de um servidor proxy HTTP
Se o seu ambiente exigir que o OSConfig se ligue ao Hub IoT através de um servidor proxy HTTP, veja o seguinte:
Dica
O suporte do servidor proxy foi adicionado ao canal prod/estável na versão v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.
Conforme indicado na Hub IoT seleção de protocolo, apenas MQTT_WS podem ser utilizadas com um servidor proxy HTTP. Para ativar MQTT_WS, certifique-se de que o
Protocolvalor em /etc/osconfig/osconfig.json está definido como2.Confirme que a
https_proxyvariável de ambiente ouHTTPS_PROXYestá definida no contexto em que OSConfig é executado.Normalmente, os sysadmins ou os construtores de imagens transmitem isto ao editar os ficheiros de unidades do sistema para quaisquer serviços (incluindo OSConfig) que devem utilizar o servidor proxy.
Por exemplo, adicionaria uma linha como
Environment="https_proxy=http://myproxy.example.com:3128"
para a[Service]parte de /etc/systemd/system/osconfig.service.
Certifique-se de que executasudo systemctl daemon-reloadesudo systemctl restart osconfigdepois de editar o ficheiro.
Passos Seguintes
Agora que tem um dispositivo a executar o OSConfig e ligado ao Azure IoT, pode experimentar cenários de gestão.
Para obter uma descrição geral dos cenários e capacidades do OSConfig, veja:
Para obter exemplos práticos específicos, veja: