Description
The Directory Update Module installs a user defined file tree structure (files and subfolders) into a given destination directory on the device.
Before deploying to the destination folder on the device, the Update Module will take a backup copy of the current contents. This allows to restore it with the rollback mechanism of the Mender client if something goes wrong.
Example use-cases:
- Updating an application which resides in a standalone directory on the device
Specification
Module name | directory |
Supports rollback | yes |
Requires restart | no |
Artifact generation script | yes |
Full operating system updater | no |
Source code | Update Module, Artifact Generator |
Maintainer | Community |
Please be aware that Mender Update modules are meant to update parts of the operating system and if not configured properly they could potentially delete parts or the complete operating system. Always inspect the code carefully and only test modules on a devices that you can recover easily.
It is not recommended to install a Mender Artifact on your workstation
Prepare the device
This section describes how to setup your target device, i.e. the device to be updated. This will also be referred to as the device environment.
All commands outlined in this section should be run in the device environment.
Prerequisites
This Update Module has the following prerequisites for the device environment:
- Install the Mender client, version 2.0 or later
Install the Update Module
Download the latest version of this Update Module by running:
mkdir -p /usr/share/mender/modules/v3 && wget -N -P /usr/share/mender/modules/v3 https://raw.githubusercontent.com/mendersoftware/mender/master/support/modules/directory
Prepare the development environment on your workstation
This section describes how to set up your development environment on your workstation.
All commands outlined in this section should be run in the development environment.
Prerequisites
This Update Modules has the following prerequisites for the development environment:
- Install mender-artifact , version 3.1.0 or later
Create Mender Artifacts
For convenience, an Artifact generator tool directory-artifact-gen
is provided with the Update Module. This tool will generate Mender Artifacts in the same format that the Update Module expects them.
Download directory-artifact-gen
, by running the following command:
wget https://raw.githubusercontent.com/mendersoftware/mender/master/support/modules-artifact-gen/directory-artifact-gen
Make it executable:
chmod +x directory-artifact-gen
Create example content to deploy:
mkdir dir-to-deploy
echo "File created by Mender directory Update Module!" > dir-to-deploy/file1.txt
echo "File created by Mender directory Update Module!" > dir-to-deploy/file2.txt
Now generate a Mender Artifact using the following command:
ARTIFACT_NAME="my-update-1.0"
DEVICE_TYPE="my-device-type"
OUTPUT_PATH="my-update-1.0.mender"
DEST_DIR="/opt/installed-by-directory/"
FILE_TREE="dir-to-deploy"
./directory-artifact-gen -n ${ARTIFACT_NAME} -t ${DEVICE_TYPE} -d ${DEST_DIR} -o ${OUTPUT_PATH} ${FILE_TREE}
-
ARTIFACT_NAME
- The name of the Mender Artifact -
DEVICE_TYPE
- The compatible device type of this Mender Artifact -
OUTPUT_PATH
- The path where to place the output Mender Artifact. This should always have a.mender
suffix -
DEST_DIR
- The path on target device where content ofFILE_TREE
will be installed. -
FILE_TREE
- The path to a folder containing the contents to be sent to the device in the update.
You can either deploy this Artifact in managed mode with the Mender server (upload it under Releases in the server UI) or by using the Mender client only in Standalone deployments.
Artifact technical details
The Mender Artifact used by this Update Module has two payload files: a tarball containing all the files to be deployed and a regular file with the DEST_DIR
in plain text.
The Mender Artifact contents will look like:
Updates:
0:
Type: directory
Provides: Nothing
Depends: Nothing
Metadata: Nothing
Files:
name: update.tar
size: 17571840
modified: 2019-03-05 15:20:42 +0100 CET
checksum: dab0a292a8c2a089eb0a22e56082e51fcfa5485264b66063a4f9798db919af23
Files:
name: dest_dir
size: 12
modified: 2019-03-05 15:20:42 +0100 CET
checksum: 5dfbbf0a8baa51888494fa5fe1665cc5b2826419f9ec6d90a92eeabd54a0f574