다음을 통해 공유


자습서: Device Update for Azure IoT Hub를 사용하여 프록시 업데이트 완료

아직 수행하지 않은 경우 Device Update for Azure IoT Hub에서 프록시 업데이트 사용을 참조하세요.

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

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

Device Update 에이전트 및 종속성 설치

  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에서 최신 Device Update Debian 파일을 다운로드합니다.

    sudo apt-get install deviceupdate-agent
    

    또는 다운로드한 Debian 파일을 테스트 VM에 복사합니다. 컴퓨터에서 PowerShell을 사용하는 경우 다음 셸 명령을 실행합니다.

    scp <path to the .deb file> tester@<your vm's ip address>:~
    

    그런 다음, VM으로 원격으로 연결하고 home 폴더에서 다음 셸 명령을 실행합니다.

    #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 디바이스의 Device Update 모듈에 대한 기본 연결 문자열을 복사합니다. connectionData 필드의 기본값을 du-config.json 파일의 기본 연결 문자열로 바꿉니다.

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

    참고 항목

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

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

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

    sudo systemctl restart deviceupdate-agent
    

모의 구성 요소 설정

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

  • 모터 3개
  • 카메라 2개
  • “hostfs”
  • “rootfs”

Important

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

  1. demo 폴더를 테스트 VM의 home 디렉터리에 복사합니다. 이어서 다음 명령을 실행하여 필요한 파일을 올바른 위치에 복사합니다.

    `~/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
      

예제 업데이트 가져오기

아직 수행하지 않은 경우 IoT 허브 구성을 포함하여 Device Update 계정 및 인스턴스를 만듭니다. 이어서 다음 절차를 시작합니다.

  1. 최신 Device Update 릴리스자산 아래에서 프록시 업데이트의 가져오기 매니페스트 및 이미지를 다운로드합니다.

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

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

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

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

    Screenshot that shows the button for selecting to import from a storage container.

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

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

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

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

    Screenshot that shows sample files uploaded to update cameras connected to a smart vacuum cleaner device.

  8. 선택을 선택합니다.

  9. 이제 UI에는 Device Update로 가져올 파일 목록이 표시됩니다. 업데이트 가져오기를 선택합니다.

    Screenshot that shows listed files and the button for importing an update.

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

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

    Screenshot that shows the imported update added to the list.

가져오기 프로세스에 대한 자세한 내용은 로 업데이트 가져오기를 참조하세요.

디바이스 그룹 보기

Device Update는 그룹을 사용하여 디바이스를 구성합니다. Device Update는 할당된 태그 및 호환성 속성에 따라 디바이스를 그룹으로 자동 정렬합니다. 각 디바이스는 하나의 그룹에만 속하지만 그룹은 서로 다른 디바이스 클래스를 정렬하기 위해 여러 하위 그룹을 가질 수 있습니다.

  1. 페이지 위에 있는 그룹 및 배포 탭으로 이동합니다.

    Screenshot that shows ungrouped devices.

  2. 그룹 목록 및 업데이트 준수 차트를 봅니다. 업데이트 준수 차트에는 최신 업데이트, 사용 가능한 새 업데이트진행 중인 업데이트 등 다양한 준수 상태의 디바이스 수가 표시됩니다. 업데이트 준수를 알아봅니다.

    Screenshot that shows the update compliance view.

  3. 새 그룹의 디바이스에 대해 사용 가능한 업데이트와 함께 이 자습서에서 설정한 시뮬레이션된 디바이스가 포함된 디바이스 그룹이 표시되어야 합니다. 그룹의 디바이스 클래스 요구 사항을 충족하지 않는 디바이스가 있는 경우 해당하는 잘못된 그룹에 표시됩니다. 이 보기에서 새 사용자 정의 그룹에 가장 적합한 업데이트를 배포하려면 그룹 옆에 있는 배포를 선택합니다.

태그 및 그룹에 대한 자세한 내용은 디바이스 그룹 관리를 참조하세요.

업데이트 배포

  1. 그룹이 만들어진 후 최상의 업데이트 아래에 업데이트 링크와 함께 디바이스 그룹에 사용할 수 있는 새 업데이트가 표시됩니다.

    규정 준수에 대한 자세한 내용은 디바이스 업데이트 규정 준수를 참조하세요.

  2. 그룹 이름을 클릭하여 대상 그룹을 선택합니다. 그룹 기본 사항에서 그룹 세부 정보로 리디렉션됩니다.

    Group details

  3. 배포를 시작하려면 현재 배포 탭으로 이동합니다. 사용 가능한 업데이트 섹션에서 원하는 업데이트 옆에 있는 배포 링크를 선택합니다. 지정된 그룹에서 사용할 수 있는 최상의 업데이트는 “최상”이라는 강조 표시로 나타납니다.

    Select update

  4. 즉시 또는 나중에 시작하도록 배포를 예약한 다음, {b>만들기

    Create deployment

  5. 배포 세부 정보 아래의 상태가 활성으로 전환되고 배포된 업데이트에는 “(배포 중)”이 표시됩니다.

    Deployment active

  6. 규정 준수 차트를 봅니다. 이제 업데이트가 진행 중인 것으로 표시됩니다.

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

    Update succeeded

업데이트 배포 모니터링

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

    Deployment History

  2. 만든 배포 옆에 있는 {b>세부 정보

    Deployment details

  3. 최신 상태 세부 정보를 보려면 새로 고침을 선택합니다.

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

리소스 정리

더 이상 필요하지 않은 경우 Device Update 계정, 인스턴스, IoT 허브, IoT 디바이스 등을 정리합니다.

다음 단계