Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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 learn puppet but I am confused with one thing.

I have already installed many python modules, apache modules, PHP plugins etc. Can I convert all that into puppet so that in my new server the puppet install them automatically?

I am confused how will that work. I don't remember which thing I installed or how I configured them. How do people do it?

share|improve this question
"I don't remember which thing I installed or how I configured them." - Check your Yum log for installed packages. Check which configuration files differ from what's provided by the package. (rpm -Va) Look for files newer than the install/provision date. It's going to be painful. But, you go through this once and you learn to maintain documentation. – Aaron Copley Jul 19 '13 at 14:31
You're really going to be glad you started down this path. Whether you use puppet, chef, ansible, sprinkle, etc. There's always friction at the start, but once you start automating, you're going to love what it does for you. – platforms Jul 24 '13 at 0:33
up vote 7 down vote accepted

Sure, you can do that. I'd start small, and write puppet modules to cover one bit of the system at a time. Test that, then move to the next.

More ideally, you might want to try to replicate your existing system on a new server. Then, you'll be in much better shape.

As a general rule, you never want to have a system where no one knows what's there or how it got there.

share|improve this answer
I am thinking the same , i have one amazon ec2 instance fully working. i will start from there and then try to build same server slowly untill i reach there. how should i start. i mean should i get the book of puppet 3 or 2.7 because 2.X has many books but 3 has less books. i dont know how much is the difference – MOtaro Site Jul 19 '13 at 2:45
@MOtaroSite Start with 3. Most of the learning materials from 2.x are still applicable to 3 (the main difference is the scoping changes, be aware of them), and you won't have to deal with the headache of converting anything. – Shane Madden Jul 19 '13 at 2:52

I have a similar situation. We have just transitioned to a new CentOS 6.4 VPS and I wanted to re-create the environment in a local virtual machine.

  1. I installed VirtualBox, Vagrant and a clean CentOS 6.4 + Puppet install into it.
  2. Then I listed all of the installed software using yum list installed.
  3. I then created Yumrepo and Package entries in my Puppet init file for each package I cared about (I didn't do them all), using the version number as reported on the VPS.

Once all that was configured, puppet apply /path/to/init.pp gave me what I needed.

share|improve this answer

Puppet Labs has a fantastic VM that can be quickly spun up.

It includes:

  • The puppet vim extension
  • Puppet pre installed
  • Web interface pre configured

Using the puppet learning VM allows you to make mistakes without worrying about causing damage you your production system.

It is possible to mess up your server if you aren't careful. See these examples of puppet going wrong

Can you unapply a puppet manifest action?
User can't log in after I manually set MD5 hash

share|improve this answer

Your Answer


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

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