There is a new version of the Azure IoT Edge module: 1.1.0 (see references). So, I decided to upgrade my 2 test devices and maybe share some lessons learned in the process.
Upgrade on Ubuntu 18.04 on a Raspberry Pi 4
As usual I’ll start with a full update
# Update sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'
Similar to the Raspberry Pi OS upgrade process, I found a nice surprise on the update log.
Setting up iotedge (1.1.0-1) ... =============================================================================== Azure IoT Edge IMPORTANT: Please update the configuration file located at: /etc/iotedge/config.yaml with your device's provisioning information. You will need to restart the 'iotedge' service for these changes to take effect. To restart the 'iotedge' service, use: 'systemctl restart iotedge' - OR - /etc/init.d/iotedge restart These commands may need to be run with sudo depending on your environment. =============================================================================== Setting up friendly-recovery (0.2.38ubuntu1.2) ... Setting up moby-engine (20.10.3+azure-1) ... Processing triggers for systemd (237-3ubuntu10.44) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Processing triggers for ureadahead (0.100.0-21) ... ureadahead will be reprofiled on next reboot Processing triggers for libc-bin (2.27-3ubuntu1.4) ... Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: u-boot-tools 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 139 kB of archives. After this operation, 7168 B of additional disk space will be used. Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 u-boot-tools arm64 2020.10+dfsg-1ubuntu0~18.04.2 [139 kB]
So, the module is updated. However I need to setup the device provisioning information again and restart the service. In the references section I shared the officials docs for these steps.
Let’s edit the provisioning information
# Update provisioning information (if necessary) sudo nano /etc/iotedge/config.yaml
My file still have all the valid information (again, like the Raspberry Pi upgrade process)
No changes here, let’s restart IoT Edge
# restart iotedge service systemctl restart iotedge
Important, authentication is required in this step:
So, I may missed something here. I run the update command for the module, and it’s already on the 1.1 version. However the iotedge list of modules is still using the 1.0
Update runtime settings on Azure IoT Portal
I now I can fix this in the Azure IoT Portal. In the device definition, I need to update the Runtime settings to use the version 1.1. (image is just for reference)
A couple of seconds later, everything works as expected !
So, the steps to update were these commands
# Update sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y' # Update provisioning information (if necessary) sudo nano /etc/iotedge/config.yaml # restart iotedge service systemctl restart iotedge
Then update the Runtime Settings on the Azure IoT Portal.
And restart iotedge one more time !
- Azure IoT Edge 1.1.0 release is now generally available
- Update the IoT Edge security daemon and runtime
- Install or uninstall Azure IoT Edge for Linux
My posts on Raspberry Pi ⚡🐲⚡
Dev posts for Raspberry Pi
- How to grant permissions to a folder after git clone, to perform dotnet restore on a Raspberry Pi
- How to install .Net Core 3.1 in a Raspberry Pi 4
- Installing Visual Studio Code in a Raspberry Pi 4, run as root, fix black screen
- How to install .Net Core in a Raspberry Pi 4 and test with Hello World
- Build and Run C# NetCore projects in a Raspberry Pi 4 with Visual Studio Code
- Let’s do some Git dev in Raspberry Pi 4 (GitHub and Azure DevOps!)
- Install OpenCV
- Install Python 🐍 Virtual Environments in Raspberry Pi
- Setup SSH passwordless access to remote work with Docker 🐳
- Manage Docker 🐳 as a non-root user
- Build Docker 🐳 images from Visual Studio Code remotely using a Raspberry Pi
Tools and Apps for Raspberry Pi
- Where is my Task Manager in RaspberryPi? Let’s try htop
- Multi-monitor 📺 in Raspberry Pi 4 rocks !
- Double Commander on RaspberryPi4, because files are important
- How to install Docker 🐳 in a Raspberry Pi 4
- Installing Visual Studio Code in a Raspberry Pi
- Installing Visual Studio Code in a Raspberry Pi, run as root, fix black screen (Updated)
- 6 commands to install OpenCV for Python 🐍 in a Raspberry Pi 4
Setup the device
- 1st Setup without monitor 📺: auto connect to WiFi 📶, enable SSH, update and more
- Setup without monitor: enable VNC
- How to enable auto start with HDMI safe mode
- Running a Python 🐍 script in a Python Virtual Environment on reboot / startup
- Setup Wifi on Ubuntu
- Ice Tower, the best cooler 🧊 for your device! From 70C to <40C in a 60 minutes process running at 100% in all 4 cores
- Intel Neural Stick 2, Performance differences in Face Recognition using OpenVino
- Install ☁ Azure IoT on Raspberry Pi
- Deploy ☁ Azure Blob Storage on IoT Edge, lessons learned
- Connect to ☁ Azure Blob Storage on IoT Edge using Microsoft Azure Storage Explorer
- Lesson learned and tips on how to install Azure IoT Edge on Ubuntu on a Raspberry Pi
- Azure IoT Explorer, in preview and awesome
- Mapping a local ☁ Azure IoT Edge folder module with an Edge device folder 📁
- Creating a folder 📂 in the docker definition in an ☁ Azure IoT Edge
¿Con ganas de ponerte al día?
En Lemoncode te ofrecemos formación online impartida por profesionales que se baten el cobre en consultoría:
- Si tienes ganas de ponerte al día con Front End (ES6, Typescript, React, Angular, Vuejs…) te recomendamos nuestros Máster Front End: https://lemoncode.net/master-frontend#inicio-banner
- Si te quieres poner al día en Backend (stacks .net y nodejs), te aconsejamos nuestro Bootcamp Backend: https://lemoncode.net/bootcamp-backend#bootcamp-backend/banner
- Y si tienes ganas de meterte con Docker, Kubernetes, CI/CD…, tenemos nuestro Bootcamp Devops: https://lemoncode.net/bootcamp-devops#bootcamp-devops/inicio