다음을 통해 공유


자습서: Azure IoT Hub용 디바이스 업데이트를 사용하여 프록시 업데이트 완료

아직 수행하지 않았다면, Azure IoT Hub용 디바이스 업데이트에서 프록시 업데이트 사용을 검토하십시오.

테스트 디바이스 또는 가상 머신 설정

이 자습서에서는 Ubuntu Server 18.04 LTS VM(가상 머신)을 예로 사용합니다.

디바이스 업데이트 에이전트 및 종속성 설치

  1. 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 update
    
  2. IoT 디바이스에 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>
    
  3. Azure IoT Hub로 이동하여 IoT 디바이스의 디바이스 업데이트 모듈에 대한 기본 연결 문자열을 복사합니다. connectionData 필드의 기본값을 du-config.json 파일의 기본 연결 문자열로 바꿉다.

       sudo nano /etc/adu/du-config.json  
    

    비고

    대신 디바이스에 대한 기본 연결 문자열을 복사할 수 있지만 디바이스 업데이트 모듈에 문자열을 사용하는 것이 좋습니다. 모듈 설정에 대한 자세한 내용은 Device Update Agent 프로비저닝참조하세요.

  4. /etc/adu/du-diagnostics-config.json 로그 수집에 대한 올바른 설정이 포함되어 있는지 확인합니다. 다음은 그 예입니다.

    {
      "logComponents":[
        {
          "componentName":"adu",
           "logPath":"/var/log/adu/"
        },
        {
          "componentName":"do",
          "logPath":"/var/log/deliveryoptimization-agent/"
        }
      ],
      "maxKilobytesToUploadPerLogPath":50
    }
    
  5. 디바이스 업데이트 에이전트를 다시 시작합니다.

    sudo systemctl restart adu-agent
    

모의 구성 요소 설정

테스트 및 데모를 위해 디바이스에서 다음과 같은 모의 구성 요소를 만듭니다.

  • 모터 3개
  • 카메라 2대
  • hostfs
  • rootfs (루트 파일 시스템)

중요합니다

이전 구성 요소 구성은 libcontoso-component-enumerator.so라는 예제 구성 요소 열거자 확장의 구현을 기반으로 합니다. /usr/local/contoso-devices/components-inventory.json모의 구성 요소 인벤토리 데이터 파일도 필요합니다.

  1. 데모 폴더를 테스트 VM의 홈 디렉터리에 복사합니다. 그런 다음, 다음 명령을 실행하여 필요한 파일을 올바른 위치에 복사합니다.

    `~/demo/tools/reset-demo-components.sh` 
    

    reset-demo-components.sh 명령은 사용자 대신 다음 단계를 수행합니다.

    1. components-inventory.json 복사하고 /usr/local/contoso-devices 폴더에 추가합니다.

    2. Assets 폴더 Contoso 구성 요소 열거자 확장(libcontoso-component-enumerator.so)을 복사하고 /var/lib/adu/extensions/sources 폴더에 추가합니다.

    3. 확장을 등록합니다.

      sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
      
  2. 다음 명령을 사용하여 프록시 업데이트를 지원하도록 VM을 설정하여 현재 구성 요소의 소프트웨어 버전을 보고 기록합니다.

    ~/demo/show-demo-components.sh
    

예제 업데이트 가져오기

아직 수행하지 않은 경우 IoT Hub 구성을 포함하여 디바이스 업데이트 계정 및 인스턴스만듭니다. 그런 다음, 다음 절차를 시작합니다.

  1. 최신 디바이스 업데이트 릴리스Assets아래에서 프록시 업데이트에 대한 가져오기 매니페스트 및 이미지를 다운로드합니다.

  2. Azure Portal에 로그인하고 Device Update를 사용하여 IoT 허브로 이동합니다. 왼쪽 창에서 디바이스 관리 >선택합니다.

  3. 업데이트 탭을 선택합니다.

  4. + 새 업데이트 가져오기를 선택합니다.

  5. + 스토리지 컨테이너에서 선택한 다음, 스토리지 계정과 컨테이너를 선택합니다.

    스토리지 컨테이너에서 가져오기를 선택하는 단추를 보여 주는 스크린샷

  6. 업로드 선택하여 1단계에서 다운로드한 파일을 추가합니다.

  7. 부모 가져오기 매니페스트, 자식 가져오기 매니페스트 및 페이로드 파일을 컨테이너에 업로드합니다.

    다음 예제에서는 스마트 진공 청소기 디바이스에 연결된 카메라를 업데이트하기 위해 업로드된 샘플 파일을 보여 줍니다. 또한 무선 업데이트 전에 카메라를 끄는 사전 설치 스크립트도 포함되어 있습니다.

    이 예제에서 부모 가져오기 매니페스트는 contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json. 카메라를 업데이트하기 위한 세부 정보가 포함된 자식 가져오기 매니페스트는 Contoso.Virtual-Vacuum.3.3.importmanifest.json. 두 매니페스트 파일 이름은 모두 필요한 형식을 따르며 .importmanifest.json로 끝납니다.

    스마트 진공 청소기 디바이스에 연결된 카메라를 업데이트하기 위해 업로드된 샘플 파일을 보여 주는 스크린샷

  8. 선택합니다.

  9. 이제 UI에 디바이스 업데이트로 가져올 파일 목록이 표시됩니다. 가져오기 업데이트을 선택하십시오.

    나열된 파일과 업데이트를 가져오기 위한 단추를 보여 주는 스크린샷

  10. 가져오기 프로세스가 시작되고 화면이 가져오기 기록 섹션으로 변경됩니다. 새로 고침 선택하여 가져오기 프로세스가 완료될 때까지 진행률을 확인합니다. 업데이트 크기에 따라 가져오기가 몇 분 안에 완료되거나 더 오래 걸릴 수 있습니다.

  11. 상태 열에 가져오기에 성공했음이 표시되면 사용 가능한 업데이트 탭을 선택합니다. 이제 가져온 업데이트가 목록에 표시됩니다.

    목록에 추가된 가져온 업데이트를 보여 주는 스크린샷

