Ubuntu – Managing large scale Snappy Core IoT deployment


I cannot seem to find any clues as to how I would update and centrally manage a large amount of IoT devices running Snappy Core.

Say that I have 100 devices running on a small ARMv9 core with 256MB ram and my own purpose built application. How would I:
1) Register them to and have them appear in ?
2) Apply updates to my purpose built application (app snap)
3) Monitor and reboot my devices?

Kind regards

Best Answer

snapd exposes a REST API locally, allowing anyone to communicate with the device. In reference to your questions-

  1. You will need an agent on the device that talks REST with snapd.socket and uses whatever northbound protocol (that best suits your need) to communicate with your management agent in the cloud/on-prem.
  2. You can upload your snap to the Ubuntu Core store. It allows you access to 4 channels- edge, beta, candidate and stable. Devices listening to the store can install a snap from any channel and will automatically track updates to that snap from that channel.
  3. REST APIs will allow you to remotely monitor and reboot your devices (provided the device is online to begin with)