共用方式為


教學課程:在 Ubuntu Server 18.04 x64 上使用套件代理程式的 Azure IoT 中樞裝置更新

Azure IoT 中樞裝置更新支援映像型、套件型和指令碼型更新。

套件型更新是只會改變裝置上特定元件或應用程式的目標更新。 其頻寬耗用量較低,並協助減少下載和安裝更新的時間。 當您套用更新並避免建立映像的額外負荷時,套件型更新通常也會讓裝置停機時間更少。 他們會使用 APT指令清單,為裝置更新代理程式提供從指定的存放庫下載並安裝APT指令清單檔中所列的套件及其相依性所需的資訊。

本教學課程會逐步引導您使用裝置更新套件代理程式,在Ubuntu Server 18.04 x64上更新 Azure IoT Edge。 雖然本教學課程示範如何更新IoT Edge,但您可以使用類似的步驟來更新其他套件,例如所使用的容器引擎。

即使您打算使用不同的 OS 平台組態,本教學課程中的工具和概念仍然適用。 完成這個端對端更新程序的簡介。 然後選擇您慣用的更新作業系統平台形式,以深入了解詳細資料。

在本教學課程中,您將了解如何:

  • 下載並安裝裝置更新代理程式及其相依項目。
  • 將標記新增至您的裝置。
  • 匯入更新。
  • 建立裝置群組。
  • 部署套件更新。
  • 監控更新部署。

先決條件

  • 如果您尚未這麼做,請建立 裝置更新帳戶和實例。 設定 IoT 中樞。

  • 您需要 IoT Edge裝置的連接字串

  • 如果您使用 模擬器代理程式教學課程 進行先前的測試,請執行下列命令來叫用 APT 處理程式,並在本教學課程中部署無線套件更新:

    # sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
    

準備裝置

自動或手動準備裝置。

使用自動部署至 Azure 按鈕

