I have a CentOS production server that I am currently doing my development on (I know this is awful) I'm bringing on some new developers and I want to set up appropriate development, staging and production servers. My questions is how can I best replicate my production server environment on both my staging, and local development servers. For staging I want it to be almost exactly the same as my production server (Other than hardware specs). So I would like to get all my installed packages and configurations in my production CentOS server to my staging server. For my local development servers, I would like to only have the bare essentials to test and run the code. I know that things like puppet and chef exist to help do this, but I have not found anything that allows me to replicate the systems I have currently operating.
Thanks in advance!