We are a medium sized shop that uses Puppet for Linux configuration management. Since we are a small shop, it's difficult to deploy and maintain DTAP environment.

We normally perform manual testing after configuration changes. I would like to automate that somehow; like you would see in software regression testing for e.g..

An e.g. use-case would be an OpenLDAP cluster. I would:

  1. I would make a change on a test node in the Puppet test environment
  2. Test services
  3. If fail, go back to to step 1
  4. Remove a node from the cluster
  5. Make the configuration change
  6. Test services
  7. If fail, go back to step 5
  8. Add node back to cluster
  9. Test services
  10. If fail, go back to step 4
  11. Finally, deploy to other nodes

Ideally, I'd like to automate the testing so we could deploy changes with more confidence.

Can anyone recommend such a thing? Preferably something that hooks into Puppet but not necessarily a requirement. Some suggestions on best practice would also be appreciated.

  • 1
    Acceptance testing spanning multiple test nodes is what beaker is for, see github.com/puppetlabs/beaker. It allows you to define test scenarios that are run on (groups of) throwaway virtual machines. – Felix Frank Jun 17 '14 at 11:43
  • @FelixFrank, shouldn't that be an answer? – François Beausoleil Jun 18 '14 at 19:44
  • @FrançoisBeausoleil well, for lack of personal experience, I can really add no further information at all. Since the question is quite specific, I feel that the link doesn't qualify as a full answer. Just a helpful pointer. Hope someone will speak up and elaborate. - But thanks for the encouragement :-) – Felix Frank Jun 18 '14 at 22:08
  • @FelixFrank please submit as an answer. This was exactly what I needed. – Belmin Fernandez May 6 '15 at 23:46
  • @BelminFernandez OK fine ;-) – Felix Frank May 7 '15 at 9:14

The designated tool that meets the described requirements is Beaker. It will allow the creation of acceptance test scenarios like the one that was sketched in the question.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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