I'm looking for method or methods and automation tools to log the adjustments I make to a Linux machine.
Such adjustments would be:
- Installation of new software/software components via apt-get, including forcing particular versions to be installed
- Installation of Perl modules
- Use of make install, make process to meet the goals of the above items
- Changes to paths and environment variables
- Just about any kind of change you can do to a Linux machine
- Logging of the errors that may result in any of the steps above
I would use this technique of logging to:
- enable the steps to be duplicated, to be repeatable on another Linux machine, for example if I am setting up the same applications for several machines
- provide a basis for documenting the steps
- help with providing an undo process, to undo the changes restoring the machine back to the state before the changes were made
Why do I think such a method or methods and tools is necessary?
- Because we can often be under pressure, typing lots of commands one after the other to get something to build, then install, etc
- Because there seems to be a lot of Linux-based software out there that doesn't quite work how the makers intended or instructions are incomplete, ambiguous. (It's getting better though, with sites like this and howtoforge.com)
- Because Linux administrators, developers aren't so good at documenting what they did, or reluctant, or find it a boring task, regarding it as unimportant
Features I would be looking for would include:
- Logging commands typed and the output
- Logging resultant changes make to system
- Perhaps a BeyondCompare style comparison tool to intelligently compare filesystem partition made before and after changes