업데이트 가져오기에 대한 자세히 알아보기.

업데이트 그룹 만들기

  1. 페이지 맨 위에 있는 그룹 및 배포 탭으로 이동합니다. 그룹화되지 않은 디바이스의 스크린샷

  2. "그룹 추가" 단추를 선택하여 새 그룹을 만듭니다. 디바이스 그룹 추가 스크린샷

  3. 목록에서 IoT Hub 태그 및 디바이스 클래스를 선택한 다음 그룹 만들기를 선택합니다. 태그 선택 스크린샷

  4. 그룹이 만들어지면 업데이트 준수 차트 및 그룹 목록이 업데이트되는 것을 볼 수 있습니다. 업데이트 준수 차트는 다양한 준수 상태의 디바이스 수를 보여 줍니다. 최신 업데이트, 사용 가능한 새 업데이트 및 업데이트 진행 중. 업데이트 준수에 대해 알아봅니다.업데이트 준수 보기의 스크린샷

  5. 새로 만든 그룹과 새 그룹의 디바이스에 대해 사용 가능한 업데이트가 표시됩니다. 그룹의 디바이스 클래스 요구 사항을 충족하지 않는 디바이스가 있는 경우 해당 잘못된 그룹에 표시됩니다. 그룹 옆에 있는 "배포" 단추를 클릭하여 이 보기에서 새 사용자 정의 그룹에 가장 적합한 업데이트를 배포할 수 있습니다.

태그를 추가하고 업데이트 그룹을 만드는 방법에 대한 자세한 알아봅니다.

업데이트 배포

  1. 그룹이 만들어지면 디바이스 그룹에 사용할 수 있는 가장 적합한 업데이트가 새로 표시될 것입니다. 최적의 업데이트에 대한 링크가 포함되어 있으니 새로 고침을 한 번 실행해야 할 수도 있습니다. 업데이트 준수에 대해 자세히 알아봅니다.

  2. 그룹 이름을 클릭하여 대상 그룹을 선택합니다. 그룹 기본 사항에 따라 그룹 세부 정보로 전달됩니다.

그룹 세부 정보

  1. 배포를 시작하려면 현재 배포 탭으로 이동합니다. 사용 가능한 업데이트 섹션에서 원하는 업데이트 옆에 있는 배포 링크를 클릭합니다. 지정된 그룹에 사용할 수 있는 최상의 업데이트는 "최고" 강조 표시로 표시됩니다.

업데이트 선택

  1. 배포가 즉시 또는 나중에 시작되도록 예약한 다음 만들기를 선택합니다.

배포 만들기

  1. 배포 세부 정보 아래의 상태는 활성으로 전환되어야 하며 배포된 업데이트는 "(배포 중)"으로 표시되어야 합니다.

배포 중

  1. 준수 차트를 봅니다. 이제 업데이트가 진행 중인 것을 볼 수 있습니다.

  2. 디바이스가 성공적으로 업데이트되면 준수 차트 및 배포 세부 정보가 동일하게 반영되도록 업데이트됩니다.

    업데이트 성공

업데이트 배포 모니터링

  1. 페이지 맨 위에 있는 배포 기록 탭을 선택합니다.

    배포 기록

  2. 만든 배포 옆에 있는 세부 정보 링크를 선택합니다.

    배포 세부 정보

  3. 새로 고침을 선택하여 최신 상태 세부 정보를 봅니다.

이제 IoT Hub용 디바이스 업데이트를 사용하여 성공적인 엔드투엔드 프록시 업데이트를 완료했습니다.

리소스 정리

더 이상 필요하지 않은 경우 디바이스 업데이트 계정, 인스턴스, IoT Hub 및 IoT 디바이스를 정리합니다.

다음 단계

IoT Hub용 디바이스 업데이트의 간단한 데모를 위해 다음 자습서를 사용할 수 있습니다.