I'd like to use Ansible to roll out package updates to my machines. But I'd like to test those updates on a local vm first. How is this usually achieved in the real world ?

  • Do I "lock" every important package in my Ansible configuration to a specific version and then test every update ?
  • Do I periodically get a list of upgradable packages and update them all at the same time on my vms, then on my servers ? I'd probably have some trouble keeping my servers and vms synchronized.

Is there a best practice for managing updates ?


Ansible wasn't really meant to solve this sort of problem. It can do so, but it would be cumbersome at best.

Something like Katello (the open source on which Red Hat Satellite 6 is based) can handle this sort of thing well. It maintains packages at the exact versions you've tested and allows you to promote them from development to staging to production, or define whatever workflow makes sense for you. Not to mention handles bare metal provisioning and many other things. Its only drawback in this scenario is it's well integrated with Puppet, so using it with Ansible may be a bit less automated in places than it otherwise could be.

  • That seems like overkill for our 5 servers... I guess I'll manage everything manually until our needs change. Thanks for the answer !
    – agregoire
    Apr 5 '16 at 13:37
  • It is overkill for five servers. When you get to 50, it'll start looking a lot more attractive... Apr 5 '16 at 18:13

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.