|
I've been fiddling about with my VPS for a few weeks now (my first steps down the path to server admin), and while it's great to work through complex problems while learning, I can't shake the feeling that I am trying to reinvent the wheel when it comes to building up to a solid, secure, controlled server. A problem that I imagine many new VPS users and old-hat admins face is version control over server "states", ie. backup/restore of the system configuration at a moment in time.
I see that Linode is going to release a backup system (still in Beta) but I'm not sure if it will meet my needs, and surely others have found other means of managing iterations while building from a basic linux install to a production server.
Dar seems to fit the bill for much of what I want, however the way it uses memory and minimally "active" community (mailing list only, sporadic discussion) is a bit of a concern.
What I would like to find a simple and reliable way to accomplish is:
1. Install a distro and do some basic configurations:
- Core Users
- Partitioned Directories (/var, /home, etc...)
- Various Config Files (fstab, network/interfaces, etc...)
1a. Create a file-based snapshot:
- from active system (no shutdown for backup)
- compressed, full meta data/permissions, links/symlinks
- Memory allocation conservation
- Slicing capability (define max size of backup containers)
1b. Keep a local & remote copy.
1c. Begin installing/exploring technology/configuration options
- Feeling my way through different webservers, databases, and glue tech (Python, Perl, PHP, etc.)
- Constantly, Consistently, and Simply jumping back to my Base snapshot
... When I come to a state that I'd again like to build upon,
2. Create a differential snapshot over the Base snapshot
- meeting all of the goals of 1a and 1b.
I expect that I would do many iterations of this... and at some point pipe what I want to go live with over to my production server, and in a few keystrokes be ready to go live.
One solution is just having a full duplicate disk image for each iteration... but that is an atrocious waste of disk quota.
Obviously many of the various version control applications (Git, SVN, CVS) could have a role in such an path, but I'm not sure that they would be ideal for this type of version control.
I have been playing with Dar, and the handful of user contributed scripts out there... and even after customization and what optimization that I've been able to work towards... I find that I'll be working on this task for weeks (or I hope not - months) to get it to a point that I'll feel it's rock-solid and ready to go for the long haul.
So if you would care to share any input into how you have approached iterating your way to a great live server (prior to the linode backup beta, or since) I'm sure I would not be alone in appreciating your insight.
|