Search code examples
ansiblepuppetpuppet-bolt

Does Puppet Bolt have the same feature set as Red Hat Ansible?


I was at a conference yesterday speaking with some folks about Puppet Lab's Bolt 1.0. I'm trying to figure out whether the tools is comparable to Ansible, but can take advantage of all the puppet modules that already exist or if it is different in some other manner.

I'm not super familiar with either tool and was hoping that somebody who was more knowledgable thane would be able to explain the difference between the two tools.

I can see both are agent-less which I see as a plus - but I'm unclear on the other differences and why one would pick one over the other. Not looking for a subjective answer - but an actual list of what differentiates the two tools


Solution

  • Puppet Bolt and RedHat Ansible both try to solve the same problems of agentless, push-based orchestration and configuration management. Naturally, though, they don't have exactly the same features.

    I would keep the following in mind:

    • Ansible is a mature product in this space (at the time of writing), and Bolt is a new product. A consequence of this is you'll find Ansible roles already written for many tasks, whereas in Bolt, you may find fewer code examples to get you on your way.

    • Bolt is written in Ruby whereas Ansible is written in Python. Bolt uses Ruby and Puppet's DSL whereas Ansible uses a YAML DSL. Some will choose one or the other tool on the basis of which of these languages they know and/or prefer. (Although, as noted in comments, Bolt Tasks can be written in many languages, and there is also a YAML option for plans.)

    • As you say, Bolt allows easy integration with Puppet configuration management, use of Puppet's modules and its DSL in Bolt plans. If you already use Puppet, Bolt is the natural choice.

    But I would definitely try them both out and choose the one that seems a better fit to the actual problems you are trying to solve.