자습서: Ubuntu 22.04 패키지 에이전트를 사용하여 IoT Hub용 Azure 디바이스 업데이트
Device Update for Azure IoT Hub는 이미지 기반, 패키지 기반 및 스크립트 기반 업데이트를 지원합니다. 이 자습서에서는 디바이스 업데이트 Ubuntu Server 22.04 x64 패키지 에이전트를 사용하여 Azure IoT Edge를 업데이트하는 엔드투엔드 패키지 업데이트를 보여 줍니다.
패키지 기반 업데이트는 특정 디바이스 구성 요소 또는 애플리케이션만 변경하도록 대상으로 지정됩니다. 이러한 업데이트는 대역폭 사용량이 낮고 이미지 기반 업데이트보다 다운로드 및 설치 시간이 짧으므로 디바이스 가동 중지 시간이 줄어들고 이미지 생성 오버헤드를 방지할 수 있습니다. 패키지 기반 업데이트 에서 APT 매니페스트 는 지정된 리포지토리에서 지정된 패키지 및 해당 종속성을 다운로드하고 설치하는 데 필요한 정보를 디바이스 업데이트 에이전트에 제공합니다.
이 자습서에서는 IoT용 Microsoft Defender를 설치하는 방법을 안내하지만, IoT Edge 자체 또는 사용하는 컨테이너 엔진과 같은 유사한 단계를 사용하여 다른 패키지를 업데이트할 수 있습니다. 이 자습서의 도구와 개념은 다른 OS 플랫폼 구성을 사용하는 경우에도 적용됩니다.
이 자습서에서는 다음을 수행합니다.
- 디바이스 업데이트 에이전트 및 해당 종속성 다운로드 및 설치
- 디바이스에 그룹 태그를 추가합니다.
- 패키지 업데이트를 가져옵니다.
- 패키지 업데이트를 배포합니다.
- 업데이트 배포 기록을 봅니다.
필수 조건
디바이스 준비
편의를 위해 이 자습서에서는 CLOUD-init 기반 ARM(Azure Resource Manager) 템플릿을 사용하여 Ubuntu 22.04 LTS VM(가상 머신)을 신속하게 설정합니다. 템플릿은 IoT Edge 런타임과 디바이스 업데이트 패키지 에이전트를 모두 설치하고, 사용자가 제공하는 연결 문자열 IoT Edge 디바이스를 사용하여 프로비저닝 정보를 사용하여 디바이스를 자동으로 구성합니다. ARM 템플릿을 사용하면 설정을 완료하기 위해 SSH(보안 셸) 세션을 시작할 필요가 없습니다.
템플릿을 실행하려면 다음 Azure 에 배포 단추를 선택합니다.
다음 정보를 완료합니다.
- 구독: VM을 배포할 활성 Azure 구독입니다.
- 리소스 그룹: VM 및 해당 리소스를 포함할 기존 또는 새 리소스 그룹입니다.
- 지역: VM을 배포할 지리적 지역 이며, 기본적으로 리소스 그룹의 위치로 설정됩니다.
- Dns 레이블 접두사: VM의 호스트 이름을 접두사로 사용하는 값입니다.
- 관리자 사용자 이름: 배포 시 루트 권한을 제공하는 사용자 이름입니다.
- 인증 유형: sshPublicKey 또는 암호를 선택합니다.
- 관리자 암호 또는 SSH 공개 키 원본, SSH 키 유형, 키 쌍 이름: 인증 유형 선택에 따른 암호 또는 SSH 공개 키 정보입니다.
- VM 크기: 배포할 VM의 크기 입니다.
- Ubuntu OS 버전: 22_04-lts로 둡니다.
- 디바이스 연결 문자열: 이전에 복사한 IoT Edge 연결 문자열.
페이지 아래쪽에서 검토 + 만들기를 선택합니다. 유효성 검사가 성공하면 만들기를 선택하여 템플릿 배포를 시작합니다.
배포가 성공적으로 완료되었는지 확인하고, 설치 후 및 구성에 대한 배포가 완료된 후 몇 분 후에 IoT Edge 및 디바이스 패키지 업데이트 에이전트 설치를 완료하도록 허용합니다.
선택한 리소스 그룹에 VM 리소스가 표시됩니다.
vm-0000000000000
형식의 컴퓨터 이름을 확인합니다. VM 이름을 선택하고 VM 개요 페이지에서 형식인 DNS 이름을<dnsLabelPrefix>
<location>.cloudapp.azure.com
확인합니다.
팁
설치 후 이 VM에 SSH하려면 명령ssh <admin username>@<DNS name>
과 함께 연결된 DNS 이름을 사용합니다.
VM에 디바이스 업데이트 에이전트 설치
Important
Azure Device Update for IoT Hub 소프트웨어에는 다음 사용 조건이 적용됩니다.
에이전트를 사용하기 전에 사용 조건을 읽습니다. 에이전트 설치 및 사용은 이러한 약관의 동의를 구성합니다. 사용 조건에 동의하지 않는 경우 디바이스 업데이트 에이전트를 사용하지 마세요.
VM에 디바이스 업데이트 에이전트를 설치하려면 다음 명령을 실행합니다.
sudo apt-get install deviceupdate-agent
다음 명령을 사용하여 du-config.json 구성 세부 정보 파일을 엽니다.
sudo nano /etc/adu/du-config.json
파일에서 모든
<placeholder>
값을 사용자 고유의 구성으로 바꿉 있습니다. 빈connectionType
문자열로"AIS"
connectionData
설정합니다. 예제 파일은 예제 du-config.json 파일 내용을 참조 하세요.다음 명령을 실행하여 디바이스 업데이트 에이전트를 다시 시작합니다.
sudo systemctl restart deviceupdate-agent
참고 항목
이전에 이 디바이스에서 시뮬레이터 에이전트를 사용한 경우 다음 명령을 실행하여 APT 처리기를 호출하고 이 자습서에 대한 무선 패키지 업데이트를 배포합니다.
sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/apt:1'
디바이스에 그룹 태그 추가
디바이스 업데이트는 할당된 태그 및 호환성 속성에 따라 디바이스를 그룹으로 자동으로 구성합니다. 각 디바이스는 하나의 그룹에만 속할 수 있지만 그룹에는 여러 하위 그룹을 사용하여 다른 디바이스 클래스를 정렬할 수 있습니다. 태그 및 그룹에 대한 자세한 내용은 디바이스 그룹 관리를 참조하세요.
디바이스 업데이트 인스턴스에 대한 Azure Portal IoT Hub 페이지의 왼쪽 탐색 영역에서 디바이스 관리>디바이스를 선택합니다.
디바이스의 디바이스 쌍 또는 모듈 ID 쌍으로 이동합니다.
디바이스 쌍 또는 디바이스 업데이트 에이전트 모듈 ID 쌍 파일에서 기존 디바이스 업데이트 태그 값을 설정
null
하여 삭제한 다음, 다음 새 디바이스 업데이트 그룹 태그를 추가합니다.디바이스 업데이트 에이전트에서 디바이스 ID를 사용하는 경우 디바이스 쌍에서 이러한 내용을 변경합니다. 디바이스 업데이트 에이전트 모듈에서 모듈 ID를 사용하는 경우 모듈 ID 쌍에 태그를 추가합니다.
"tags": { "ADUGroup": "<GroupTagValue>" },
다음 스크린샷은 파일에서 태그를 추가할 위치를 보여줍니다.
저장을 선택합니다.
업데이트 가져오기
Tutorial_IoTEdge_PackageUpdate.zip 파일에는 자습서에 필요한 파일이 있습니다.
GitHub 디바이스 업데이트 릴리스 페이지의 최신 릴리스 자산 섹션에서 Tutorial_IoTEdge_PackageUpdate.zip 파일을 다운로드합니다.
파일의 압축을 풉니다. 추출된 Tutorial_IoTEdge_PackageUpdate 폴더에는 sample-defender-iot-apt-manifest.json 샘플 APT 매니페스트와 해당 sample-defender-iot--importManifest.json 가져오기 매니페스트가 포함됩니다.
디바이스 업데이트 인스턴스에 대한 Azure Portal IoT Hub 페이지에서 왼쪽 탐색 창에서 장치 관리> 업데이트를 선택합니다.
업데이트 페이지에서 새 업데이트 가져오기를 선택합니다.
업데이트 가져오기 페이지에서 스토리지 컨테이너에서 선택을 선택합니다.
Storage 계정 페이지에서 기존 스토리지 계정을 선택하거나 Storage 계정을 선택하여 새 계정을 만듭니다.
컨테이너 페이지에서 기존 컨테이너를 선택하거나 컨테이너를 선택하여 새 컨테이너를 만듭니다. 컨테이너를 사용하여 가져오기 위해 업데이트 파일을 준비합니다.
팁
이전 업데이트에서 실수로 파일을 가져오지 않도록 하려면 업데이트를 가져올 때마다 새 컨테이너를 사용합니다. 새 컨테이너를 사용하지 않는 경우 기존 컨테이너에서 파일을 삭제해야 합니다.
컨테이너 페이지에서 업로드, 끌어서 놓기 또는 찾아보기를 선택하고 다운로드한 업데이트 파일을 선택한 다음 업로드를 선택합니다. 업로드한 후 파일이 컨테이너 페이지에 표시됩니다.
가져올 파일을 검토하고 선택한 다음 선택을 선택합니다.
업데이트 가져오기 화면에서 업데이트 가져오기를 선택합니다.
가져오기 프로세스가 시작되고 화면이 업데이트 화면으로 전환됩니다 . 가져오기가 성공하면 업데이트 탭에 표시됩니다. 가져오기 프로세스에 대한 자세한 내용은 디바이스 업데이트로 업데이트 가져오기를 참조하세요.
디바이스 그룹 선택
디바이스에 적용한 그룹 태그를 사용하여 디바이스 그룹에 업데이트를 배포할 수 있습니다. 업데이트 페이지 맨 위에 있는 그룹 및 배포 탭을 선택하여 그룹 및 배포 목록과 업데이트 준수 차트를 확인합니다.
업데이트 준수 차트에는 최신 업데이트, 사용 가능한 새 업데이트 및 진행 중인 업데이트 등 다양한 준수 상태의 디바이스 수가 표시됩니다. 자세한 내용은 디바이스 업데이트 규정 준수를 참조하세요.
그룹 이름 아래에는 이 IoT Hub에 연결된 디바이스의 모든 디바이스 그룹 및 사용 가능한 업데이트 목록이 표시되며, 상태 아래에 업데이트를 배포할 수 있는 링크가 표시됩니다. 그룹의 디바이스 클래스 요구 사항을 충족하지 않는 디바이스는 해당 잘못된 그룹에 표시됩니다. 태그 및 그룹에 대한 자세한 내용은 디바이스 그룹 관리를 참조하세요.
이 자습서에서 설정한 디바이스와 그룹의 디바이스에 대해 사용 가능한 업데이트가 포함된 디바이스 그룹이 표시됩니다. 페이지를 새로 고쳐야 할 수 있습니다. 이 보기에서 그룹에 가장 적합한 업데이트를 배포하려면 그룹 옆에 배포를 선택합니다.
업데이트 배포
그룹 세부 정보 페이지에서 현재 배포 탭을 선택한 다음 사용 가능한 업데이트 섹션에서 원하는 업데이트 옆에 있는 배포를 선택합니다. 그룹에 사용할 수 있는 가장 좋은 업데이트는 가장 강조 표시되어 있습니다.
배포 만들기 페이지에서 즉시 또는 나중에 시작하도록 배포를 예약한 다음 만들기를 선택합니다.
팁
기본적으로 시작 날짜/시간은 현재 시간으로부터 24시간입니다. 배포를 더 빨리 시작하려면 다른 날짜와 시간을 선택해야 합니다.
배포 세부 정보 아래의 그룹 세부 정보 페이지에서 상태가 활성으로 바뀝니다. 사용 가능한 업데이트에서 선택한 업데이트는 (배포 중) 상태로 표시됩니다.
업데이트 페이지의 그룹 및 배포 탭에서 준수 차트를 확인하여 업데이트가 현재 진행 중인지 확인합니다. 디바이스가 성공적으로 업데이트되면 준수 차트 및 배포 세부 정보가 해당 상태를 반영하도록 업데이트됩니다.
업데이트 배포 기록 보기
그룹 세부 정보 페이지의 맨 위에 있는 배포 기록 탭을 선택하고 만든 배포 옆에 있는 세부 정보 링크를 선택합니다.
배포 세부 정보 페이지에서 새로 고침 아이콘을 선택하여 최신 상태 세부 정보를 봅니다.
리소스 정리
이 자습서에 대해 만든 리소스가 더 이상 필요하지 않으면 삭제할 수 있습니다.
- Azure Portal에서 리소스가 포함된 리소스 그룹으로 이동합니다.
- 그룹의 모든 리소스를 삭제하려는 경우 리소스 그룹 삭제를 선택합니다.
- 일부 리소스만 삭제하려면 확인란을 사용하여 리소스를 선택한 다음 삭제를 선택합니다.