아직 수행하지 않았다면, Azure IoT Hub용 디바이스 업데이트에서 프록시 업데이트 사용을 검토하십시오.
테스트 디바이스 또는 가상 머신 설정
이 자습서에서는 Ubuntu Server 18.04 LTS VM(가상 머신)을 예로 사용합니다.
디바이스 업데이트 에이전트 및 종속성 설치
APT 패키지 리포지토리에 packages.microsoft.com 등록합니다.
sudo apt-get update sudo apt install curl curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ~/microsoft-prod.list sudo cp ~/microsoft-prod.list /etc/apt/sources.list.d/ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > ~/microsoft.gpg sudo cp ~/microsoft.gpg /etc/apt/trusted.gpg.d/ sudo apt-get updateIoT 디바이스에 deviceupdate-agent 설치합니다. packages.microsoft.com최신 디바이스 업데이트 Debian 파일을 다운로드합니다.
sudo apt-get install deviceupdate-agent또는 다운로드한 Debian 파일을 테스트 VM에 복사합니다. 컴퓨터에서 PowerShell을 사용하는 경우 다음 셸 명령을 실행합니다.
scp <path to the .deb file> tester@<your vm's ip address>:~그런 다음 VM에 원격으로 이동하여 홈 폴더에서 다음 셸 명령을 실행합니다.
#go to home folder cd ~ #install latest Device Update agent sudo apt-get install ./<debian file name from the previous step>Azure IoT Hub로 이동하여 IoT 디바이스의 디바이스 업데이트 모듈에 대한 기본 연결 문자열을 복사합니다.
connectionData필드의 기본값을 du-config.json 파일의 기본 연결 문자열로 바꿉다.sudo nano /etc/adu/du-config.json비고
대신 디바이스에 대한 기본 연결 문자열을 복사할 수 있지만 디바이스 업데이트 모듈에 문자열을 사용하는 것이 좋습니다. 모듈 설정에 대한 자세한 내용은 Device Update Agent 프로비저닝참조하세요.
/etc/adu/du-diagnostics-config.json 로그 수집에 대한 올바른 설정이 포함되어 있는지 확인합니다. 다음은 그 예입니다.
{ "logComponents":[ { "componentName":"adu", "logPath":"/var/log/adu/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }디바이스 업데이트 에이전트를 다시 시작합니다.
sudo systemctl restart adu-agent
모의 구성 요소 설정
테스트 및 데모를 위해 디바이스에서 다음과 같은 모의 구성 요소를 만듭니다.
- 모터 3개
- 카메라 2대
- hostfs
- rootfs (루트 파일 시스템)
중요합니다
이전 구성 요소 구성은 libcontoso-component-enumerator.so라는 예제 구성 요소 열거자 확장의 구현을 기반으로 합니다. /usr/local/contoso-devices/components-inventory.json모의 구성 요소 인벤토리 데이터 파일도 필요합니다.
데모 폴더를 테스트 VM의 홈 디렉터리에 복사합니다. 그런 다음, 다음 명령을 실행하여 필요한 파일을 올바른 위치에 복사합니다.
`~/demo/tools/reset-demo-components.sh`reset-demo-components.sh명령은 사용자 대신 다음 단계를 수행합니다.components-inventory.json 복사하고 /usr/local/contoso-devices 폴더에 추가합니다.
Assets 폴더 Contoso 구성 요소 열거자 확장(libcontoso-component-enumerator.so)을 복사하고 /var/lib/adu/extensions/sources 폴더에 추가합니다.
확장을 등록합니다.
sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
다음 명령을 사용하여 프록시 업데이트를 지원하도록 VM을 설정하여 현재 구성 요소의 소프트웨어 버전을 보고 기록합니다.
~/demo/show-demo-components.sh
예제 업데이트 가져오기
아직 수행하지 않은 경우 IoT Hub 구성을 포함하여 디바이스 업데이트 계정 및 인스턴스만듭니다. 그런 다음, 다음 절차를 시작합니다.
최신 디바이스 업데이트 릴리스Assets아래에서 프록시 업데이트에 대한 가져오기 매니페스트 및 이미지를 다운로드합니다.
Azure Portal에 로그인하고 Device Update를 사용하여 IoT 허브로 이동합니다. 왼쪽 창에서 디바이스 관리 >선택합니다.
업데이트 탭을 선택합니다.
+ 새 업데이트 가져오기를 선택합니다.
+ 스토리지 컨테이너에서 선택한 다음, 스토리지 계정과 컨테이너를 선택합니다.
업로드 선택하여 1단계에서 다운로드한 파일을 추가합니다.
부모 가져오기 매니페스트, 자식 가져오기 매니페스트 및 페이로드 파일을 컨테이너에 업로드합니다.
다음 예제에서는 스마트 진공 청소기 디바이스에 연결된 카메라를 업데이트하기 위해 업로드된 샘플 파일을 보여 줍니다. 또한 무선 업데이트 전에 카메라를 끄는 사전 설치 스크립트도 포함되어 있습니다.
이 예제에서 부모 가져오기 매니페스트는 contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json. 카메라를 업데이트하기 위한 세부 정보가 포함된 자식 가져오기 매니페스트는 Contoso.Virtual-Vacuum.3.3.importmanifest.json. 두 매니페스트 파일 이름은 모두 필요한 형식을 따르며 .importmanifest.json로 끝납니다.
선택합니다.
이제 UI에 디바이스 업데이트로 가져올 파일 목록이 표시됩니다. 가져오기 업데이트을 선택하십시오.
가져오기 프로세스가 시작되고 화면이 가져오기 기록 섹션으로 변경됩니다. 새로 고침 선택하여 가져오기 프로세스가 완료될 때까지 진행률을 확인합니다. 업데이트 크기에 따라 가져오기가 몇 분 안에 완료되거나 더 오래 걸릴 수 있습니다.
상태 열에 가져오기에 성공했음이 표시되면 사용 가능한 업데이트 탭을 선택합니다. 이제 가져온 업데이트가 목록에 표시됩니다.
업데이트 가져오기에 대한 자세히 알아보기.
업데이트 그룹 만들기
그룹이 만들어지면 업데이트 준수 차트 및 그룹 목록이 업데이트되는 것을 볼 수 있습니다. 업데이트 준수 차트는 다양한 준수 상태의 디바이스 수를 보여 줍니다. 최신 업데이트, 사용 가능한 새 업데이트 및 업데이트 진행 중. 업데이트 준수에 대해 알아봅니다.
새로 만든 그룹과 새 그룹의 디바이스에 대해 사용 가능한 업데이트가 표시됩니다. 그룹의 디바이스 클래스 요구 사항을 충족하지 않는 디바이스가 있는 경우 해당 잘못된 그룹에 표시됩니다. 그룹 옆에 있는 "배포" 단추를 클릭하여 이 보기에서 새 사용자 정의 그룹에 가장 적합한 업데이트를 배포할 수 있습니다.
태그를 추가하고 업데이트 그룹을 만드는 방법에 대한 자세한 알아봅니다.
업데이트 배포
그룹이 만들어지면 디바이스 그룹에 사용할 수 있는 가장 적합한 업데이트가 새로 표시될 것입니다. 최적의 업데이트에 대한 링크가 포함되어 있으니 새로 고침을 한 번 실행해야 할 수도 있습니다. 업데이트 준수에 대해 자세히 알아봅니다.
그룹 이름을 클릭하여 대상 그룹을 선택합니다. 그룹 기본 사항에 따라 그룹 세부 정보로 전달됩니다.
- 배포를 시작하려면 현재 배포 탭으로 이동합니다. 사용 가능한 업데이트 섹션에서 원하는 업데이트 옆에 있는 배포 링크를 클릭합니다. 지정된 그룹에 사용할 수 있는 최상의 업데이트는 "최고" 강조 표시로 표시됩니다.
- 배포가 즉시 또는 나중에 시작되도록 예약한 다음 만들기를 선택합니다.
- 배포 세부 정보 아래의 상태는 활성으로 전환되어야 하며 배포된 업데이트는 "(배포 중)"으로 표시되어야 합니다.
업데이트 배포 모니터링
이제 IoT Hub용 디바이스 업데이트를 사용하여 성공적인 엔드투엔드 프록시 업데이트를 완료했습니다.
리소스 정리
더 이상 필요하지 않은 경우 디바이스 업데이트 계정, 인스턴스, IoT Hub 및 IoT 디바이스를 정리합니다.
다음 단계
IoT Hub용 디바이스 업데이트의 간단한 데모를 위해 다음 자습서를 사용할 수 있습니다.
Raspberry Pi 3 B+ 참조 이미지를 사용하는 Azure IoT Hub용 디바이스 업데이트 자습서(필요에 따라 오픈 소스를 통해 다른 아키텍처에 맞는 고유한 이미지를 구축할 수 있도록 확장 가능)
Ubuntu Server 18.04 x64의 패키지 에이전트를 사용한 Azure IoT Hub용 디바이스 업데이트 자습서
Azure IoT Hub용 디바이스 업데이트를 위한 Ubuntu(18.04 x64) 시뮬레이터 참조 에이전트 사용 자습서
