7

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

jrtapsell
  • 6,719
  • 1
  • 26
  • 49
Jeef
  • 26,861
  • 21
  • 78
  • 156
  • 1
    This would be a question for a sales engineer and does not fit within SO's scope. That being said, I am service delivery certified for both PE and AT on behalf of Puppet and RedHat and the short answer is basically: no. Also look at PE Orchestrator if you want. – Matthew Schuchard May 30 '19 at 15:09
  • From what I can tell, the two products are not differentiated by their capabilities with respect to remote systems, but rather by their user / programmer interfaces. – John Bollinger May 30 '19 at 15:13
  • 2
    I personally think this question is on-topic for Stack Overflow, even if a complete answer could run into many thousands of words. – Alex Harvey Jun 01 '19 at 06:57

1 Answers1

11

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.

Alex Harvey
  • 14,494
  • 5
  • 61
  • 97
  • 2
    Puppet bolt tasks can be written in pretty much any language (python, bash, PowerShell, etc.) and there is a [yaml option for plans](https://puppet.com/docs/bolt/latest/writing_yaml_plans.html). – steveax Jun 06 '19 at 04:26
  • It's not really different from Ansible in that regard though is it @steveax? I only meant that people who prefer Python may prefer a Python-based tool like Ansible or Salt. IMO, Bolt is a more elegant piece of software but I'm trying to keep my opinion out of it. ;) – Alex Harvey Jun 06 '19 at 06:29
  • 2
    Just wanted to clarify as “Bolt uses Ruby” suggested to me “Bolt things must be written in Ruby” :) – steveax Jun 06 '19 at 07:13
  • Upvoting for the useful answer despite your misgivings about the question, and your desire to "keep your opinions out of it", which actually validates your final comment regarding the elegance of the software. I wonder if this may signal a resurgence for Puppet. – Graham Nicholls Jun 24 '21 at 07:10