You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-edge/tutorial-nested-iot-edge-for-linux-on-windows.md
+52-44Lines changed: 52 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,9 @@ To create a hierarchy of IoT Edge devices, you'll need:
54
54
* Two Windows devices running Azure IoT Edge for Linux on Windows. Both devices should be deployed using an **external virtual switch**.
55
55
56
56
> [!TIP]
57
-
> It is possible to use **internal** or **default** virtual switch if a port forwarding is configured on the Windows host OS. However, for the simplicity of this tutorial, both devices should use an **external** virtual switch and be connected to the same external network. For more information about netowrking, see [Azure IoT Edge for Linux on Windows networking](./iot-edge-for-linux-on-windows-networking.md) and [Networking configuration for Azure IoT Edge for Linux on Windows](./how-to-configure-iot-edge-for-linux-on-windows-networking.md).
57
+
> It is possible to use **internal** or **default** virtual switch if a port forwarding is configured on the Windows host OS. However, for the simplicity of this tutorial, both devices should use an **external** virtual switch and be connected to the same external network.
58
+
>
59
+
> For more information about netowrking, see [Azure IoT Edge for Linux on Windows networking](./iot-edge-for-linux-on-windows-networking.md) and [Networking configuration for Azure IoT Edge for Linux on Windows](./how-to-configure-iot-edge-for-linux-on-windows-networking.md).
58
60
>
59
61
> If you need to set up the EFLOW devices on a DMZ, see [How to configure Azure IoT Edge for Linux on Windows Industrial IoT & DMZ configuration](how-to-configure-iot-edge-for-linux-on-windows-iiot-dmz.md).
60
62
@@ -64,7 +66,8 @@ To create a hierarchy of IoT Edge devices, you'll need:
64
66
* 443: Used between parent and child edge hubs for REST API calls and to pull docker container images.
65
67
* 5671, 8883: Used for AMQP and MQTT.
66
68
67
-
For more information on EFLOW virtual machine firewall, see [IoT Edge for Linux on Windows security](iot-edge-for-linux-on-windows-security.md).
69
+
> [!TIP]
70
+
> For more information on EFLOW virtual machine firewall, see [IoT Edge for Linux on Windows security](iot-edge-for-linux-on-windows-security.md).
68
71
69
72
## Configure your IoT Edge device hierarchy
70
73
@@ -170,9 +173,8 @@ To configure the IoT Edge runtime, you need to apply the configuration bundles c
170
173
171
174
Each device needs its corresponding configuration bundle. You can use a USB drive or [secure file copy](https://www.ssh.com/ssh/scp/) to move the configuration bundles to each device. You'll first need to copy the configuration bundle to the Windows host OS of each EFLOW device and then copy it to the EFLOW VM.
172
175
173
-
>[!EARNING]
174
-
> Be sure to send the correct configuration bundle to each device.
175
-
176
+
> [!WARNING]
177
+
> Be sure to send the correct configuration bundle to each device.
176
178
177
179
##### Top-layer device configuration
178
180
@@ -195,11 +197,13 @@ Each device needs its corresponding configuration bundle. You can use a USB driv
195
197
```
196
198
197
199
1. Get the EFLOW virtual machine IP address - Check for the _inet addr_ field.
198
-
```bash
199
-
ifconfig eth0
200
-
```
201
-
>[!NOTE]
202
-
> On the **top layer device**, you will receive a prompt to enter the hostname. Supply the appropriate IP or FQDN. You can use either, but be consistent in your choice across devices.
200
+
201
+
```bash
202
+
ifconfig eth0
203
+
```
204
+
205
+
> [!NOTE]
206
+
> On the **top layer device**, you will receive a prompt to enter the hostname. Supply the appropriate IP or FQDN. You can use either, but be consistent in your choice across devices.
203
207
204
208
1. Run the _install.sh_ script - When asked the _hostname_ use the IP address obtained in the previous step.
205
209
```bash
@@ -210,32 +214,35 @@ Each device needs its corresponding configuration bundle. You can use a USB driv
210
214

211
215
212
216
1. Apply the correct certificate permissions and restart the IoT Edge runtime.
217
+
213
218
```bash
214
219
sudo chmod -R 755 /etc/aziot/certificates/
215
220
sudo iotedge system restart
216
221
```
217
222
218
223
1. Check that all IoT Edge services are running correctly.
219
-
```bash
220
-
sudo iotedge system status
221
-
```
224
+
225
+
```bash
226
+
sudo iotedge system status
227
+
```
222
228
223
229
1. Finally, add the appropriate firewall rules to enable connectivity between the lower-layer device and top-layer device.
224
-
```bash
225
-
sudo iptables -A INPUT -p tcp --dport 5671 -j ACCEPT
226
-
sudo iptables -A INPUT -p tcp --dport 8883 -j ACCEPT
227
-
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
228
-
sudo iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
229
-
sudo iptables-save | sudo tee /etc/systemd/scripts/ip4save
230
-
```
231
230
232
-
If you want a closer look at what modifications are being made to your device's configuration file, see [the configure IoT Edge on devices section of the how-to guide](how-to-connect-downstream-iot-edge-device.md#configure-parent-device).
231
+
```bash
232
+
sudo iptables -A INPUT -p tcp --dport 5671 -j ACCEPT
233
+
sudo iptables -A INPUT -p tcp --dport 8883 -j ACCEPT
234
+
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
235
+
sudo iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
236
+
sudo iptables-save | sudo tee /etc/systemd/scripts/ip4save
237
+
```
233
238
234
239
1. Run the configuration and connectivity checks on your devices.
235
240
236
-
```bash
237
-
sudo iotedge check
238
-
```
241
+
```bash
242
+
sudo iotedge check
243
+
```
244
+
245
+
If you want a closer look at what modifications are being made to your device's configuration file, see [the configure IoT Edge on devices section of the how-to guide](how-to-connect-downstream-iot-edge-device.md#configure-parent-device).
239
246
240
247
##### Lower-layer device configuration
241
248
@@ -265,36 +272,37 @@ If you want a closer look at what modifications are being made to your device's
265
272
If everything was correctly configured, you should be able to see the ping responses from the top-layer device.
266
273
267
274
1. Get the EFLOW virtual machine IP address - Check for the _inet addr_ field.
268
-
```bash
269
-
ifconfig eth0
270
-
```
271
-
>[!NOTE]
272
-
> On the **lower layer device**, you will receive a prompt to enter the hostname and the parent hostname. Supply the appropriate **top-layer device** IP or FQDN. You can use either, but be consistent in your choice across devices.sudo
275
+
276
+
```bash
277
+
ifconfig eth0
278
+
```
279
+
280
+
>[!NOTE]
281
+
> On the **lower layer device**, you will receive a prompt to enter the hostname and the parent hostname. Supply the appropriate **top-layer device** IP or FQDN. You can use either, but be consistent in your choice across devices.sudo
273
282
274
283
1. Run the _install.sh_ script - When asked the _hostname_ use the IP address obtained in the previous step.
275
-
```bash
276
-
sudo sh ./install.sh
284
+
```bash
285
+
sudo sh ./install.sh
286
+
```
277
287
278
288
1. Apply the correct certificate permissions and restart the IoT Edge runtime.
279
-
```bash
280
-
sudo chmod -R 755 /etc/aziot/certificates/
281
-
sudo iotedge system restart
282
-
```
289
+
```bash
290
+
sudo chmod -R 755 /etc/aziot/certificates/
291
+
sudo iotedge system restart
292
+
```
283
293
284
294
1. Check that all IoT Edge services are running correctly.
285
-
```bash
286
-
sudo iotedge system status
287
-
```
288
-
289
-
If you completed the above steps correctly, you can check your devices are configured correctly.
295
+
```bash
296
+
sudo iotedge system status
297
+
```
290
298
291
299
1. Run the configuration and connectivity checks on your devices. For the **lower layer device**, the diagnostics image needs to be manually passed in the command:
Once you're satisfied your configurations are correct on each device, you're ready to proceed.
305
+
If you completed the above steps correctly, you can check your devices are configured correctly. Once you're satisfied your configurations are correct on each device, you're ready to proceed.
0 commit comments