2 ms·
You can get 99% of what configuration management does by just building a configuration package. 1. If you want an application installed, list it as a dependenc
by majewsky 7y ago
You can get 99% of what configuration management does by just building a configuration package.
1. If you want an application installed, list it as a dependency of your configuration package.
2. If you want a configuration file installed, put it in your configuration package.
3. If you want a user account or group, put a config file for systemd-sysusers in your configuration package.
I built a tool that simplifies package building for this particular purpose, where you're just listing dependencies and file contents: https://github.com/holocm/holo-build https://github.com/holocm/holo-build - As an example, this is the configuration package for my notebook: https://github.com/majewsky/system-configuration/blob/418282f037ab1d4f4af90d659823a4e1f75d38be/holodeck-traal.pkg.toml https://github.com/majewsky/system-configuration/blob/418282...
The nice thing about this approach, compared to switching to something like NixOS, is that you can continue to use your favorite distribution. However, when you go by this route, you will run into a brick wall very fast because you cannot install a configuration file into a path where an application package already installed an example config. I built http://holocm.org http://holocm.org for this purpose. It works well enough, even though it has a few quirks at times. It's fundamentally limited by the system package manager having the final say in everything.
Since January, I've been slowly migrating my servers to NixOS. The desktop and the notebook might follow at some point. NixOS certainly has enough quirks on its own, but at last the configuration management is a first-class citizen on my servers.