教學課程:使用 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 按鈕
為了方便起見,本教學課程使用 cloud-init 型 Azure Resource Manager 範本,協助您快速設定 Ubuntu 18.04 LTS 虛擬機器。 會同時安裝 Azure IoT Edge 執行階段和裝置更新套件代理程式。 然後,會針對您提供的 IoT Edge 裝置 (必要條件) 使用裝置連接字串,自動以佈建資訊設定裝置。 Resource Manager 範本也不需要啟動 SSH 工作階段就能完成設定。
若要開始,請選取按鈕:
填寫可用的文字方塊:
- 訂用帳戶:要在其中部署虛擬機器的作用中 Azure 訂用帳戶。
- 資源群組:現有或新建立的資源群組,可包含虛擬機器及其相關聯的資源。
- 區域:要在其中部署虛擬機器的地理區域。 這個值預設為所選取資源群組的位置。
- DNS 標籤前置詞:您選擇的必要值,用來為虛擬機器的主機名稱加上前置詞。
- 管理員使用者名稱:獲得部署根權限的使用者名稱。
- 裝置連接字串:在您的預定 IoT 中樞中建立的裝置裝置連接字串。
- VM 大小:要部署的虛擬機器大小。
- Ubuntu 作業系統版本:要安裝在基底虛擬機器上的 Ubuntu 作業系統版本。 保留預設值不變,因為已經設定為 Ubuntu 18.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 識別服務精靈,該精靈會與 IoT Edge (1.2.0 和更高版本) 一併安裝,以取得身分識別並且連線至 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 映像,可透過開放原始碼擴充以建置您自己的映像,視需要用於其他架構。
- Proxy 更新:針對下游裝置開始使用裝置更新二進位代理程式。
- 開始使用 Ubuntu (18.04 x64) 模擬器參考代理程式。
- 適用於 Azure 即時作業系統的 Azure IoT 中樞裝置更新教學課程。