教學課程:使用 Azure IoT 中樞的裝置更新來完成 Proxy 更新
如果您尚未這麼做,請參閱使用 Proxy 更新搭配 Azure IoT 中樞的裝置更新。
設定測試裝置或虛擬機器
本教學課程使用 Ubuntu Server 18.04 LTS 虛擬機器 (VM) 為例。
安裝裝置更新代理程式和相依性
在 APT 套件存放庫中註冊 packages.microsoft.com:
sudo apt-get update sudo apt install curl curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ~/microsoft-prod.list sudo cp ~/microsoft-prod.list /etc/apt/sources.list.d/ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > ~/microsoft.gpg sudo cp ~/microsoft.gpg /etc/apt/trusted.gpg.d/ sudo apt-get update
在 IoT 裝置上安裝 deviceupdate-agent。 從 packages.microsoft.com 下載最新的裝置更新 Debian 檔案:
sudo apt-get install deviceupdate-agent
或者,將下載的 Debian 檔案複製到測試 VM。 如果您的電腦使用 PowerShell,請執行下列殼層命令:
scp <path to the .deb file> tester@<your vm's ip address>:~
然後從遠端連線到您的 VM,在 home 資料夾中執行下列殼層命令:
#go to home folder cd ~ #install latest Device Update agent sudo apt-get install ./<debian file name from the previous step>
移至 Azure IoT 中樞,並複製 IoT 裝置之裝置更新模組的主要連接字串。 將 [
connectionData
] 欄位中的任何預設值更換為 du-config.json 檔案中的主要連接字串:sudo nano /etc/adu/du-config.json
注意
您可以改為複製裝置的主要連接字串,但建議使用裝置更新模組的字串。 如需設定模組的相關資訊,請參閱裝置更新代理程式佈建。
確定 /etc/adu/du-diagnostics-config.json 包含記錄集合的正確設定。 例如:
{ "logComponents":[ { "componentName":"adu", "logPath":"/var/log/adu/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
重新啟動裝置更新代理程式:
sudo systemctl restart deviceupdate-agent
設定模擬元件
為進行測試和示範,我們將在裝置上建立下列模擬元件:
- 三臺馬達
- 兩臺相機
- "hostfs"
- "rootfs"
重要
上述元件設定是以稱為 libcontoso-component-enumerator.so 之範例元件列舉值延伸模組的實作為基礎。 也需要此模擬元件清查資料檔案:/usr/local/contoso-devices/components-inventory.json。
將 demo 資料夾複製到測試 VM 的主目錄。 然後執行下列命令,將必要的檔案複製到正確的位置:
`~/demo/tools/reset-demo-components.sh`
reset-demo-components.sh
命令會代您採取下列步驟:複製 components-inventory.json,並將其新增至 /usr/local/contoso-devices 資料夾。
從 Assets 資料夾複製 Contoso 元件列舉值延伸模組 (libcontoso-component-enumerator.so),並將其新增至 /var/lib/adu/extensions/sources 資料夾。
註冊延伸模組:
sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
匯入範例更新
如果您尚未這麼做,請建立裝置更新帳戶和執行個體,包括設定 IoT 中樞。 然後啟動下列程序。
從最新的裝置更新版本中,下載 [資產] 下之 Proxy 更新的匯入資訊清單和映像。
登入 Azure 入口網站,並使用裝置更新移至 IoT 中樞。 在左窗格中,選取 [裝置管理] > [更新]。
選取 [更新] 索引標籤。
選取 [+ 匯入新的更新]。
選取 [+ 從儲存體容器選取],然後選擇您的儲存體帳戶和容器。
選取 [上傳] 以新增步驟 1 下載的檔案。
將父匯入資訊清單、子匯入資訊清單和承載檔案上傳至您的容器。
以下範例會顯示上傳以更新連線到掃地機器人裝置相機的範例檔案。 其也包括預先安裝指令碼,可在無線更新之前關閉相機。
在此範例中,父匯入資訊清單為 contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json。 而包含更新相機詳細資料的子匯入資訊清單則是 Contoso.Virtual-Vacuum.3.3.importmanifest.json。 這兩個資訊清單檔名稱都遵循必要的格式,且以 .importmanifest.json 作為結尾。
選擇選取。
UI 現在會顯示將匯入裝置更新的檔案清單。 選取 [匯入更新]。
匯入程序隨即開始,畫面會變更成 [匯入歷程記錄] 區段。 選取 [重新整理] 以檢視進度,直到匯入程序完成為止。 視更新的大小而定,匯入可能會在幾分鐘內完成,或需要更長的時間。
當 [狀態] 資料行指出匯入成功時,請選取 [可用更新] 索引標籤。您現在應該會在清單中看到您匯入的更新。
如需匯入程式的詳細資訊,請參閱將更新匯入至裝置更新。
檢視裝置群組
裝置更新」會利用群組來組織裝置。 裝置更新會根據裝置指派的標籤和相容性內容,自動將裝置分類為群組。 個別裝置僅屬於群組,但群組可有多個子群組來排序不同的裝置類型。
移至頁面頂端的 [群組和部署] 索引標籤。
檢視群組清單和更新符合性圖表。 更新合規性圖表顯示各種合規性狀態的裝置計數:最新的更新、有新的更新可用和更新進行中。 了解更新合規性。
您應該會看到裝置群組,其包含您在本教學課程設定的模擬裝置,以及新群組裝置的任何可用更新。 如果有不符合群組裝置類別需求的裝置,會顯示在對應的無效群組中。 若要從此檢視將最佳的可用更新部署到新的使用者定義群組,請選取群組旁的 [部署]。
如需標籤和群組的詳細資訊,請參閱管理裝置群組。
部署更新
建立群組之後,您應該會看到裝置群組可用的新更新,包含 [最佳更新] 底下的更新連結 (您可能必須 [重新整理] 一次)。
如需符合性的詳細資訊,請參閱裝置更新符合性。
按一下群組名稱以選取目標群組。 系統即會將您導向 [群組基本資料] 下的群組詳細資料。
若要起始部署,請移至 [目前部署] 索引標籤。從 [可用更新] 區段選取所需更新旁的部署連結。 所指定群組的最佳可用更新會以「最佳」醒目提示表示。
排程您的部署,以立即或在未來啟動,然後選取 [建立]。
[部署詳細資料] 下的 [狀態] 應該會變成作用中,而已部署的更新應標示為「(正在部署)」。
檢視合規性圖表。 您應該會看到更新目前正在進行中。
成功更新裝置之後,您應該會看到合規性圖表和部署詳細資料已更新,反映相同的狀態。
監視更新部署
您現在已使用 IoT 中樞裝置更新,完成成功的端對端 Proxy 更新。
清除資源
當您不再需要這些資源後,請清除您的裝置更新帳戶、執行個體、IoT 中樞和 IoT 裝置。