I like the transactional approach of Ubuntu Core together with snaps and other container types and prepare a pilot for it. While these technologies give us good and easy configuration management for the immutable parts of the snaps, I am wondering what people are doing with the non-immutable configuration.
Let’s take the example of the Ubuntu Core documentation: the nextcloud snap. I think it is typical for web applications. We have
- Immutable applications (Apache, MySQL, Redis etc. in /snap/nextcloud)
- Configuration data (in /var/snap/nextcloud -> mostly in “current” there), containing even basic things like trusted host names and https certificates.
- User data (in /var/snap/nextcloud -> mostly in “common” there and in the DBMS)
The group 1 is well managed by snap :-). I was wondering how people are handling the data of group 2 in a well defined state across many instances?
- Usually I would expect some configuration management systems like Chef or whatever is your favorite. But I did not find them in the snap store. This system would even need access in the data area of other snaps, which is hardly possible on Ubuntu Core.
- We could imagine something like company specific add-ons or overlays for snaps to configure the group 2 data and make it immutable as well.
- There might be more ideas …
How would you or do you manage the configuration of your Ubuntu Core servers? Any ideas welcome.