分享方式:


在 Ubuntu 虛擬機器上執行 Azure IoT Edge

適用於: IoT Edge 1.5 核取記號 IoT Edge 1.5 IoT Edge 1.4 核取記號 IoT Edge 1.4

重要

IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 為支援的版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge

Azure IoT Edge 執行階段是將裝置轉換成 IoT Edge 裝置的功能。 可在小至 Raspberry Pi、大至工業伺服器的裝置上部署執行階段。 在裝置上設定 IoT Edge 執行階段後,就可以開始從雲端將商務邏輯部署到裝置上。

若要深入了解 IoT Edge 執行階段的運作方式,以及會包含哪些元件,請參閱了解 Azure IoT Edge 執行階段及其架構

本文列出在已安裝並設定 Azure IoT Edge 執行階段的情況下,使用預先提供的裝置連接字串部署 Ubuntu 虛擬機器的步驟。 部署是使用 cloud-initAzure Resource Manager 範本來完成,而此範本是在 iotedge-vm-deploy 專案存放庫中維護。

在第一次開機時,虛擬機器會透過 cloud-init 安裝最新版的 Azure IoT Edge 執行階段。 其也會在執行階段啟動之前設定提供的連接字串,讓您輕鬆設定和連線 IoT Edge 裝置,而不需要啟動 SSH 或遠端桌面工作階段。

使用部署至 Azure 按鈕進行部署

部署至 Azure 按鈕可讓您簡化部署 GitHub 上維護的 Azure Resource Manager 範本。 本節會示範如何使用 Iotedge-vm-deploy 專案存放庫中包含的 [部署至 Azure] 按鈕。

  1. 您將使用 iotedge-vm-deploy Azure Resource Manager 範本來部署已啟用 Azure IoT Edge 的 Linux VM。 若要開始,請選取下列按鈕:

    iotedge-vm-deploy 的 [部署至 Azure] 按鈕

  2. 在新啟動的視窗上,填入可用的表單欄位:

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

    欄位 描述
    訂用帳戶 要在其中部署虛擬機器的作用中 Azure 訂用帳戶。
    資源群組 現有或新建立的資源群組,其中包含虛擬機器及其相關聯的資源。
    區域 要在其中部署虛擬機器的地理區域,此值預設為所選資源群組的位置。
    DNS 標籤首碼 您選擇的必要值,用來為虛擬機器的主機名稱加上前置詞。
    系統管理員使用者名稱 獲得部署根權限的使用者名稱。
    裝置連接字串 在您預定 IoT 中樞內所建立裝置的裝置連接字串
    VM 大小 要部署的虛擬機器大小
    Ubuntu OS 版本 要安裝在基礎虛擬機器上的 Ubuntu 作業系統版本。
    驗證類型 選擇 [sshPublicKey] 或 [密碼],取決於您的喜好設定。
    系統管理員密碼或金鑰 SSH 公開金鑰的值或密碼的值,取決於選擇的驗證類型。

    選取 Next : Review + create 以檢閱條款,然後選取 [建立] 以開始部署。

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

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

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

  4. 如果您想要在設定之後使用 SSH 來連線到此 VM,請使用相關聯的 DNS 名稱並搭配下列命令:ssh <adminUsername>@<DNS_Name>

從 Azure CLI 進行部署

  1. 確定您使用下列項目安裝 Azure CLI iot 延伸模組:

    az extension add --name azure-iot
    
  2. 接下來,如果您在桌面上使用 Azure CLI,請從登入開始:

    az login
    
  3. 如果您有多個訂用帳戶,請選取想要使用的訂用帳戶:

    1. 列出您的訂用帳戶:

      az account list --output table
      
    2. 複製想要使用的訂用帳戶 SubscriptionID 欄位。

    3. 使用您所複製的識別碼來設定工作訂用帳戶:

      az account set -s <SubscriptionId>
      
  4. 建立新的資源群組 (或在下一個步驟中指定現有的資源群組):

    az group create --name IoTEdgeResources --location westus2
    
  5. 建立新的虛擬機器:

    若要使用 passwordauthenticationType,請參閱下列範例:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    若要使用 SSH 金鑰進行驗證,請指定 sshPublicKeyauthenticationType 來執行此動作,然後在 adminPasswordOrKey 參數中提供 SSH 金鑰的值。 請參閱下列範例:

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. 確認部署已成功完成。 虛擬機器資源應該部署到選取的資源群組中。 記下電腦名稱,其格式應為 vm-0000000000000。 此外,請記下相關聯的 DNS 名稱,其格式應該是 <dnsLabelPrefix>.<location>.cloudapp.azure.com。

    DNS 名稱可以從上一個步驟的 JSON 格式輸出中取得,其位於作為公用 SSH 項目一部分的 [輸出] 區段內。 此項目的值可以用來透過 SSH,連線到新部署的電腦。

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

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

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

  7. 如果您想要在設定之後使用 SSH 來連線到此 VM,請使用相關聯的 DNS 名稱並搭配下列命令:ssh <adminUsername>@<DNS_Name>

下一步

現在您已佈建 IoT Edge 裝置並安裝執行階段,接下來您可以部署 IoT Edge 模組

如果您不確定 IoT Edge 執行階段是否已正確安裝,請參閱疑難排解頁面。

若要將現有安裝更新為最新版的 IoT Edge,請參閱更新 IoT Edge 安全性精靈和執行階段

如果您想要開啟連接埠,以透過 SSH 或其他輸入連線來存取 VM,請參閱 Azure 虛擬機器文件中的開啟 Linux VM 的連接埠和端點