자습서: Ubuntu Server 18.04 x64에서 패키지 에이전트를 사용하는 Device Update for Azure IoT Hub

Device Update for Azure IoT Hub는 이미지 기반, 패키지 기반 및 스크립트 기반 업데이트를 지원합니다.

{b>패키지 기반 업데이트APT 매니페스트를 사용합니다.

이 자습서에서는 디바이스 업데이트 패키지 에이전트를 사용하여 Ubuntu Server 18.04 x64에서 Azure IoT Edge를 업데이트하는 과정을 안내합니다. 자습서에서는 IoT Edge 업데이트를 보여 주지만 이와 유사한 단계로 사용하는 컨테이너 엔진과 같은 다른 패키지를 업데이트할 수 있습니다.

이 자습서의 도구와 개념은 다른 OS 플랫폼 구성을 사용하려는 경우에도 계속 적용됩니다. 엔드투엔드 업데이트 프로세스에 대한 이 소개를 마칩니다. 그런 다음 원하는 OS 플랫폼 업데이트 형식을 선택하여 세부 정보를 살펴봅니다.

이 자습서에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • 디바이스 업데이트 에이전트 및 해당 종속성 다운로드 및 설치
  • 디바이스에 태그를 추가합니다.
  • 업데이트를 가져옵니다.
  • 패키지 업데이트를 배포합니다.
  • 업데이트 배포 모니터링

필수 조건

디바이스 준비

자동 또는 수동으로 디바이스를 준비합니다.

자동화된 Azure에 배포 단추 사용

편의를 위해 이 자습서에서는 cloud-init 기반 Azure Resource Manager 템플릿을 사용하여 Ubuntu 18.04 LTS 가상 머신을 빠르게 설정할 수 있습니다. Azure IoT Edge 런타임과 디바이스 업데이트 패키지 에이전트를 모두 설치합니다. 그런 다음 사용자가 제공하는 IoT Edge 디바이스(필수 조건)에 대한 디바이스 연결 문자열을 사용하여 프로비저닝 정보로 디바이스를 자동으로 구성합니다. 또한 Resource Manager 템플릿을 사용하면 설정을 완료하기 위해 SSH 세션을 시작할 필요가 없습니다.

  1. 시작하려면 단추를 선택합니다.

    Screenshot showing the Deploy to Azure button for iotedge-vm-deploy.

  2. 사용 가능한 텍스트 상자를 채우세요.

    Screenshot showing the iotedge-vm-deploy template.

    • 구독: 가상 머신을 배포할 활성 Azure 구독입니다.
    • 리소스 그룹: 가상 머신과 연결된 리소스를 포함하는 기존 리소스 그룹 또는 새로 만든 리소스 그룹입니다.
    • 지역: 가상 머신을 배포할 지리적 지역입니다. 이 값은 기본적으로 선택한 리소스 그룹의 위치로 설정됩니다.
    • DNS 레이블 접두사: 가상 머신의 호스트 이름을 접두사로 지정하는 데 사용되는 선택 항목의 필수 값입니다.
    • 관리 사용자 이름: 배포 시 루트 권한이 제공되는 사용자 이름입니다.
    • 디바이스 연결 문자열: 의도한 IoT 허브 내에 만들어진 디바이스에 대한 디바이스 연결 문자열입니다.
    • VM 크기: 배포할 가상 머신의 크기입니다.
    • Ubuntu OS 버전: 기본 가상 머신에 설치할 Ubuntu OS 버전입니다. 이미 Ubuntu 18.04-LTS로 설정되어 있으므로 기본값을 변경하지 않고 그대로 둡니다.
    • 인증 형식: 기본 설정에 따라 sshPublicKey 또는 암호를 선택합니다.
    • 관리자 암호 또는 키: SSH 공개 키 값 또는 인증 형식 선택에 따른 암호 값입니다.

    모든 상자를 채운 후 페이지 하단의 확인란을 선택하여 약관에 동의합니다. 구매를 선택하여 배포를 시작합니다.

  3. 배포가 성공적으로 완료되었는지 확인합니다. 배포가 완료된 후 몇 분 동안 사후 설치 및 구성에서 IoT Edge 및 디바이스 패키지 업데이트 에이전트 설치를 완료할 수 있도록 합니다.

    가상 머신 리소스는 선택한 리소스 그룹에 배포되어야 합니다. vm-0000000000000 형식의 컴퓨터 이름을 확인합니다. 또한 <dnsLabelPrefix>.<location>.cloudapp.azure.com 형식의 연결된 DNS 이름을 확인합니다.

    Azure Portal에 새로 배포된 가상 머신의 개요 섹션에서 DNS 이름을 얻을 수 있습니다.

    Screenshot showing the DNS name of the iotedge vm.

    설정 후 이 VM에 SSH로 연결하려면 ssh <adminUsername>@<DNS_Name> 명령과 함께 연결된 DNS 이름을 사용합니다.

  4. 구성 세부 정보를 엽니다(아래 명령을 사용하여 여기에서 구성 파일을 설정하는 방법 참조). connectionType을 'AIS'로 설정하고 connectionData를 빈 문자열로 설정합니다. '여기에 값 배치' 태그가 있는 모든 값을 설정해야 합니다. DU 에이전트 구성을 참조하세요.

    sudo nano /etc/adu/du-config.json
    
  5. Device Update 에이전트를 다시 시작합니다.

    sudo systemctl restart deviceupdate-agent
    

Azure IoT Hub에 대한 디바이스 업데이트 소프트웨어 패키지에는 다음 사용 조건이 적용됩니다.

패키지를 사용하기 전에 사용 조건을 읽으세요. 패키지를 설치하고 사용하면 이러한 사용 조건에 동의하는 것입니다. 사용 조건에 동의하지 않으면 해당 패키지를 사용하지 마세요.

수동으로 디바이스 준비

cloud-init 스크립트로 자동화된 단계와 유사하게 다음 수동 단계에서 디바이스를 설치하고 구성합니다. 다음 단계를 통해 실제 디바이스를 준비합니다.

  1. 지침에 따라 Azure IoT Edge 런타임을 설치합니다.

    참고 항목

    디바이스 업데이트 에이전트는 IoT Edge에 의존하지 않습니다. 그러나 IoT Edge(1.2.0 이상)와 함께 설치되는 IoT ID 서비스 디먼을 사용하여 ID를 가져오고 IoT Hub에 연결합니다.

    이 자습서에서는 설명하지 않지만 IoT ID 서비스 디먼을 독립 실행형으로 Linux 기반 IoT 디바이스에 설치할 수 있습니다. 설치 순서가 중요합니다. 디바이스 업데이트 패키지 에이전트는 IoT ID 서비스 다음에 설치해야 합니다. 그렇지 않으면 패키지 에이전트가 IoT Hub에 대한 연결을 설정할 수 있는 권한 있는 구성 요소로 등록되지 않습니다.

  2. 디바이스 업데이트 에이전트 .deb 패키지를 설치합니다.

    sudo apt-get install deviceupdate-agent 
    
  3. 구성 파일에 IoT 디바이스의 모듈(또는 디바이스 업데이트로 디바이스를 프로비저닝한 방법에 따라 디바이스) 기본 연결 문자열을 입력합니다. '여기에 값 배치' 태그가 있는 모든 값을 설정해야 합니다. DU 에이전트 구성을 참조하세요.

    sudo /etc/adu/du-config.json
    
  4. Device Update 에이전트를 다시 시작합니다.

    sudo systemctl restart deviceupdate-agent
    

Azure IoT Hub에 대한 디바이스 업데이트 소프트웨어 패키지에는 다음 사용 조건이 적용됩니다.

패키지를 사용하기 전에 사용 조건을 읽으세요. 패키지를 설치하고 사용하면 이러한 사용 조건에 동의하는 것입니다. 사용 조건에 동의하지 않으면 해당 패키지를 사용하지 마세요.

디바이스에 태그 추가

  1. Azure Portal에 로그인하고 IoT 허브로 이동합니다.

  2. 왼쪽 창의 디바이스에서 IoT Edge 디바이스를 찾아 디바이스 쌍 또는 모듈 쌍으로 이동합니다.

  3. 디바이스 업데이트 에이전트 모듈의 모듈 쌍에서 기존 디바이스 업데이트 태그 값을 null로 설정하여 삭제합니다. 디바이스 업데이트 에이전트에서 디바이스 ID를 사용하는 경우 디바이스 쌍에서 이러한 변경을 수행합니다.

  4. 다음과 같이 새 디바이스 업데이트 태그 값을 추가합니다.

        "tags": {
            "ADUGroup": "<CustomTagValue>"
        },
    

    Screenshot that shows twin with tag information.

    이 스크린샷에서는 트윈에 태그를 추가해야 하는 섹션을 보여 줍니다.

업데이트 가져오기

  1. GitHub의 디바이스 업데이트 릴리스로 이동하여 자산 드롭다운 목록을 선택합니다. Tutorial_IoTEdge_PackageUpdate.zip을 선택하여 다운로드합니다. 폴더의 내용을 추출하여 샘플 APT 매니페스트(sample-1.0.2-aziot-edge-apt-manifest.json) 및 해당 가져오기 매니페스트(sample-1.0.2-aziot-edge-importManifest.json)를 검색합니다.

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

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

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

  5. + 스토리지 컨테이너에서 선택을 선택합니다. 기존 계정을 선택하거나 + 스토리지 계정을 사용하여 새 계정을 만듭니다. 그런 다음 + 컨테이너를 사용하여 기존 컨테이너를 선택하거나 새 컨테이너를 만듭니다. 이 컨테이너는 가져올 업데이트 파일을 스테이징하는 데 사용됩니다.

    참고 항목

    이전 업데이트에서 실수로 파일을 가져오지 않도록 업데이트를 가져올 때마다 새 컨테이너를 사용하는 것이 좋습니다. 새 컨테이너를 사용하지 않는 경우 이 단계를 완료하기 전에 기존 컨테이너에서 모든 파일을 삭제해야 합니다.

    Screenshot that shows Storage account.

  6. 컨테이너에서 업로드를 선택하고 1단계에서 다운로드한 파일로 이동합니다. 모든 업데이트 파일을 선택한 후 업로드를 선택합니다. 그런 다음 선택 단추를 선택하여 업데이트 가져오기 페이지로 돌아갑니다.

    Screenshot that shows selecting uploaded files.

    이 스크린샷은 가져오기 단계를 보여 줍니다. 파일 이름은 예제에 사용된 이름과 일치하지 않을 수 있습니다.

  7. 업데이트 가져오기 페이지에서 가져올 파일을 검토합니다. 그런 다음 업데이트 가져오기를 선택하여 가져오기 프로세스를 시작합니다.

    Screenshot that shows starting the Import process.

  8. 가져오기 프로세스가 시작되고 화면이 가져오기 기록 섹션으로 전환됩니다. 상태 열에 가져오기가 성공했다고 표시되면 사용 가능한 업데이트 헤더를 선택합니다. 이제 목록에 가져온 업데이트가 표시됩니다.

    Screenshot that shows the job status.

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

디바이스 그룹 보기

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

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

    Screenshot that shows ungrouped devices.

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

    Screenshot that shows the update compliance view.

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

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

업데이트 배포

  1. 그룹이 생성되면 최상의 업데이트 아래에 업데이트 링크와 함께 디바이스 그룹에 사용할 수 있는 새 업데이트가 표시되어야 합니다. 한 번 새로 고쳐야 할 수도 있습니다.

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

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

    Screenshot that shows Group details.

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

    Screenshot that shows selecting an update.

  4. 즉시 또는 나중에 시작하도록 배포를 예약합니다. 다음으로 만들기를 선택합니다.

    기본적으로 시작 날짜/시간은 현재 시간으로부터 24시간입니다. 배포를 더 일찍 시작하려면 다른 날짜/시간을 선택해야 합니다.

    Screenshot that shows creating a deployment.

  5. 배포 세부 정보에서 상태활성으로 바뀝니다. 배포된 업데이트는 (배포 중)으로 표시됩니다.

    Screenshot that shows the deployment as Active.

  6. 업데이트가 현재 진행 중인지 확인하려면 준수 차트를 봅니다.

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

    Screenshot that shows the update succeeded.

업데이트 배포 모니터링

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

    Screenshot that shows Deployment history.

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

    Screenshot that shows deployment details.

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

이제 Ubuntu Server 18.04 x64 디바이스에서 IoT Hub에 대한 디바이스 업데이트를 사용하여 엔드투엔드 패키지 업데이트를 성공적으로 완료했습니다.

리소스 정리

더 이상 필요하지 않은 경우 디바이스 업데이트 계정, 인스턴스 및 IoT Hub를 정리합니다. 또한 Azure에 배포 단추를 통해 VM을 만든 경우 IoT Edge 디바이스를 정리합니다. 리소스를 정리하려면 각 개별 리소스로 이동하여 삭제를 선택합니다. 디바이스 업데이트 계정을 정리하기 전에 디바이스 업데이트 인스턴스를 정리합니다.

다음 단계