教學課程:使用Ubuntu 22.04套件代理程式的 azure 裝置更新 IoT 中樞
Azure IoT 中樞裝置更新支援映像型、套件型和指令碼型更新。 本教學課程示範使用裝置更新Ubuntu Server 22.04 x64套件代理程式來更新 Azure IoT Edge 的端對端套件更新。
套件型更新的目標是只改變特定的裝置元件或應用程式。 這些更新的頻寬耗用量較低,下載和安裝時間比映像型更新短,導致裝置停機時間減少,並避免建立映像的額外負荷。 在套件型更新中, APT 指令清單 會提供裝置更新代理程式從指定存放庫下載並安裝指定套件及其相依性所需的資訊。
本教學課程會逐步引導您安裝適用於IoT的Defender Microsoft,但您可以使用類似的步驟來更新其他套件,例如IoT Edge本身或其使用的容器引擎。 即使您使用不同的OS平台設定,本教學課程中的工具和概念仍適用。
在本教學課程中,您已:
- 下載並安裝裝置更新代理程式及其相依項目。
- 將群組標籤新增至您的裝置。
- 匯入套件更新。
- 部署套件更新。
- 檢視更新部署歷程記錄。
必要條件
- 使用IoT中樞設定的裝置更新帳戶和實例。
- 已在IoT中樞註冊且已複製 連接字串的 Azure IoT Edge 裝置。
準備裝置
為了方便起見,本教學課程會使用雲端式 Azure Resource Manager (ARM) 範本來快速設定 Ubuntu 22.04 LTS 虛擬機(VM)。 此範本會同時安裝IoT Edge執行時間和裝置更新套件代理程式,並使用您提供的IoT Edge裝置 連接字串 自動設定布建資訊。 使用 ARM 範本也不需要啟動安全殼層 (SSH) 工作階段來完成設定。
若要執行範本,請選取下列 [部署至 Azure ] 按鈕:
完成下列資訊:
- 訂用帳戶:要在其中部署 VM 的作用中 Azure 訂用帳戶。
- 資源群組:包含 VM 及其資源的現有或新資源群組。
- 區域:要 部署 VM 的地理區域 ,預設為資源群組的位置。
- Dns 標籤前置詞:要為 VM 主機名加上前置詞的值。
- 系統管理員使用者名稱:用來在部署時提供根許可權的用戶名稱。
- 驗證類型:選擇 sshPublicKey 或 密碼。
- 管理員密碼 或 SSH 公鑰來源、 SSH 金鑰類型、 金鑰組名稱:根據驗證類型選擇的密碼或 SSH 公鑰資訊。
- VM 大小: 要部署的 VM 大小 。
- Ubuntu OS 版本:保留為 22_04-lts。
- 裝置連接字串:您先前複製的IoT Edge 連接字串。
選取頁面底部的 [檢閱 + 建立] 。 驗證成功時,選取 [ 建立] 以開始範本部署。
確認部署順利完成,並在部署完成幾分鐘后,讓安裝後和組態完成安裝IoT Edge和裝置套件更新代理程式。
您應該會在選取的資源群組中看到 VM 資源。 請記下電腦名稱,其格式為
vm-0000000000000
。 選取 VM 名稱,然後在 [VM 概觀 ] 頁面上記下 DNS 名稱,其格式<dnsLabelPrefix>
為 .<location>.cloudapp.azure.com
。
提示
若要在安裝之後透過 SSH 連線到此 VM,請使用相關聯的 DNS 名稱 搭配 命令 ssh <admin username>@<DNS name>
。
在 VM 上安裝裝置更新代理程式
重要
適用於 IoT 中樞 軟體的 Azure 裝置更新受限於下列授權條款:
使用代理程式之前,請先閱讀授權條款。 代理程式安裝和使用構成接受這些條款。 如果您不同意授權條款,請勿使用裝置更新代理程式。
若要在 VM 上安裝裝置更新代理程式,請執行下列命令。
sudo apt-get install deviceupdate-agent
使用下列命令開啟du-config.json組態詳細數據檔案。
sudo nano /etc/adu/du-config.json
在檔案中,將所有
<placeholder>
值取代為您自己的組態。connectionType
將您的 設定為"AIS"
和connectionData
做為空字串。 如需範例檔案,請參閱 範例du-config.json檔案內容。執行下列命令來重新啟動裝置更新代理程式。
sudo systemctl restart deviceupdate-agent
注意
如果您先前在此裝置上使用模擬 器代理程式 ,請執行下列命令來叫用APT處理程式,並部署本教學課程的無線套件更新。
sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/apt:1'
將群組標籤新增至您的裝置
裝置更新會根據其指派的標籤和相容性屬性,自動將裝置組織成群組。 每個裝置只能屬於一個群組,但群組可以有多個子群組來排序不同的裝置類別。 如需標籤和群組的詳細資訊,請參閱管理裝置群組。
在裝置更新實例的 [Azure 入口網站 IoT 中樞] 頁面上,從左側導覽中選取 [裝置管理>裝置]。
移至裝置的裝置對應項或模組身分識別對應項。
在裝置對應項或裝置更新代理程式 模組識別對應項 檔案中,將現有裝置更新標籤值設定為
null
來刪除任何現有的裝置更新標籤,然後新增下列新的裝置更新群組標籤。如果您使用裝置身分識別搭配裝置更新代理程式,請在裝置對應項上進行這些變更。 如果您使用模組身分識別搭配裝置更新代理程式模組,請在模組身分識別對應項中新增標記。
"tags": { "ADUGroup": "<GroupTagValue>" },
下列螢幕快照顯示檔案中要新增標記的位置。
選取儲存。
匯入更新
Tutorial_IoTEdge_PackageUpdate.zip檔案具有教學課程的必要檔案。
從 GitHub 裝置更新發行頁面上最新版本的 [資產] 區段下載Tutorial_IoTEdge_PackageUpdate.zip檔案。
將 檔案解壓縮。 擷取 Tutorial_IoTEdge_PackageUpdate 資料夾包含 sample-defender-iot-apt-manifest.json 範例 APT 指令清單及其對應的 sample-defender-iot--importManifest.json 匯入指令清單。
在裝置更新實例的 [Azure 入口網站 IoT 中樞] 頁面上,從左側導覽中選取 [裝置管理> 更新]。
在 [ 更新] 頁面上,選取 [ 匯入新的更新]。
在 [匯入更新] 頁面上,選取 [從記憶體容器選取]。
在 [ 記憶體帳戶 ] 頁面上,選取現有的記憶體帳戶,或選取 [儲存體帳戶] 來建立新的帳戶。
在 [ 容器] 頁面上,選取現有的容器,或選取 [容器] 來建立新的容器。 您可以使用容器來暫存更新檔案以進行匯入。
提示
若要避免不小心從先前的更新匯入檔案,請在每次匯入更新時使用新的容器。 如果您未使用新的容器,請務必從現有的容器中刪除任何檔案。
在容器頁面上,選取 [上傳]、拖放或流覽至 ,然後選取您下載的更新檔案,然後選取 [ 上傳]。 上傳之後,檔案會出現在容器頁面上。
檢閱並選取要匯入的檔案,然後選取 [ 選取]。
在 [ 匯入更新] 畫面上,選取 [ 匯入更新]。
匯入程式隨即開始,畫面會切換至 [ 更新] 畫面。 匯入成功之後,它會出現在 [ 更新] 索引標籤上。如需匯入程式的詳細資訊,請參閱 將更新匯入至裝置更新。
選取裝置群組
您可以使用套用至裝置的群組標籤,將更新部署至裝置群組。 選取 [更新] 頁面頂端的 [群組和部署] 索引卷標,以檢視群組和部署清單以及更新合規性圖表。
更新合規性圖表顯示各種合規性狀態的裝置計數:最新的更新、有新的更新可用和更新進行中。 如需詳細資訊,請參閱裝置更新合規性。
在 [組名] 底下,您會看到連線至此 IoT 中樞的裝置及其可用更新的所有裝置群組清單,以及 [狀態] 底下部署更新的連結。 不符合群組裝置類別需求的任何裝置都會出現在對應的無效群組中。 如需標籤和群組的詳細資訊,請參閱管理裝置群組。
您應該會看到包含您在本教學課程中設定之裝置的裝置群組,以及群組中裝置的可用更新。 您可能需要重新整理網頁。 若要從此檢視將最佳的可用更新部署至群組,請選取 群組旁的 [部署 ]。
部署更新
在 [群組詳細數據] 頁面上,選取 [目前部署] 索引卷標,然後在 [可用更新] 區段中選取 [所需更新] 旁的 [部署]。 群組的最佳可用更新會以最佳醒目提示表示。
在 [ 建立部署] 頁面上,排程您的部署立即或未來啟動,然後選取 [ 建立]。
提示
根據預設,開始日期和時間是目前時間起算 24 小時。 如果您想要更快開始部署,請務必選取不同的日期和時間。
在 [部署詳細數據] 下的 [群組詳細數據] 頁面上,[狀態] 會變成 [作用中]。 在 [可用的更新] 下,選取的更新會標示為 [部署]。
在 [更新] 頁面的 [群組和部署] 索引標籤上,檢視合規性圖表,以查看更新目前正在進行中。 裝置成功更新之後,合規性圖表和部署詳細數據會更新以反映該狀態。
檢視更新部署歷程記錄
清除資源
當您不再需要為本教學課程建立的資源時,您可以將其刪除。
- 在 Azure 入口網站 中,流覽至包含資源的資源群組。
- 若要刪除群組中的所有資源,您可以選取 [刪除資源群組]。
- 如果您只想要刪除部分資源,請使用複選框來選取資源,然後選取 [ 刪除]。