I would like to use microOS as an OS for a Single Board Computer and configure it as a datalogger (no desktop environment). These dataloggers are installed on various remote locations and therefore I would like to avoid on-site repairs of broken operating systems. My hopes are that with microOS I can meet all my requirements (rolling release, transactional updates, automatic system configuration at installation). I only want to run a few programs in containers to log data.
I really like the concepts of microOS, but I was wondering if the project is still in a beta phase or if it is stable enough to use it in production. I couldn’t find any information about that.
My specific questions are:
Is microOS in general considered as stable for my use case (no desktop environment)?
Is especially BTRFS considered as stable? I used it a few years ago but did not have a good experience with it.
Is Combustion working reliable?
As the project is comparatively young, is everything well documented or is it a pain in the ass to configure everything and find related information?
Yes, even though i don’t use it. It updates automatically and rolls back if it detects something wrong during booting, plus its specifically designed to be zero-maintenance.
I’ve been using btrfs for many years without problems…
I use Combustion (and also ignition) with vagrant and bare-metal (SelfInstall) images, works fine. I do have an open bug for my recent install https://bugzilla.opensuse.org/show_bug.cgi?id=1212959 but it can be worked around.
There is also Leap Micro which may fit your needs?
How would you guys recommend installing applications in my use case?
I think the documentation of microOS is lacking a site on Portal:MicroOS - openSUSE Wiki which describes how to install and update applications. Some open questions I have:
Can I only install applications with podman or also with the transactional-update command? Or is transactional-update only recommended for system packages? If no, where will these applications be installed?
I read at the documentation that there will be a systemd service set up at installation to update all packages with the transactional-update command automatically with atomic updates and rollbacks etc. Is it also pre-configured that all podman containers will be updated? I never used podman before, but read at What is Podman? (redhat.com):
Automatically update containers. Podman detects if an updated container fails to start and automatically rolls back to the last working version.
Is this configured by default or do I have to set-up podman manually to get automatic updates with rollbacks etc.?
systemctl status rebootmgr
â—Ź rebootmgr.service - Reboot Manager
Loaded: loaded (/usr/lib/systemd/system/rebootmgr.service; enabled; preset: enabled)
Active: active (running) since Wed 2023-07-05 06:54:48 CDT; 4min 6s ago
Docs: man:rebootmgrd(8)
man:rebootmgrctl(1)
Main PID: 1320 (rebootmgrd)
Tasks: 1 (limit: 4915)
CPU: 5ms
CGroup: /system.slice/rebootmgr.service
└─1320 /usr/sbin/rebootmgrd
Jul 05 06:54:48 kermit systemd[1]: Starting Reboot Manager...
Jul 05 06:54:48 kermit systemd[1]: Started Reboot Manager.
rebootmgrctl get-window
Maintenance window is set to *-*-* 03:30:00, lasting 01h30m.
So I can manually perform a transactional-update dup, then at 3:30am the system should reboot…
I would look at using podman as a user, not system wide. Then also look at distrobox, AFAIK the goal is to only use system rpms as a last resort, but I do think that depends on the use case…