The proliferation of small servers, especially remote / embedded systems, requires the ability to constantly fetch and apply updates and automatically rollback if necessary. One of the issues we see is installers failing to cope with user changed configuration data e.g. in /etc.
A transaction capable /etc will track user changes in a way that should be reproducible and allow for rollback. The system should be able to update with the standard rpm/zypper mechanism on an untouched mirror system and user changes will be replayed on top to preserve changes. The underlying /etc will only be exposed during boot before being replaced by a VFS.
This project is an attempt to address some of those issues and see whether the concept is viable.
- Create a FUSE backend /etc to track manual changes to etc and support transactions, rollback.
- Investigate different namespaces and/or filesystem views for different types of process
- categorize /etc files into standard configuration file types e.g. /etc/passwd is a CSV file, with 5 fields, colon separator, and primary key field 1
- log configuration changes in a DB e.g. "User root changed field 7 for key wwwrun to value /bin/bash" (parsed)
- attempt to categorize transactions (grouping a set of changes into 1 unit)
- mark obsoleted user changes as such to keep the DB small
- apply changes to the underlying FS to allow a machine to reboot
- investigate a snapper plugin
and lots more...
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 19 Hack Week 20
This project is one of its kind!