Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to run a CentOS server, and was thinking I would run CentOS in a VM to test things first. Once I'm happy, I want my changes to move over to the OS running on hardware.

Where should I start?


share|improve this question
What virtualization product are you using? – Clay Kimber Sep 29 '09 at 22:16
VirtualBox right now, but I'm happy to change products if it would make this easier. – tsv Oct 1 '09 at 12:13

Start by using a configuration management system, such as Puppet. Describe the changes you want to make, test those changes on the staging VM, then when you're happy with them apply them to the live machine.

share|improve this answer
Agreed. CFEngine is another good choice for this. – Jesse Weigert Oct 19 '09 at 0:38
On the contrary, cfengine is a pretty poor configuration management system by the standards of what else is out there. – womble Oct 19 '09 at 1:45

A simple rsync script could probably do most of what you want. If you've got databases, or stuff like that, you might need a script to dump, copy and import them, but it's hard to give a better answer without more information.

share|improve this answer

If you are familiar with a source code management system like cvs, subversion, git or so you can keep the entire /etc/ under revision inside the VM. In general 99% of configuration files are in /etc. Once you are happy with your tests and want to switch to the physical server simply install CentOS there and do checkout in /etc/. Voila! If you have other work directories like /var/www you can have them in the file repository too. I recommend using subversion, because it's easier to start with and it handles better than cvs special files.
This way you can clone interesting changes and have a history of what you did.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.