Como e onde instalar o agente OSConfig para Linux
Este artigo destina-se a pessoas que desejam adicionar recursos OSConfig aos seus dispositivos, para que sua configuração possa ser provisionada, gerenciada e monitorada por meio dos serviços de IoT do Azure. Isso pode incluir construtores de dispositivos, integradores de sistemas, construtores de soluções e assim por diante.
O agente OSConfig é um componente compacto do Linux que projeta a configuração local de cada dispositivo no Azure IoT para provisionamento e gerenciamento em escala. Para obter contexto sobre motivações e uso de OSConfig, consulte: O que é OSConfig para IoT.
Escala de frota ou dispositivo único?
Para começar a experimentar cenários, você pode instalar o OSConfig em um único dispositivo.
Em escala, cada dispositivo cuja configuração será provisionada e gerenciada deve ter o agente OSConfig, como no diagrama a seguir.
Normalmente, o agente OSConfig seria incluído em imagens de sistema operacional do dispositivo de referência, que são então aplicadas a muitos dispositivos.
Que tipos de dispositivos?
Classes de hardware
Confira a tabela abaixo para obter um resumo. As anotações detalhadas seguem a tabela.
Instalar o OSConfig? | |
---|---|
Classe MCU ¹ | No momento não |
MPU/CPU menos eficiente com ² do Linux | Yes |
Dispositivos mais avançados com Linux Lux | Yes |
Dispositivos que executam o Windows IoT | Recursos semelhantes referência interna do CSP |
¹ classe MCU: para contexto, isso incluiria dispositivos Arduino, dispositivos baseados em RP2040 e assim por diante. Esses dispositivos normalmente executam código bare-metal específico do cenário ou com um micro-sistema operacional, como AzureRTOS ou FreeRTOS.
² Classe mpu/CPU menos poderosa w/ Linux: o agente foi projetado para ser compacto e eficiente, permitindo o uso até dispositivos menores capazes de executar o Linux.
Lux Computação de borda mais poderosa com Linux: como um componente eficiente do lado do dispositivo, o agente OSConfig está perfeitamente em casa em dispositivos de computação de borda mais poderosos, como kits NVidia Jetson.
"Dispositivos IoT" do Linux versus "Dispositivos de borda" do Linux
No ecossistema de IoT do Azure para Linux, os termos Dispositivo IoT versus dispositivo Edge às vezes são usados para diferenciar se o dispositivo IoT Edge instalado. Também há uma correlação flexível com a classe de dispositivo (dispositivos maiores tendem a ter IoT Edge instalados).
OSConfig funciona em qualquer contexto. Ele pode ser executado lado a lado com IoT Edge, mas não requer IoT Edge.
E quanto aos segredos do dispositivo e a vários aplicativos/agentes/módulos?
É recomendável usar OSConfig junto com o AIS (Serviço de Identidade IoT do Azure).
O AIS é o agente no dispositivo da Microsoft para lidar com segredos e autenticação. O AIS o torna contínuo para vários aplicativos, agentes e/ou módulos do Edge compartilharem uma única identidade de dispositivo. As etapas a seguir demonstram como usar o AIS e o OSConfig juntos.
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, as etapas abaixo sempre incluem a instalação do AIS. Essa abordagem permite que o gerenciador de pacotes detecte se essa etapa é sem operações, 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 você não estiver pronto para atualizar IoT Edge mas ainda quiser explorar cenários de OSConfig, considere experimentar os cenários em outro dispositivo ou VM por enquanto.
Trabalho 1. Instalar os componentes no dispositivo
Há três opções para atender às suas necessidades:
- a. Instalar Pacotes
- B. Criá-lo do código-fonte
- C. Usar dispositivos com os recursos internos
Escolha sua experiência preferida abaixo para obter instruções:
- a. Instalar pacotes (mais populares)
- B. Compilar a partir da origem (mais flexível)
- C. Interno (versão prévia)
Os pacotes de instalação prontos 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
Etapa 1.1. Conectar um dispositivo ao packages.microsoft.com
Você pode usar os comandos de exemplo a seguir para conectar o gerenciador de pacotes do sistema operacional 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 conecta o prod
gerenciador de pacotes ao canal no packages.microsoft.com, que é apropriado para a maioria dos dispositivos e situações. Para obter informações sobre compilações de visualização, consulte: Sobre a versão prévia do OSConfig ou builds "insiders"
Etapa 1.2. Instalar o pacote do AIS
Cuidado
Conforme observado acima, não instale o AIS em um dispositivo com IoT Edge 1.1 ou inferior. O AIS é para dispositivos sem IoT Edge ou dispositivos com IoT Edge 1.2 ou superior.
sudo apt-get install -y aziot-identity-service
Etapa 1.3. Instalar o pacote OSConfig
sudo apt-get install -y osconfig
Se você estiver instalando apenas os componentes no momento (por exemplo, preparando uma imagem base) não se conectando ao Azure, poderá parar aqui. As etapas a seguir seriam executadas posteriormente, talvez pelo seu cliente.
Trabalho 2. Conectar-se ao Azure
Agora que o agente OSConfig e o AIS estão presentes no dispositivo, a próxima etapa é configurar o dispositivo com uma identidade para que ele possa se conectar ao Azure.
Dica
Alguns dispositivos podem ter mecanismos para fazer isso em seu nome. Por exemplo, os dispositivos do Azure Percept incluem uma experiência de instalação para conectar o dispositivo.
Etapa 2.1. Definindo a credencial do dispositivo como AIS no dispositivo
O AIS dá suporte a vários cenários de implantação e métodos de autenticação.
O exemplo simplista a seguir usa uma cadeia de conexão com uma chave simétrica. Para cenários de produção, escolha entre as opções de autenticação mais fortes descritas em Configurar o Serviço de Identidade IoT do Azure.
Exemplo rápido: conectar-se com chave simétrica
No Portal do Azure:
- Navegue até sua lista de dispositivos Hub IoT
- Criar uma identidade de dispositivo, se necessário
- Navegue até as propriedades do dispositivo e copie a cadeia de conexão
No dispositivo:
- Execute os comandos a seguir para definir a credencial como AIS, substituindo o espaço reservado da cadeia de conexão pelo seu.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>" sudo aziotctl config apply
Etapa 2.2. Verificar a conexão bem-sucedida com o Azure
Você pode verificar se o AIS e o OSConfig estão se conectando a Hub IoT usando estes comandos no dispositivo:
sudo aziotctl check
sudo systemctl status osconfig | grep Active
A saída do aziotctl check
comando deve indicar todos os testes aprovados.
A saída do systemctl status osconfig
deve incluir Active: active
. Em alguns casos, você pode ver Active: activating (auto-restart)
, o que significa que systemd está aguardando um temporizador para reiniciar o serviço. Para passar por isso imediatamente em vez de aguardar, execute sudo systemctl restart osconfig
e, em seguida, tente o comando de status novamente.
É isso! O cliente OSConfig agora está em execução em seu dispositivo.
Configurações opcionais do agente
Muitas pessoas podem ignorar esta seção e simplesmente usar os comportamentos padrão. Se você tiver restrições de ambiente ou governança, como servidores proxy, restrições de firewall de saída ou redes em camadas, confira o seguinte:
seleção de protocolo Hub IoT
Dica
A seleção de protocolo foi adicionada ao canal prod/stable na versão v1.0.2.2022040405. Verifique se você está usando a versão mais recente prod/estável do OSConfig.
Ao se comunicar com o Hub IoT, o agente OSConfig pode usar o MQTT (Transporte de Telemetria de Enfileiramento de Mensagens) ou usar MQTT por WebSockets (MQTT_WS).
Muitas pessoas não precisam especificar um protocolo e podem simplesmente usar comportamentos padrão. Se você precisar especificar um protocolo com base em uma das considerações a seguir, definirá o Protocol
valor em /etc/osconfig/osconfig.json.
MQTT | MQTT_WS | |
---|---|---|
Porta TCP ¹ | 8883 | 443 |
Servidor proxy ² | No | Yes |
Gateway IoT Edge (pai/filho) ó |
Yes | No |
Identificador de protocolo para definir em osconfig.json |
1 | 2 |
¹ Refere-se à porta TCP usada quando o agente OSConfig no dispositivo se conecta à saída para Hub IoT
² Refere-se a se OSConfig pode usar explicitamente um servidor proxy HTTP (por meio de https_proxy variável de ambiente)
ÓL Refere-se ao cenário IoT Edge Transparent Gateway, no qual o OSConfig em execução em um dispositivo filho se conecta a Hub IoT por meio de um dispositivo pai
Conectando-se por meio de um servidor proxy HTTP
Se o ambiente exigir que o OSConfig se conecte ao Hub IoT por meio de um servidor proxy HTTP, consulte o seguinte:
Dica
O suporte ao servidor proxy foi adicionado ao canal prod/stable na versão v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.
Conforme observado na seleção de protocolo Hub IoT, somente MQTT_WS pode ser usado com um servidor proxy HTTP. Para ativar MQTT_WS, verifique se o
Protocol
valor em /etc/osconfig/osconfig.json está definido como2
.Verifique se a
https_proxy
variável de ambiente ouHTTPS_PROXY
está definida no contexto em que o OSConfig é executado.Normalmente, sysadmins ou construtores de imagens transmitem isso editando os arquivos de unidade sistemados para quaisquer serviços (incluindo OSConfig) que devem usar o servidor proxy.
Por exemplo, você adicionaria uma linha como
Environment="https_proxy=http://myproxy.example.com:3128"
para a[Service]
parte de /etc/systemd/system/osconfig.service.
sudo systemctl daemon-reload
Execute esudo systemctl restart osconfig
depois de editar o arquivo.
Próximas etapas
Agora que você tem um dispositivo executando OSConfig e conectado ao Azure IoT, você pode experimentar cenários de gerenciamento.
Para obter uma visão geral dos cenários e funcionalidades do OSConfig, consulte:
Para obter exemplos práticos específicos, consulte: