Tips for building up to a live server?

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.

1 Reply

These sites should help smooth a few things over:

http://library.linode.com/

http://www.howtoforge.com/

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct