Linux용 OSConfig 에이전트를 설치하는 방법 및 위치
이 문서는 디바이스에 OSConfig 기능을 추가하려는 사용자를 위한 것이므로 Azure IoT 서비스를 통해 구성을 프로비전, 관리 및 모니터링할 수 있습니다. 여기에는 디바이스 작성기, 시스템 통합자, 솔루션 빌더 등이 포함될 수 있습니다.
OSConfig 에이전트는 대규모 프로비저닝 및 관리를 위해 각 디바이스의 로컬 구성을 Azure IoT에 프로젝션하는 압축 Linux 구성 요소입니다. OSConfig 동기 및 사용에 대한 컨텍스트 는 IoT용 OSConfig란?을 참조하세요.
플릿 스케일링 또는 단일 디바이스?
시나리오 시도를 시작하려면 단일 디바이스에 OSConfig를 설치할 수 있습니다.
대규모로 구성이 프로비전되고 관리되는 각 디바이스에는 다음 다이어그램과 같이 OSConfig 에이전트가 있어야 합니다.
일반적으로 OSConfig 에이전트는 참조 디바이스 OS 이미지에 포함되며, 이 이미지는 많은 디바이스에 적용됩니다.
어떤 종류의 디바이스인가요?
하드웨어 클래스
요약은 아래 표를 참조하세요. 자세한 메모는 표를 따릅니다.
OSConfig를 설치합니까? | |
---|---|
MCU 클래스 | 지금은 아님 |
Linux ²를 사용하는 덜 강력한 MPU/CPU | 예 |
Linux 을 사용하여 더 강력한 디바이스 | 예 |
Windows IoT를 실행하는 디바이스 | 유사한 기능 기본 제공 CSP 참조 |
MCU 클래스: 컨텍스트의 경우 Arduino 디바이스, RP2040 기반 디바이스 등이 포함됩니다. 이러한 디바이스는 일반적으로 시나리오별 코드 운영 체제 미설치 또는 AzureRTOS 또는 FreeRTOS와 같은 마이크로 OS를 실행합니다.
² Linux를 사용하는 덜 강력한 MPU/CPU 클래스: 에이전트는 압축되고 효율적이도록 설계되어 Linux를 실행할 수 있는 더 작은 디바이스까지 사용할 수 있습니다.
Linux를 사용하는 더 강력한 에지 컴퓨팅: 효율적인 디바이스 쪽 구성 요소로서 OSConfig 에이전트는 NVidia Jetson 키트와 같은 보다 강력한 에지 컴퓨팅 디바이스에서 완벽하게 집에 있습니다.
Linux "IoT 디바이스" 및 Linux "Edge 디바이스"
Linux용 Azure IoT 에코시스템에서 IoT 디바이스와 Edge 디바이스라는 용어는 디바이스가 IoT Edge 설치되어 있는지 여부를 구분하는 데 사용됩니다. 디바이스 클래스와도 느슨한 상관 관계가 있습니다(큰 디바이스는 IoT Edge 설치되는 경향이 있습니다).
OSConfig는 두 컨텍스트에서 모두 작동합니다. IoT Edge 함께 실행할 수 있지만 IoT Edge 필요하지 않습니다.
디바이스 비밀은 무엇이며, 여러 앱/에이전트/모듈은 어떨까요?
AZURE AIS(IoT Identity Service)와 함께 OSConfig를 사용하는 것이 좋습니다.
AIS는 비밀 및 인증을 처리하기 위한 Microsoft의 디바이스 내 브로커입니다. AIS를 사용하면 여러 앱, 에이전트 및/또는 Edge 모듈이 단일 디바이스 ID를 공유할 수 있습니다. 아래 단계에서는 AIS 및 OSConfig를 함께 사용하는 방법을 보여 줍니다.
AIS는 독립 실행형으로 사용할 수 있으며 IoT Edge 1.2 이상에도 포함되어 있습니다. 설치할 때 다음 사항을 고려합니다.
AIS를 설치합니까? | |
---|---|
디바이스에 IoT Edge 없습니다("IoT 디바이스"라고도 함). | 예 |
디바이스의 IoT Edge 1.2 이상 | 예시 |
디바이스의 IoT Edge 1.1 이하 | No² |
IoT Edge 1.2 이상에는 AIS 구성 요소가 포함됩니다. 지침을 간단히 하기 위해 아래 단계에는 항상 AIS 설치가 포함됩니다. 이 방법을 사용하면 패키지 관리자가 이 단계가 외부에서 해당 논리를 다시 만드는 대신 no-op인지 여부를 감지할 수 있습니다.
² IoT Edge 1.1 이하의 디바이스에 AIS를 설치하지 마세요. IoT Edge 이후 버전으로 이동하는 것이 좋습니다. IoT Edge 업그레이드할 준비가 되지 않았지만 OSConfig 시나리오를 계속 탐색하려는 경우 지금은 다른 디바이스 또는 VM에서 시나리오를 시도해 보세요.
작업 1. 디바이스에 구성 요소 설치
요구 사항에 맞는 세 가지 옵션이 있습니다.
- A. 패키지 설치
- B. 원본에서 빌드
- C. 기본 제공 기능이 있는 디바이스 사용
지침은 아래에서 원하는 환경을 선택합니다.
즉시 설치 패키지는 다음에서 arm64(aarch64라고도 함), amd64(x86_64)에 사용할 수 있습니다.
- Debian 10
- Debian 11
- Ubuntu Server 18.04
- Ubuntu Server 20.04
1\.1단계. 디바이스를 packages.microsoft.com 연결
다음 예제 명령을 사용하여 OS 패키지 관리자를 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
팁
위의 예제에서는 패키지 관리자를 prod
packages.microsoft.com 채널에 연결합니다. 이는 대부분의 디바이스 및 상황에 적합합니다. 미리 보기 빌드에 대한 자세한 내용은 OSConfig 미리 보기 또는 "참가자" 빌드 정보를 참조하세요.
1\.2 단계. AIS 패키지 설치
주의
위에서 설명한 대로 IoT Edge 1.1 이하의 디바이스에 AIS를 설치하지 마세요. AIS는 IoT Edge 없는 디바이스 또는 IoT Edge 1.2 이상이 있는 디바이스용입니다.
sudo apt-get install -y aziot-identity-service
1\.3단계. OSConfig 패키지 설치
sudo apt-get install -y osconfig
현재 Azure에 연결되지 않는 구성 요소(예: 기본 이미지 준비)만 설치하는 경우 여기에서 중지할 수 있습니다. 다음 단계는 나중에 고객이 수행할 수 있습니다.
작업 2. Azure에 연결
이제 OSConfig 에이전트 및 AIS가 디바이스에 있으므로 다음 단계는 Azure에 연결할 수 있도록 ID를 사용하여 디바이스를 구성하는 것입니다.
팁
일부 디바이스에는 사용자를 대신하여 이 작업을 수행하는 메커니즘이 있을 수 있습니다. 예를 들어 Azure Percept 디바이스에는 디바이스를 연결하기 위한 설정 환경이 포함됩니다.
2\.1 단계. 디바이스 자격 증명을 디바이스의 AIS로 설정
AIS는 여러 배포 시나리오 및 인증 방법을 지원합니다.
다음 간단한 예제에서는 대칭 키가 있는 연결 문자열을 사용합니다. 프로덕션 시나리오의 경우 Azure IoT ID 서비스 구성에 설명된 더 강력한 인증 옵션 중에서 선택합니다.
빠른 예제: 대칭 키로 연결
Azure Portal에서 다음을 수행합니다.
- IoT Hub 디바이스 목록으로 이동합니다.
- 필요한 경우 디바이스 ID 만들기
- 디바이스의 속성을 찾아 연결 문자열을 복사합니다.
디바이스에서:
- 다음 명령을 실행하여 자격 증명을 AIS로 설정하고 연결 문자열 자리 표시자를 사용자 고유의 자리 표시자로 바꿉니다.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>" sudo aziotctl config apply
2\.2 단계. Azure에 대한 성공적인 연결 확인
디바이스에서 다음 명령을 사용하여 AIS 및 OSConfig가 IoT Hub 연결하는지 확인할 수 있습니다.
sudo aziotctl check
sudo systemctl status osconfig | grep Active
명령의 출력은 통과된 aziotctl check
모든 테스트를 나타내야 합니다.
의 출력에는 가 systemctl status osconfig
포함되어 Active: active
야 합니다. 어떤 경우에는 대신 시스템 Active: activating (auto-restart)
화가 타이머에서 서비스를 다시 시작하기를 기다리고 있음을 의미합니다. 기다리지 않고 즉시 이 상태로 이동하려면 를 실행 sudo systemctl restart osconfig
한 다음 상태 명령을 다시 시도합니다.
정말 간단하죠. 이제 OSConfig 클라이언트가 디바이스에서 실행 중입니다.
선택적 에이전트 설정
많은 사람들이 이 섹션을 건너뛰고 단순히 기본 동작을 사용할 수 있습니다. 프록시 서버, 아웃바운드 방화벽 제한 또는 계층화된 네트워크와 같은 환경 또는 거버넌스 제약 조건이 있는 경우 다음을 참조하세요.
IoT Hub 프로토콜 선택
팁
프로토콜 선택이 버전 v1.0.2.202040405의 prod/stable 채널에 추가되었습니다. 최신 버전의 OSConfig를 사용하고 있는지 확인합니다.
IoT Hub 통신할 때 OSConfig 에이전트는 MQTT(일반 메시지 큐 원격 분석 전송)를 사용하거나 WebSocket(MQTT_WS)을 통해 MQTT를 사용할 수 있습니다.
많은 사람들이 프로토콜을 지정할 필요가 없으며 단순히 기본 동작을 사용할 수 있습니다. 다음 고려 사항 중 하나를 기반으로 프로토콜을 지정해야 하는 경우 /etc/osconfig/osconfig.json에서 값을 설정합니다Protocol
.
MQTT | MQTT_WS | |
---|---|---|
TCP 포트 을(를) | 8883 | 443 |
프록시 서버 ² | 예 | 예 |
IoT Edge 게이트웨이 (부모/자식) |
예 | 예 |
프로토콜 식별자 osconfig.json에서 설정하려면 |
1 | 2 |
1 디바이스의 OSConfig 에이전트가 아웃바운드에 연결할 때 사용되는 TCP 포트를 IoT Hub
² OSConfig가 HTTP 프록시 서버를 명시적으로 사용할 수 있는지 여부를 참조합니다(https_proxy 환경 변수를 통해).
1 자식 디바이스에서 실행되는 OSConfig가 부모 디바이스를 통해 IoT Hub 연결하는 IoT Edge 투명한 게이트웨이 시나리오를 참조합니다.
HTTP 프록시 서버를 통해 연결
환경에서 OSConfig가 HTTP 프록시 서버를 통해 IoT Hub 연결해야 하는 경우 다음을 참조하세요.
팁
프록시 서버 지원은 버전 v1.0.2.202040405의 prod/stable 채널에 추가되었습니다. Ensure you are using the latest prod/stable version of OSConfig.
IoT Hub 프로토콜 선택에서 설명한 대로 http 프록시 서버에서 MQTT_WS만 사용할 수 있습니다. MQTT_WS 활성화하려면 /etc/osconfig/osconfig.json의 값이 로 설정되어 있는지 확인
Protocol
합니다2
.https_proxy
또는HTTPS_PROXY
환경 변수가 OSConfig가 실행되는 컨텍스트에서 설정되었는지 확인합니다.일반적으로 sysadmins 또는 이미지 빌더는 프록시 서버를 사용해야 하는 모든 서비스(OSConfig 포함)에 대한 시스템 단위 파일을 편집하여 이를 전달합니다.
예를 들어 다음과 같은 줄을 추가합니다.
Environment="https_proxy=http://myproxy.example.com:3128"
[Service]
/etc/systemd/system/osconfig.service의 부분에 해당합니다.
파일을 편집한 후 및sudo systemctl restart osconfig
를 실행sudo systemctl daemon-reload
해야 합니다.
다음 단계
OSConfig를 실행하고 Azure IoT에 연결된 디바이스가 있으므로 관리 시나리오를 사용해 볼 수 있습니다.
OSConfig 시나리오 및 기능에 대한 개요는 다음을 참조하세요.
구체적인 실제 예제는 다음을 참조하세요.