Gabriel Aguiar Noury
on 4 June 2024
Welcome to this blog series which explores innovative uses of Ubuntu Core. Throughout this series, Canonical’s Engineers will show what you can build with this Core 24 release, highlighting the features and tools available to you.
In this first blog, Michael Croft-White, Telemetry Engineer Director, will show you how Landscape integration to Ubuntu Core enables device management. With this tool, developers have centralised control of updates, access control, and security compliance monitoring across all their deployed devices. Coupled with Ubuntu Core architecture, device makers have an end-to-end infrastructure for managing the complete lifecycle of devices on the field.
Scaling to meet device management needs
Now that you’ve learned about Ubuntu Core 24 and all of the handy features it offers, you’ve probably been through the initial stages of prototyping your device or product on your desk. You’ve connected to the hardware directly and physically interacted with all of its bells, whistles and buttons. But now, that time has come when you want to take this little prototype, let it multiply, and then spread its wings and fly out to all corners of the world.
However, you pause briefly as you imagine hundreds, maybe even thousands of your precious creations leaving the nest and your parental guiding hand behind. What will they do now if they need your help, your guidance, or for you to press their reset button when they struggle? With so many, how will you possibly be able to take care of each one individually yet still be able to cope with the fleet as a whole?
Help is at hand with Landscape. In this blog, we’ll give a brief overview of what Landscape is, how it works alongside Ubuntu Core 24, and how it can help as you scale from one device to thousands.
Landscape integration
Landscape has long been a mainstay of Canonical’s product portfolio – helping users manage desktop and server machines since 2006 – and it continues to go from strength-to-strength. Aligned with the release of Ubuntu Core 24, we’ve provided the Landscape client agent as a snap and added the ability to manage snap packages using Landscape. Custom device images can register themselves with a Landscape instance without any external input (zero-touch onboarding), so owners and operators of large fleets of devices can take it easy and relax in the comfort of their own desks.
With the client agent installed and configured on a device, administrators can see, access and configure their Core devices remotely without ever needing to get up from their chairs. Particularly useful if those devices happen to be far away in some isolated, inaccessible part of the world.
Configuration and Zero Touch Onboarding
One of the joys of working with Ubuntu Core 24 is the ability to create images that you can load onto devices and send straight out into the field. Plug them in and give them a network and they will stand themselves up quite nicely all by themselves. This is often known as zero touch onboarding.
Landscape takes this even further by enabling you to zero touch onboard your devices to your Landscape instance. The devices will magically appear in your Landscape Server portal so you can start managing it straight away.
You can deploy even the most complex devices without engineer intervention – it simply works. This is great news for fleet managers, and for the engineers who can focus on other responsibilities. What’s more, with the power of the Landscape API, which allows programmatic access to your Landscape server instance, you can monitor when these devices appear and reconfigure them to your choosing.
To give an example of how this could be useful, imagine you have multiple products that all use the same hardware. However, you do not know which product that piece of hardware will become. No problem, simply ship it with a base by following Create an Ubuntu Core Image with Landscape Client Included. Then, when the device is first turned on, you will see it appear in your Landscape estate and you can trigger a re-model Remodelling | Ubuntu, that will connect to the Snap Store, download all the latest snaps and turn that device into the product you want it to be.
Of course, the fully automatic method of configuring Landscape is not for everyone and those wishing to do it manually can read how in this blog:
Simplify IoT device management: How to add Ubuntu Core devices to Landscape
Snap management
Ubuntu Core is Canonical’s immutable platform for IoT and embedded devices and it is built on snap technology. All the components of the platform are packaged and provided as snaps. The kernel, the system and any applications are all snaps.
When you first create your Core image for your device by following How to create an Ubuntu Core image with Landscape Client included, you can choose which snaps to include in the image bundle including the Landscape Client snap. Then when your device is deployed, it boots up and connects itself to both a Snap Store and a Landscape instance allowing you to manage the snaps.
The Snap Store provides for delivery and updating of snaps to the latest versions, but this treats most of your devices in the same way. Landscape enables you to manage individual devices with more control and finesse.
Update, install or remove Snaps
After shipping your fleet, you might need to add another snap to the device. With Landscape, you can instruct the device remotely to install that additional snap. Alternatively, what if you discover that you have a dependency that’s no longer required? No problem, just uninstall it and never have to worry about it again. Maybe you just need to apply some updates but you want to do it at a specific time and when you know the device is ready – again, Landscape lets you do this either straight away or you can schedule it for a time window to suit your operational needs.
In fact, with IoT devices, in a lot of cases, we recommend holding all snap versions on the device until you are ready, allowing you to, for example, schedule the best time to either interrupt a service, minimise resource usage or maintain performance. All of which is possible using Landscape.
Restrict automatic updates
With Landscape, you have complete control over the updating of all snaps. If you don’t want your device to automatically update when a new snap becomes available, you can hold them at their current revision. Then, when you choose, you can opt to update individually, as a group, or at a specific time. Furthermore, when updating a large number of devices, you can opt to randomise the update over a time window to reduce load on a network connection or a brand store.
Configure Snaps
Landscape enables you to perform any action you desire on your snaps through its scripting interface. Allowing you to update configurations, change settings or even remodel the device into something new.
You can also restart individual snaps that might be misbehaving or needing a refresh as well as connecting or disconnecting interfaces between snaps to control behaviour.
Manage multiple devices
So far we have shown you what you can do to manage your single device, but rarely is that clear cut though and you have a need to work across multiple devices or some subset of your fleet.
To cater for that, Landscape enables you to perform management actions on a group of devices. You can define these groups using saved searches and tags.
Debugging and monitoring
Perhaps one of the greatest uses of Landscape for your Ubuntu Core devices is when they are deployed to inaccessible environments. Landscape automatically monitors the devices and will warn you when a device has gone offline for a prolonged period. You can also see the last time of communication, and look at its processes, CPU usage and memory information (along with other basic observability) metrics to try and determine what the issue is.
In slightly less dramatic situations though, Landscape can help you avoid reaching this stage. With scripting, you can ask the device to provide you with the latest log file entries, or run a specific command and check its output. If all else fails, you can even tell the device to install a temporary user on the device (either an Ubuntu SSO user or you can use a system user assertion) to allow you to connect directly to the device and debug from the console.
All of this without leaving your desk or needing to send an engineer to the site to locate the device and connect physically to it.
What’s next?
While Ubuntu Core 24 gives you a robust, stable and secure platform for your IoT device needs, Landscape gives you the tools and functionality to have complete control over every single device across your fleet. It is even fully extensible with the Landscape API giving you complete access and control to your data and devices.
Add to that, the shiny new modern interface introduced with the 24.04 LTS Landscape release and its inclusion as part of your Pro for IoT device fees makes it a simple choice for managing your devices and making Ubuntu Core 24 the fully featured platform you need and want.
Below are some useful links for further reading:
- Landscape | Ubuntu
- Canonical releases Landscape 24.04 LTS | Ubuntu
- Landscape Documentation | Ubuntu
- The Landscape API | Ubuntu