While Puppet and Bolt can be used separately, you can think of them as different parts of the same system. In fact, these two tools can be combined to enable rich orchestration that works hand-in-hand with your existing Puppet server/agent configuration management.
Start with Bolt for simple tasks and to build orchestration. Then, if you want, you can iterate to full configuration management with Puppet using mostly the same code.
So, how can you achieve this orchestration with Bolt and Puppet? Just install Bolt on your workstation and use it to run tasks or enforce configuration across your existing Puppet infrastructure.
The single puppet-agent package alone won't enable orchestration, but combining Bolt and Puppet will get you there. The two are tightly integrated and use the same modules. In addition, Bolt can switch-hit between tasks and Puppet code. This means that you can write imperative tasks or reuse any declarative Puppet modules (including content from the Forge) for any kind of multi-node orchestration you want.
- If you want a server to continuously pull config from, that's built in as Puppet's core model.
- If you instead want to push that same Puppet configuration out to hosts or orchestrate various kinds of multi-host actions, that's what Bolt is for.
- The only reason Puppet and Bolt are different packages is because Bolt is generally run from the developer's workstation instead of being installed on the server or on managed nodes.
Bolt is the recommended starting point for automating tasks using your existing scripts. Check out the Bolt documentation to learn more about automating tasks with Bolt. As you need more power, you can seamlessly add in Puppet code to use with Bolt.