Skip to content

Commit aa01f3c

Browse files
authored
Merge pull request #301062 from PatAltimore/patricka-freshness
Freshness review
2 parents e268145 + 684ecff commit aa01f3c

File tree

1 file changed

+36
-39
lines changed

1 file changed

+36
-39
lines changed

articles/iot-edge/how-to-install-iot-edge-ubuntuvm.md

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,57 +6,55 @@ ms.service: azure-iot-edge
66
ms.custom: devx-track-azurecli
77
services: iot-edge
88
ms.topic: how-to
9-
ms.date: 06/03/2024
10-
ms.author: pdecarlo
9+
ms.date: 06/09/2025
10+
ms.author: patricka
1111
---
1212
# Run Azure IoT Edge on Ubuntu Virtual Machines
1313

1414
[!INCLUDE [iot-edge-version-all-supported](includes/iot-edge-version-all-supported.md)]
1515

16-
The Azure IoT Edge runtime is what turns a device into an IoT Edge device. The runtime can be deployed on devices as small as a Raspberry Pi or as large as an industrial server. Once a device is configured with the IoT Edge runtime, you can start deploying business logic to it from the cloud.
16+
The Azure IoT Edge runtime turns a device into an IoT Edge device. Deploy the runtime on devices as small as a Raspberry Pi or as large as an industrial server. After you set up the IoT Edge runtime, deploy business logic to the device from the cloud.
1717

18-
To learn more about how the IoT Edge runtime works and what components are included, see [Understand the Azure IoT Edge runtime and its architecture](iot-edge-runtime.md).
18+
To learn more about how the IoT Edge runtime works and its components, see [understand the Azure IoT Edge runtime and its architecture](iot-edge-runtime.md).
1919

20-
This article lists the steps to deploy an Ubuntu virtual machine with the Azure IoT Edge runtime installed and configured using a presupplied device connection string. The deployment is accomplished using a [cloud-init](/azure/virtual-machines/linux/using-cloud-init) based [Azure Resource Manager template](../azure-resource-manager/templates/overview.md) maintained in the [iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy) project repository.
20+
This article lists the steps to deploy an Ubuntu virtual machine with the Azure IoT Edge runtime installed and configured using a provided device connection string. The deployment uses a [cloud-init](/azure/virtual-machines/linux/using-cloud-init) based [Azure Resource Manager template](../azure-resource-manager/templates/overview.md) from the [iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy) project repository.
2121

22-
On first boot, the virtual machine [installs the latest version of the Azure IoT Edge runtime via cloud-init](https://github.com/Azure/iotedge-vm-deploy/blob/main/cloud-init.txt). It also sets a supplied connection string before the runtime starts, allowing you to easily configure and connect the IoT Edge device without the need to start an SSH or remote desktop session.
22+
On first boot, the virtual machine [installs the latest version of the Azure IoT Edge runtime using cloud-init](https://github.com/Azure/iotedge-vm-deploy/blob/main/cloud-init.txt). It also sets a provided connection string before the runtime starts, so you can quickly set up and connect the IoT Edge device without starting an SSH or remote desktop session.
2323

2424
## Deploy using Deploy to Azure Button
2525

26-
The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure-button.md) allows for streamlined deployment of [Azure Resource Manager templates](../azure-resource-manager/templates/overview.md) maintained on GitHub.
27-
This section demonstrates usage of the Deploy to Azure Button contained in the [iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy) project repository.
26+
The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure-button.md) lets you quickly deploy [Azure Resource Manager templates](../azure-resource-manager/templates/overview.md) from GitHub.
27+
This section shows how to use the **Deploy to Azure** button in the [iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy) project repository.
2828

29-
1. You will deploy an Azure IoT Edge enabled Linux VM using the iotedge-vm-deploy Azure Resource Manager template. To begin, select the following button:
29+
1. Deploy an Azure IoT Edge-enabled Linux VM by using the iotedge-vm-deploy Azure Resource Manager template. To start, select the following button:
3030

