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 會話即可完成設定。
若要開始,請選取按鈕:
填寫可用的文字方塊:
- 訂閱:用於部署虛擬機的有效 Azure 訂閱。
- 資源群組:現有或新建立的資源群組,以包含虛擬機及其相關聯的資源。
- 區域:要部署虛擬機的 地理區域 。 這個值預設為所選取資源群組的位置。
- DNS 標籤前置詞:您選擇的必要值,用來為虛擬機的主機名加上前置詞。
- 管理員使用者名稱:提供部署根許可權的用戶名稱。
- 裝置連接字串:在您目標的物聯網中樞內建立的裝置連接字串。
- VM 大小:要部署的虛擬機 大小 。
- Ubuntu OS 版本:要安裝在基底虛擬機上的UbuntuOS版本。 將預設值維持不變,因為它已經設定為Ubuntu18.04-LTS。
- 驗證類型:根據您的喜好設定選擇 sshPublicKey 或 密碼 。
- 管理員密碼或金鑰:SSH 公鑰的值,或根據驗證類型選擇的密碼值。
填入所有方塊之後,請選取頁面底部的核取方塊以接受條款。 選取 [購買] 以開始部署。
確認部署已順利完成。 在部署完成之後,允許幾分鐘的時間完成安裝後和設定,以完成安裝 IoT Edge 和裝置套件更新代理程式。
虛擬機資源應該已部署到選取的資源群組中。 請記下電腦名稱,其格式為
vm-0000000000000。 另請注意相關聯的 DNS 名稱,格式<dnsLabelPrefix>為 .<location>。cloudapp.azure.com。您可以在 Azure 入口網站中新部署虛擬機器的 [概觀] 區段取得 [DNS 名稱]。
小提示
若要在安裝之後透過 SSH 連線到此 VM,請使用相關聯的 DNS 名稱 搭配下列命令:
ssh <adminUsername>@<DNS_Name>。開啟組態詳細資料 (請參閱如何使用下列命令 在這裡設定組態檔 。 將您的 connectionType 設定為 'AIS' 並將 connectionData 設定為空字串。
/etc/adu/du-config.json
- 執行下列命令重新啟動裝置更新代理程式:
sudo systemctl restart adu-agent
Azure IoT 中樞軟體套件的裝置更新受限於下列授權條款:
使用套件之前,請先閱讀授權條款。 安裝及使用套件即表示接受這些授權條款。 如果您不同意授權條款,請勿使用該套件。
手動準備裝置
與 cloud-init 腳本自動化的步驟類似,下列手動步驟可用來安裝和設定裝置。 使用這些步驟來準備實體裝置。
請遵循指示來 安裝 Azure IoT Edge 執行環境。
備註
裝置更新代理程式不相依於IoT Edge。 但它確實依賴隨IoT Edge (1.2.0和更新版本) 一起安裝的IoT身分識別服務精靈來取得身分識別並連線到IoT中樞。
雖然本教學課程未涵蓋,但 IoT 身分識別服務精靈可以在 Linux 型 IoT 裝置上獨立安裝。 安裝順序很重要。 裝置更新套件代理程式必須在IoT身分識別服務 之後 安裝。 否則,套件代理程式將不會註冊為已授權的元件,以建立與IoT中樞的連線。
安裝裝置更新代理程式.deb套件:
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt執行下列命令,在組態檔中輸入IoT裝置模組(或裝置,視您使用 裝置更新布建裝置的方式而定) 主要連接字串:
/etc/adu/du-config.json執行下列命令重新啟動裝置更新代理程式:
sudo systemctl restart adu-agent
Azure IoT 中樞軟體套件的裝置更新受限於下列授權條款:
使用套件之前,請先閱讀授權條款。 安裝及使用套件即表示接受這些授權條款。 如果您不同意授權條款,請勿使用該套件。
將標記新增至您的裝置
登入 Azure 入口網站 並移至 IoT 中樞。
在左窗格的 [ 裝置] 底下,尋找您的 IoT Edge 裝置,然後移至裝置對應項或模組對應項。
在裝置更新代理程式模組的模組對應項中,將其設定為 Null,以刪除任何現有的裝置更新標記值。 如果您使用裝置身分識別搭配裝置更新代理程式,請在裝置雙胞體上進行這些變更。
新增裝置更新標記值,如下所示:
"tags": { "ADUGroup": "<CustomTagValue>" },
匯入更新
移至 GitHub 中的 裝置更新版本 ,然後選取 [ 資產 ] 下拉式清單。 選取即可下載
Tutorial_IoTEdge_PackageUpdate.zip。 擷取資料夾的內容,以探索範例 APT 指令清單(sample-1.0.2-aziot-edge-apt-manifest.json)及其對應的匯入指令清單(sample-1.0.2-aziot-edge-importManifest.json)。登入 Azure 入口網站 ,並使用裝置更新移至 IoT 中樞。 在左窗格中,選取 [自動裝置管理] 下的 [更新]。
選取 [ 更新] 索引標籤。
選取 + 匯入新更新。
選取 [+ 從儲存體容器選取]。 選取現有帳戶或使用 [+ 儲存體帳戶] 建立新帳戶。 然後選取現有的容器,或使用 [+ 容器] 建立新的容器。 此容器可用來暫存更新檔案以進行匯入。
備註
建議您在每次匯入更新時使用新的容器,以避免意外從先前的更新匯入檔案。 如果您沒有使用新的容器,請務必先刪除現有容器中的任何檔案,再完成此步驟。
在容器中,選取 [上傳],然後移至您在步驟 1 下載的檔案。 選取所有更新檔案之後,請選取 [上傳]。 然後選取 [選取] 按鈕,以返回 [匯入更新] 頁面。
此螢幕擷取畫面顯示匯入步驟。 檔案名稱可能不符合範例中使用的檔案名稱。
在 [匯入更新] 頁面上,檢閱要匯入的檔案。 然後選取 [匯入更新] 以啟動匯入程序。
匯入程序隨即開始,畫面會切換至 [匯入歷程記錄] 區段。 當 [狀態] 資料行指出匯入成功時,請選取 [可用的更新] 標頭。 您現在應該會在清單中看到您匯入的更新。
深入瞭解 如何匯入更新。
建立更新群組
移至頁面頂端的 [群組和部署] 索引標籤。
選取 [ 新增群組 ] 按鈕以建立新的群組。
從清單中選取 IoT中樞 標籤和 裝置類別 。 接著選取 [建立群組]。
建立群組之後,您會看到更新合規性圖表和群組清單已更新。 更新合規性圖表會顯示各種合規性狀態中的裝置計數: 最新更新、 可用的新更新,以及 進行中的更新。 瞭解更新合規性。
您應該會看到新建立的群組,以及新群組中裝置的任何可用更新。 如果有不符合群組裝置類別需求的裝置,它們會顯示在對應的無效群組中。 若要從此檢視將最佳的可用更新部署到新的使用者定義群組,請選取群組旁的 [部署]。
深入瞭解 如何新增標籤和建立更新群組。
部署更新
建立群組之後,您應該會看到裝置群組可用的新更新,包含 [最佳更新] 底下的更新連結。 您可能需要再次重新整理。 深入瞭解更新的遵循性。
透過選取群組名稱來選擇目標群組。 系統會將您導向至 [群組基本資料] 下方的群組詳細資料。
若要起始部署,請移至 [目前部署] 索引標籤。從 [可用更新] 區段選取所需更新旁的 [部署] 連結。 指定群組的最佳可用更新會以 最佳 醒目提示表示。
安排您的部署,以立即啟動或設定在未來的某一時間啟動。 然後選取 建立。
小提示
根據預設, [開始日期 ] 日期和時間距離您目前的時間是 24 小時。 如果您想要提早開始部署,請務必選取不同的日期和時間。
在 [部署詳細資料] 下方,[狀態] 會變成 [作用中]。 部署的更新會標示為 [(部署中)]。
檢視合規性圖表,以查看更新目前是否正在進行中。
成功更新裝置之後,您會看到合規性圖表和部署詳細資料已更新,以反映相同狀態。
監控更新部署
您現在已成功地在 Ubuntu Server 18.04 x64 裝置上使用 IoT 中樞的裝置更新進行了端到端的套件更新。
清理資源
不再需要時,請清除您的裝置更新帳戶、執行個體和 IoT 中樞。 如果您透過 [部署至 Azure] 按鈕建立 VM,也請清除 IoT Edge 裝置。 若要清除資源,請移至每個個別資源,然後選取 [刪除]。 清除裝置更新帳戶之前,請先清除裝置更新執行個體。
後續步驟
若要簡單示範「適用於 IoT 中樞的裝置更新」,請使用下列教學課程:
- 映像更新:從 Raspberry Pi 3 B+ 參考 Yocto 映像開始,可透過開放原始碼擴充,根據需要建置您自己的映像以適用於其他架構。
- 代理更新:開始使用設備更新二進位代理程式於下游設備。
- 開始使用Ubuntu (18.04 x64) 模擬器參考代理程式。
- Azure IoT 中樞的裝置更新教學課程適用於 Azure 即時作業系統。