Performing full filesystem updates may not be appropriate for all update scenarios. For instance, if you only need to change a single configuration file, a full filesystem update may require too much overhead, both in size of the Artifact and the time needed to install it, not to mention a reboot is required. Mender addresses this use case with the idea of Update Modules, as described in the overview section.
Update Modules are executable files in the /usr/share/mender/modules/v3 directory on the device (note: v3 is the current version of the protocol). The Mender client executes these files with a defined set of parameters to perform the update. All Update Modules originate from the artifacts of a special payload and type.
When deploying updates using update modules, the Mender client will unpack the payload and then pass that to the Update Module with the correct arguments; the actual processing of the payload depends on the implementation of the update module. Mender imposes no limits on what the Update Module can or cannot do. In order to create an update module, you need to first create and install the actual code of the module, and then create an Artifact with the custom payload type.
Whether you need to install a new application onto your devices, update some files, or perform some other operation of your choosing, the Update modules are an option worth considering; they reduce the size of artifact, and time of the deployment compared to full system updates and can extend the Mender client to handle any type of software update.
In order to install an Update Module to extend the capabilities of the Mender client, you simply need to place it in /usr/share/mender/modules/v3 and ensure that it is executable.
You can find existing Update Modules in the Update Module category of the Mender Hub community forums.
Found errors? Think you can improve this documentation? Simply click the Edit link at the top of the page, and then the icon on Github to submit changes.
© 2022 Northern.tech AS