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

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

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

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

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

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

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

必要條件

準備裝置

自動或手動準備裝置。

使用自動部署至 Azure 按鈕

為了方便起見,本教學課程使用 cloud-initAzure Resource Manager 範本,協助您快速設定 Ubuntu 18.04 LTS 虛擬機器。 會同時安裝 Azure IoT Edge 執行階段和裝置更新套件代理程式。 然後,會針對您提供的 IoT Edge 裝置 (必要條件) 使用裝置連接字串,自動以佈建資訊設定裝置。 Resource Manager 範本也不需要啟動 SSH 工作階段就能完成設定。

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

    螢幕擷取畫面:顯示 iotedge-vm-deploy 的 [部署至 Azure] 按鈕

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

    顯示 iotedge-vm-deploy 範本的螢幕擷取畫面。

    • 訂用帳戶:要在其中部署虛擬機器的作用中 Azure 訂用帳戶。
    • 資源群組:現有或新建立的資源群組,可包含虛擬機器及其相關聯的資源。
    • 區域:要在其中部署虛擬機器的地理區域。 這個值預設為所選取資源群組的位置。
    • DNS 標籤前置詞:您選擇的必要值,用來為虛擬機器的主機名稱加上前置詞。
    • 管理員使用者名稱:獲得部署根權限的使用者名稱。
    • 裝置連接字串:在您的預定 IoT 中樞中建立的裝置裝置連接字串
    • VM 大小:要部署的虛擬機器大小
    • Ubuntu 作業系統版本:要安裝在基底虛擬機器上的 Ubuntu 作業系統版本。 保留預設值不變,因為已經設定為 Ubuntu 18.04-LTS。
    • 驗證類型:根據您的喜好設定選擇 sshPublicKey密碼
    • 管理員密碼或金鑰:根據驗證類型選項,這是 SSH 公開金鑰的值或密碼的值。

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

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

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

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

    顯示 iotedge vm DNS 名稱的螢幕擷取畫面。

    秘訣

    若要在設定之後使用 SSH 連線到這個 VM,請使用相關聯 DNS 名稱與下列命令:ssh <adminUsername>@<DNS_Name>

  4. 開啟組態詳細資料 (請參閱如何使用下列命令在此設定組態檔)。 將您的 connectionType 設定為 'AIS' 並將 connectionData 設定為空字串。 請注意,必須設定具有 [這裡位置值] 標籤的所有值。 請參閱 設定 DU 代理程式

    sudo nano /etc/adu/du-config.json
    
  5. 重新啟動裝置更新代理程式。

    sudo systemctl restart deviceupdate-agent
    

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

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

手動準備裝置

與使用 cloud-init 指令碼自動化的步驟類似,下列手動步驟是用來安裝和設定裝置。 使用下列步驟來準備實體裝置。

  1. 請遵循指示來安裝 Azure IoT Edge 執行階段

    注意

    裝置更新代理程式不相依於 IoT Edge。 但是確實依賴 IoT 識別服務精靈,該精靈會與 IoT Edge (1.2.0 和更高版本) 一併安裝,以取得身分識別並且連線至 IoT 中樞。

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

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

    sudo apt-get install deviceupdate-agent 
    
  3. 在設定檔輸入 IoT 裝置的模組 (或裝置,視您如何利用裝置更新來佈建裝置而定) 主要連接字串。 請注意,必須設定具有 [這裡位置值] 標籤的所有值。 請參閱 設定 DU 代理程式

    sudo /etc/adu/du-config.json
    
  4. 重新啟動裝置更新代理程式。

    sudo systemctl restart deviceupdate-agent
    

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

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

將標記新增至您的裝置

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

  2. 在左窗格的裝置,找到您的 IoT Edge 裝置,然後移至雙裝置或雙模組。

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

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

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

    顯示具有標記資訊的對應項螢幕擷取畫面。

    此螢幕擷取畫面顯示必須在對應項中新增標記的區段。

匯入更新

  1. 移至 GitHub 中的裝置更新版本,然後選取 [資產] 下拉式清單。 選取即可下載 Tutorial_IoTEdge_PackageUpdate.zip。 提取資料夾的內容以發現範例 APT 清單 (範例 1.0.2-氮氧化物邊緣-apt-manifest.json) 及其對應的匯入清單 (範例 1.0.2-氮氧化物邊緣匯入清單 JSON)。

  2. 登入 Azure 入口網站,並使用裝置更新移至 IoT 中樞。 在左窗格中,選取 [自動裝置管理] 下的 [更新]。

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

  4. 選取 [+ 匯入新的更新]。

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

    注意

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

    此螢幕擷取畫面顯示儲存體帳戶。

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

    此螢幕擷取畫面顯示選取已上傳的檔案。

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

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

    此螢幕擷取畫面顯示正在啟動匯入程序。

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

    顯示作業狀態的螢幕擷取畫面。

如需匯入程式的詳細資訊,請參閱將更新匯入至裝置更新

檢視裝置群組

裝置更新」會利用群組來組織裝置。 裝置更新會根據裝置指派的標籤和相容性內容,自動將裝置分類為群組。 個別裝置僅屬於群組,但群組可有多個子群組來排序不同的裝置類型。

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

    此螢幕擷取畫面顯示已取消群組的裝置。

  2. 檢視群組清單和更新符合性圖表。 更新合規性圖表顯示各種合規性狀態的裝置計數:最新的更新有新的更新可用更新進行中了解更新合規性

    此螢幕擷取畫面顯示更新合規性檢視。

  3. 您應該會看到裝置群組,其包含您在本教學課程設定的模擬裝置,以及新群組裝置的任何可用更新。 如果有不符合群組裝置類別需求的裝置,會顯示在對應的無效群組中。 若要從此檢視將最佳的可用更新部署到新的使用者定義群組,請選取群組旁的 [部署]。

如需標籤和群組的詳細資訊,請參閱管理裝置群組

部署更新

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

    如需符合性的詳細資訊,請參閱裝置更新符合性

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

    此螢幕擷取畫面顯示群組詳細資料。

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

    此螢幕擷取畫面顯示選取更新。

  4. 排程您的部署,以立即或在未來啟動。 然後選取 [建立]。

    提示

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

    此螢幕擷取畫面顯示正在建立部署。

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

    顯示部署狀態為 [作用中] 的螢幕擷取畫面。

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

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

    顯示更新已成功的螢幕擷取畫面。

監視更新部署

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

    此螢幕擷取畫面顯示 [部署歷程記錄]。

  2. 選取您所建立部署旁的詳細資料連結。

    此螢幕擷取畫面顯示 [部署詳細資料]。

  3. 選取 [重新整理] 以檢視最新狀態詳細資料。

您現在已在 Ubuntu Server 18.04 x64 裝置上使用 IoT 中樞裝置更新,成功完成端對端套件更新。

清除資源

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

下一步