為了方便起見,本教學課程使用 雲端式Azure Resource Manager 範本 ,協助您快速設定 Ubuntu 18.04 LTS 虛擬機。 會同時安裝 Azure IoT Edge 執行階段和裝置更新套件代理程式。 然後,系統會自動使用您提供的裝置連接字串,針對 IoT Edge 裝置(前提條件)以佈建資訊來設定裝置。 Resource Manager 範本還讓您不需啟動 SSH 會話即可完成設定。

  1. 若要開始,請選取按鈕:

    此螢幕快照顯示 iotedge-vm-deploy 的 [部署至 Azure] 按鈕

  2. 填寫可用的文字方塊:

    • 訂閱:用於部署虛擬機的有效 Azure 訂閱。
    • 資源群組:現有或新建立的資源群組,以包含虛擬機及其相關聯的資源。
    • 區域:要部署虛擬機的 地理區域 。 這個值預設為所選取資源群組的位置。
    • DNS 標籤前置詞:您選擇的必要值,用來為虛擬機的主機名加上前置詞。
    • 管理員使用者名稱:提供部署根許可權的用戶名稱。
    • 裝置連接字串:在您目標的物聯網中樞內建立的裝置連接字串
    • VM 大小:要部署的虛擬機 大小
    • Ubuntu OS 版本:要安裝在基底虛擬機上的UbuntuOS版本。 將預設值維持不變,因為它已經設定為Ubuntu18.04-LTS。
    • 驗證類型:根據您的喜好設定選擇 sshPublicKey密碼
    • 管理員密碼或金鑰:SSH 公鑰的值,或根據驗證類型選擇的密碼值。

    填入所有方塊之後,請選取頁面底部的核取方塊以接受條款。 選取 [購買] 以開始部署。

  3. 確認部署已順利完成。 在部署完成之後,允許幾分鐘的時間完成安裝後和設定,以完成安裝 IoT Edge 和裝置套件更新代理程式。

    虛擬機資源應該已部署到選取的資源群組中。 請記下電腦名稱,其格式為 vm-0000000000000。 另請注意相關聯的 DNS 名稱,格式 <dnsLabelPrefix>為 .<location>。cloudapp.azure.com。

    您可以在 Azure 入口網站中新部署虛擬機器的 [概觀] 區段取得 [DNS 名稱]

    小提示

    若要在安裝之後透過 SSH 連線到此 VM,請使用相關聯的 DNS 名稱 搭配下列命令: ssh <adminUsername>@<DNS_Name>

  4. 開啟組態詳細資料 (請參閱如何使用下列命令 在這裡設定組態檔 。 將您的 connectionType 設定為 'AIS' 並將 connectionData 設定為空字串。

/etc/adu/du-config.json
  1. 執行下列命令重新啟動裝置更新代理程式:
 sudo systemctl restart adu-agent

Azure IoT 中樞軟體套件的裝置更新受限於下列授權條款:

使用套件之前,請先閱讀授權條款。 安裝及使用套件即表示接受這些授權條款。 如果您不同意授權條款,請勿使用該套件。

手動準備裝置

cloud-init 腳本自動化的步驟類似,下列手動步驟可用來安裝和設定裝置。 使用這些步驟來準備實體裝置。

  1. 請遵循指示來 安裝 Azure IoT Edge 執行環境

    備註

    裝置更新代理程式不相依於IoT Edge。 但它確實依賴隨IoT Edge (1.2.0和更新版本) 一起安裝的IoT身分識別服務精靈來取得身分識別並連線到IoT中樞。

    雖然本教學課程未涵蓋,但 IoT 身分識別服務精靈可以在 Linux 型 IoT 裝置上獨立安裝。 安裝順序很重要。 裝置更新套件代理程式必須在IoT身分識別服務 之後 安裝。 否則,套件代理程式將不會註冊為已授權的元件,以建立與IoT中樞的連線。

  2. 安裝裝置更新代理程式.deb套件:

    sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt 
    
  3. 執行下列命令,在組態檔中輸入IoT裝置模組(或裝置,視您使用 裝置更新布建裝置的方式而定) 主要連接字串:

    /etc/adu/du-config.json
    
  4. 執行下列命令重新啟動裝置更新代理程式:

     sudo systemctl restart adu-agent
    

Azure IoT 中樞軟體套件的裝置更新受限於下列授權條款:

使用套件之前,請先閱讀授權條款。 安裝及使用套件即表示接受這些授權條款。 如果您不同意授權條款,請勿使用該套件。

將標記新增至您的裝置

  1. 登入 Azure 入口網站 並移至 IoT 中樞。

  2. 在左窗格的 [ 裝置] 底下,尋找您的 IoT Edge 裝置,然後移至裝置對應項或模組對應項。

  3. 在裝置更新代理程式模組的模組對應項中,將其設定為 Null,以刪除任何現有的裝置更新標記值。 如果您使用裝置身分識別搭配裝置更新代理程式,請在裝置雙胞體上進行這些變更。

  4. 新增裝置更新標記值,如下所示:

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

匯入更新

  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 入口網站 ,並使用裝置更新移至 IoT 中樞。 在左窗格中,選取 [自動裝置管理] 下的 [更新]

  3. 選取 [ 更新] 索引標籤。

  4. 選取 + 匯入新更新

  5. 選取 [+ 從儲存體容器選取]。 選取現有帳戶或使用 [+ 儲存體帳戶] 建立新帳戶。 然後選取現有的容器,或使用 [+ 容器] 建立新的容器。 此容器可用來暫存更新檔案以進行匯入。

    備註

    建議您在每次匯入更新時使用新的容器,以避免意外從先前的更新匯入檔案。 如果您沒有使用新的容器,請務必先刪除現有容器中的任何檔案,再完成此步驟。

    顯示記憶體帳戶的螢幕快照。

  6. 在容器中,選取 [上傳],然後移至您在步驟 1 下載的檔案。 選取所有更新檔案之後,請選取 [上傳]。 然後選取 [選取] 按鈕,以返回 [匯入更新] 頁面。

    顯示選取上傳檔案的螢幕快照。

    此螢幕擷取畫面顯示匯入步驟。 檔案名稱可能不符合範例中使用的檔案名稱。

  7. 在 [匯入更新] 頁面上,檢閱要匯入的檔案。 然後選取 [匯入更新] 以啟動匯入程序。

    顯示開始匯入程式的螢幕快照。

  8. 匯入程序隨即開始,畫面會切換至 [匯入歷程記錄] 區段。 當 [狀態] 資料行指出匯入成功時,請選取 [可用的更新] 標頭。 您現在應該會在清單中看到您匯入的更新。

    顯示作業狀態的螢幕快照。

深入瞭解 如何匯入更新。

建立更新群組

  1. 移至頁面頂端的 [群組和部署] 索引標籤。

    顯示未分組裝置的螢幕快照。

  2. 選取 [ 新增群組 ] 按鈕以建立新的群組。

    顯示新增裝置群組的螢幕快照。

  3. 從清單中選取 IoT中樞 標籤和 裝置類別 。 接著選取 [建立群組]

    顯示標籤選取的螢幕快照。

  4. 建立群組之後,您會看到更新合規性圖表和群組清單已更新。 更新合規性圖表會顯示各種合規性狀態中的裝置計數: 最新更新可用的新更新,以及 進行中的更新瞭解更新合規性

    顯示更新合規性檢視的螢幕快照。

  5. 您應該會看到新建立的群組,以及新群組中裝置的任何可用更新。 如果有不符合群組裝置類別需求的裝置,它們會顯示在對應的無效群組中。 若要從此檢視將最佳的可用更新部署到新的使用者定義群組,請選取群組旁的 [部署]

深入瞭解 如何新增標籤和建立更新群組。

部署更新

  1. 建立群組之後,您應該會看到裝置群組可用的新更新,包含 [最佳更新] 底下的更新連結。 您可能需要再次重新整理。 深入瞭解更新的遵循性

  2. 透過選取群組名稱來選擇目標群組。 系統會將您導向至 [群組基本資料] 下方的群組詳細資料。

    顯示群組詳細數據的螢幕快照。

  3. 若要起始部署,請移至 [目前部署] 索引標籤。從 [可用更新] 區段選取所需更新旁的 [部署] 連結。 指定群組的最佳可用更新會以 最佳 醒目提示表示。

    顯示選取更新的螢幕快照。

  4. 安排您的部署,以立即啟動或設定在未來的某一時間啟動。 然後選取 建立

    小提示

    根據預設, [開始日期 ] 日期和時間距離您目前的時間是 24 小時。 如果您想要提早開始部署,請務必選取不同的日期和時間。

    顯示建立部署的螢幕快照。

  5. 在 [部署詳細資料] 下方,[狀態] 會變成 [作用中]。 部署的更新會標示為 [(部署中)]

    顯示部署為 [作用中] 的螢幕快照。

  6. 檢視合規性圖表,以查看更新目前是否正在進行中。

  7. 成功更新裝置之後,您會看到合規性圖表和部署詳細資料已更新,以反映相同狀態。

    顯示更新成功的螢幕快照。

監控更新部署

  1. 選取頁面頂端的 [部署歷程記錄] 索引標籤。

    顯示部署歷程記錄的螢幕快照。

  2. 選擇您所建立部署旁邊的 詳細資訊 連結。

    顯示部署詳細數據的螢幕快照。

  3. 選取 [重新整理 ] 以檢視最新的狀態詳細數據。

您現在已成功地在 Ubuntu Server 18.04 x64 裝置上使用 IoT 中樞的裝置更新進行了端到端的套件更新。

清理資源

不再需要時,請清除您的裝置更新帳戶、執行個體和 IoT 中樞。 如果您透過 [部署至 Azure] 按鈕建立 VM,也請清除 IoT Edge 裝置。 若要清除資源,請移至每個個別資源,然後選取 [刪除]。 清除裝置更新帳戶之前,請先清除裝置更新執行個體。

後續步驟

若要簡單示範「適用於 IoT 中樞的裝置更新」,請使用下列教學課程: