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 the ability to setup new servers for dev/testing/prod very easily. The reasons for being able to setup a new dev VM is obvious, but for prod my concern is adding a new production server/migrating to a new server.

I assume a traditional backup solution won't work as hardware may be different so the binaries/config might be different.

I want to get experience with puppet anyways, so I was thinking about creating a manifest that would setup my users, install Postgres, Nginx, PHP-FPM, etc, and configure them the way I specify. Then I could install puppet on a new server, copy down my manifest and apply it locally. This would make keeping my server configs in sync easier too.

Is there a better approach I'm not aware of, and does my approach have any pitfalls?

share|improve this question

closed as not constructive by mgorven, TheCleaner, kce, Dave M, Jacob Feb 8 '13 at 22:21

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 6 down vote accepted

You can use the Blueprint tool to reverse-engineer a running server.

It can generate a Puppet module, a Chef cookbook or even a set of shell scripts to reproduce a system's configuration.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.