31-
[![Deploy to Azure Button for iotedge-vm-deploy](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure%2Fiotedge-vm-deploy%2Fmain%2FedgeDeploy.json)
31+
[![Deploy to Azure button for iotedge-vm-deploy](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure%2Fiotedge-vm-deploy%2Fmain%2FedgeDeploy.json)
3232

33-
1. On the newly launched window, fill in the available form fields:
33+
1. In the new window, enter values for the available form fields:
3434

35-
> [!div class="mx-imgBorder"]
35+
:::image type="content" source="./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-deploy-ubuntu2004.png" alt-text="Screenshot showing the iotedge-vm-deploy template." lightbox="./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-deploy-ubuntu2004.png":::
3636

37-
> [![Screenshot showing the iotedge-vm-deploy template](./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-deploy-ubuntu2004.png)](./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-deploy-ubuntu2004.png)
3837

3938
| Field | Description |
4039
| --------- | ----------- |
4140
| **Subscription** | The active Azure subscription to deploy the virtual machine into. |
42-
| **Resource group** | An existing or newly created Resource Group to contain the virtual machine and it's associated resources. |
43-
| **Region** | The [geographic region](https://azure.microsoft.com/global-infrastructure/locations/) to deploy the virtual machine into, this value defaults to the location of the selected Resource Group. |
44-
| **DNS Label Prefix** | A required value of your choosing that is used to prefix the hostname of the virtual machine. |
45-
| **Admin Username** | A username that is provided root privileges on deployment. |
46-
| **Device Connection String** | A [device connection string](./how-to-provision-single-device-linux-symmetric.md#view-registered-devices-and-retrieve-provisioning-information) for a device that was created within your intended [IoT Hub](../iot-hub/about-iot-hub.md). |
47-
| **VM Size** | The [size](../cloud-services/cloud-services-sizes-specs.md) of the virtual machine to be deployed. |
48-
| **Ubuntu OS Version** | The version of the Ubuntu OS to be installed on the base virtual machine. |
49-
| **Authentication Type** | Choose **sshPublicKey** or **password** depending on your preference. |
50-
| **Admin Password or Key** | The value of the SSH Public Key or the value of the password depending on the choice of Authentication Type. |
41+
| **Resource group** | An existing or new resource group to contain the virtual machine and its associated resources. |
42+
| **Region** | The [geographic region](https://azure.microsoft.com/global-infrastructure/locations/) where you deploy the virtual machine. This value defaults to the location of the selected resource group. |
43+
| **DNS Label Prefix** | A required value you choose to prefix the hostname of the virtual machine. |
44+
| **Admin Username** | A username with root privileges on deployment. |
45+
| **Device Connection String** | A [device connection string](./how-to-provision-single-device-linux-symmetric.md#view-registered-devices-and-retrieve-provisioning-information) for a device you created in your [IoT hub](../iot-hub/about-iot-hub.md). |
46+
| **VM Size** | The [size](../cloud-services/cloud-services-sizes-specs.md) of the virtual machine to deploy. |
47+
| **Ubuntu OS Version** | The version of Ubuntu OS to install on the base virtual machine. |
48+
| **Authentication Type** | Choose **sshPublicKey** or **password** based on your preference. |
49+
| **Admin Password or Key** | The SSH public key or password value, depending on the authentication type you choose. |
5150

52-
Select `Next : Review + create` to review the terms and select **Create** to begin the deployment.
51+
Select `Next : Review + create` to review the terms, and then select **Create** to start the deployment.
5352

54-
1. Verify that the deployment completed successfully. A virtual machine resource is deployed into the selected resource group. Take note of the machine name, this should be in the format `vm-0000000000000`. Also, take note of the associated **DNS Name**, which should be in the format `<dnsLabelPrefix>`.`<location>`.cloudapp.azure.com.
53+
1. Check that the deployment completes successfully. The virtual machine resource is deployed into the selected resource group. Note the machine name, which is in the format `vm-0000000000000`. Also, note the associated **DNS Name**, which is in the format `<dnsLabelPrefix>`.`<location>`.cloudapp.azure.com.
5554

56-
The **DNS Name** can be obtained from the **Overview** section of the newly deployed virtual machine within the Azure portal.
55+
You can find the **DNS Name** in the **Overview** section of the new virtual machine in the Azure portal.
5756

58-
> [!div class="mx-imgBorder"]
59-
> [![Screenshot showing the dns name of the iotedge vm](./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png)](./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png)
57+
:::image type="content" source="./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png" alt-text="Screenshot showing the dns name of the IoT Edge VM." lightbox="./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png":::
6058

6159
1. If you want to SSH into this VM after setup, use the associated **DNS Name** with the command:
6260
`ssh <adminUsername>@<DNS_Name>`
@@ -82,9 +80,9 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
8280
az account list --output table
8381
```
8482
85-
1. Copy the SubscriptionID field for the subscription you'd like to use.
83+
1. Copy the SubscriptionID field for the subscription you want to use.
8684
87-
1. Set your working subscription with the ID that you copied:
85+
1. Set your working subscription with the ID you copied:
8886
8987
```azurecli-interactive
9088
az account set -s <SubscriptionId>
@@ -98,7 +96,7 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
9896

9997
1. Create a new virtual machine:
10098

101-
To use an **authenticationType** of `password`, see the following example:
99+
To use an **authenticationType** of `password`, use the following example:
102100

103101
```azurecli-interactive
104102
az deployment group create \
@@ -128,9 +126,9 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
128126
--parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
129127
```
130128

131-
1. Verify that the deployment completed successfully. A virtual machine resource should be deployed into the selected resource group. Take note of the machine name, this should be in the format `vm-0000000000000`. Also, take note of the associated **DNS Name**, which should be in the format `<dnsLabelPrefix>`.`<location>`.cloudapp.azure.com.
129+
1. Verify that the deployment completed successfully. A virtual machine resource should be deployed into the selected resource group. Take note of the machine name, it's in the format `vm-0000000000000`. Also, take note of the associated **DNS Name**, which is in the format `<dnsLabelPrefix>`.`<location>`.cloudapp.azure.com.
132130

133-
The **DNS Name** can be obtained from the JSON-formatted output of the previous step, within the **outputs** section as part of the **public SSH** entry. The value of this entry can be used to SSH into to the newly deployed machine.
131+
You can get the **DNS Name** from the JSON-formatted output of the previous step, in the **outputs** section as part of the **public SSH** entry. Use this value to SSH into the newly deployed machine.
134132

135133
```bash
136134
"outputs": {
@@ -141,20 +139,19 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
141139
}
142140
```
143141

144-
The **DNS Name** can also be obtained from the **Overview** section of the newly deployed virtual machine within the Azure portal.
142+
You can also get the **DNS Name** from the **Overview** section of the newly deployed virtual machine in the Azure portal.
145143

146-
> [!div class="mx-imgBorder"]
147-
> [![Screenshot showing the dns name of the iotedge vm](./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png)](./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png)
144+
:::image type="content" source="./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png" alt-text="Screenshot showing the dns name of the IoT Edge VM." lightbox="./media/how-to-install-iot-edge-ubuntuvm/iotedge-vm-dns-name.png":::
148145

149146
1. If you want to SSH into this VM after setup, use the associated **DNS Name** with the command:
150147
`ssh <adminUsername>@<DNS_Name>`
151148

152149
## Next steps
153150

154-
Now that you have an IoT Edge device provisioned with the runtime installed, you can [deploy IoT Edge modules](how-to-deploy-modules-portal.md).
151+
Now that you provisioned an IoT Edge device with the runtime installed, deploy [IoT Edge modules](how-to-deploy-modules-portal.md).
155152

156-
If you are having problems with the IoT Edge runtime installing properly, check out the [troubleshooting](troubleshoot.md) page.
153+
If you have problems installing the IoT Edge runtime, see the [troubleshooting](troubleshoot.md) page.
157154

158-
To update an existing installation to the newest version of IoT Edge, see [Update the IoT Edge security daemon and runtime](how-to-update-iot-edge.md).
155+
To update an existing installation to the latest version of IoT Edge, see [Update the IoT Edge security daemon and runtime](how-to-update-iot-edge.md).
159156

160-
If you'd like to open up ports to access the VM through SSH or other inbound connections, refer to the Azure Virtual Machines documentation on [opening up ports and endpoints to a Linux VM](/azure/virtual-machines/linux/nsg-quickstart).
157+
If you want to open ports to access the VM through SSH or other inbound connections, see the Azure Virtual Machines documentation on [opening ports and endpoints to a Linux VM](/azure/virtual-machines/linux/nsg-quickstart).

0 commit comments

Comments
 (0)