[systemd-devel] Stateless System Presets
Lennart Poettering
lennart at poettering.net
Fri Aug 2 07:20:24 UTC 2019
On Do, 01.08.19 16:48, Quinn Mikelson (quinn.mikelson at tyvak.com) wrote:
> I work at a company who develops a number of semi-stateless
> systems. My current challenge is integrating out growing number of
> vendor-specific applications and services into a system with
> persistent /etc and /usr directories.
>
> These images are generated using Buildroot with initramfs
> filesystems; I'm using the term semi-stateless, because their /etc
> and /usr directories can be "patched" during runtime, but are
> otherwise refreshed upon each reboot.
>
> The specific services that get enabled on boot change from image to
> image, so I'd ideally like a single file to describe each image for
> ease of management.
>
> The system-preset mechanism seems like it was designed for this
> application, unfortunately it seems geared toward volatile systems,
> and only operates from within the running system after executing
> something like systemctl preset-all.
>
> Is there an accepted method of maintaining and applying a preset
> service during image packaging or upon system boot for stateless
> systems? My current solution is manually parsing the preset files
> with a custom script and creating or deleting symlinks accordingly.
You should be able to just run "systemctl --root=… preset-all", which
will apply all presets relative to some root directory.
Note that presets are also run automatically at boot, if /etc is
determined to be unpopulated (i.e. on "first boot"). This is derived
from whether /etc/machine-id exists.
Lennart
--
Lennart Poettering, Berlin
More information about the systemd-devel
mailing list