Not sure what you're on about, most package managers have a literal database of most package manager installed files. Debian and derivatives have dpkg --verify
or debsums
to verify the files, arch has paccheck
, I'm sure other distros have something similar. And fixing them is just a matter of reinstalling the package, which you can do from a chroot if the system won't boot.
Or you can just run your system on a checksumming FS like btrfs which will instantly tell you when a file goes bad.
I've been in love with the concept of ansible since I discovered it almost a decade ago, but I still hate how verbose it is, and how cumbersome the yaml based DSL is. You can have a role that basically does the job of 3 lines of bash and it'll need 3 yaml files in 4 directories.
About 3 years ago I wrote a big ansible playbook that would fully configure my home server, desktop and laptop from a minimal arch install. Then I used said playbook for my laptop and server.
I just got a new laptop and went to look at the playbook but realised it probably needs to be updated in a few places. I got feelings of dread thinking about reading all that yaml and updating it.
So instead I'm just gonna rewrite everything in simple python with a few helper functions. The few roles I rewrote are already so much cleaner and shorter. Should be way faster and more user friendly and maintainable.
I'll keep ansible for actual deployments.