How to deploy ogamma Visual Logger for OPC as Azure IoT Edge Module¶
If you have an Azure IoT Edge Device, you can install ogamma Visual Logger for OPC in it remotely via Microsoft Azure Portal, as an Azure IoT Edge Module. This section describes, how industrial PC box with Ubuntu 18.04 operating system can be turned into IoT Edge device, and steps on installing of the ogamma Visual Logger for OPC in it. Further below we will refer to this PC as a device
.
Install Azure IoT Edge runtime in the device.¶
Installation of the Azure IoT Edge runtime in the device is descibed in detail at Microsoft web site here: https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge?view=iotedge-2018-06
For convenience, they are descibed here too. Before proceeding, add an IoT Edge device in Microsoft Azure portal. It will represent like a twin
in the Azure Portal, mirroring real device. After creating it in the Azure Portal, find the option Primary Connection String
in device setting - you will need it to initialize the IoT Edge runtime in the device. You can follow tutorial from this page: https://docs.microsoft.com/en-us/azure/iot-edge/how-to-register-device?view=iotedge-2020-11&tabs=azure-portal (Option 1: Register with symmetric keys).
Next steps need to be performed in the device:
Install prerequisites.¶
Utility program curl
and moby
Docker engine should be installed in the device.
Open command line terminal and run the following commands:
sudo apt-get update
sudo apt-get 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
sudo apt-get install moby-engine
Install Azure IoT Edge runtime¶
Open command line terminal and run the following commands:
sudo apt-get update
sudo apt-get install iotedge
To install specific version of the IoT Edge runtime, for example, 1.1.1-1, run:
sudo apt-get install iotedge=1.1.1-1 libiothsm-std=1.1.1-1
Provision IoT Edge device with its cloud identity (using symmetric key).¶
This provisioning step maps, or binds this device to its twin
IoT Edge device added in Azure Portal.
Open IoT Edge configuration file for editing:
sudo nano /etc/iotedge/config.yaml
Find section Manual provisioning with an IoT Hub connection string
in the file and uncomment the provisioning
section.
provisioning:
source: “manual”
device_connection_string: “<ADD DEVICE CONNECTION STRING HERE>”
Update the value of the option device_connection_string
with the value of the Primary Connection String
option from your IoT Edge device at Azure Portal. Make sure that any other provisioning sections are commented out. Make sure the provisioning:
line has no preceding whitespace and that nested items are indented by two spaces.
Save and close the file: CTRL + X, Y, Enter
Restart IoT Edge runtime.¶
sudo systemctl restart iotedge
To check status of the IoT Edge daemon, use command:
sudo systemctl status iotedge
Verify in the Azure Portal page for the device, that IoT Edge system modules $edgeAgent
and $edgeHub
have runtime status running
. It might take some time to update the status.
Deploy ogamma Visual Logger for OPC¶
Once Azure IoT Edge runtime is installed in the device and provisioned, you can install ogamma Visual Logger for OPC in it remotely using Azure Portal.
In the device page, click on the Set Modules
tab page. In the IoT Edge Modules
section, click on the Add
button. In the dropdown list select IoT Edge Module
. As a result, Add IoT Edge Module
page should be opened.
Here, in the Module Settings
tab, enter the following fields:
IoT Edge Module Name
- arbitrary name of the module.
Image URI
- set to the full URL of the Docker container image:registry.hub.docker.com/ogamma/logger-dev
.
In the Container Create Options
tab, enter the following settings:
{
"Hostname": "ovl",
"Volumes": {
"/home/ogamma/logger/data": {}
},
"WorkingDir": "/home/ogamma/logger",
"NetworkDisabled": false,
"ExposedPorts": {
"4880/tcp": {}
},
"HostConfig": {
"PortBindings": {
"4880/tcp": [
{
"HostPort": "4880"
}
]
},
"Binds": [
"/var/ogamma-logger-data:/home/ogamma/logger/data"
]
}
}
Click on the Add
button. The new module entry should be added to the list of modules.
Click on the Review + create
button to complete the module deployment.