4

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.

5
  • 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. Jun 17, 2014 at 11:43
  • @FelixFrank, shouldn't that be an answer? Jun 18, 2014 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 :-) Jun 18, 2014 at 22:08
  • @FelixFrank please submit as an answer. This was exactly what I needed. May 6, 2015 at 23:46
  • @BelminFernandez OK fine ;-) May 7, 2015 at 9:14

1 Answer 1

3

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .