Extending Puppet Enterprise with Bolt

When we introduced Puppet Tasks last fall, we also introduced Bolt, our open source task runner. Since then, we’ve made some major improvements and have been adding feature releases to Bolt on a weekly basis. Bolt gives you an agentless way to run simple commands or orchestrated workflows across your entire infrastructure. It uses SSH and WinRM to make connections to nodes, and tasks can be run as sudo or any other user.

Bolt now integrates with the Puppet Orchestrator, which is built on our ultra-scalable PCP (Puppet Communications Protocol) transport designed for customers that manage hundreds of thousands of nodes. This allows them to deploy changes instantly and see results in the Puppet Enterprise console faster than an SSH handshake. Let’s say you need to upgrade a package on nodes managed by Puppet Enterprise and nodes where you don’t have an agent installed. You can run the same task across your entire infrastructure using SSH, WinRM and PCP. The combination of agentless transports and our enterprise-grade PCP transport gives you the flexibility to scale automation across all types of infrastructure, from traditional VMs to cloud resources, network devices and more.

To get started with Bolt, go here.

Check out Bolt Task Plans

In Bolt, you can run task plans, which are simply a set of tasks run in a specific sequence as part of an orchestrated deployment. For example, you can automate changes like a database migration or a rolling deployment that requires logic in between steps. If you’re using another tool to do this type of procedural automation, you can save yourself an extra step and do it all with Puppet.

Unlike other tools, you can do complex error handling for more advanced use cases. For example, if a step in your plan fails, you can determine whether to retry the task if it was caused by a timeout error, or stop the plan if it was due to an authentication error. Task plans are ideal for when you need to run multiple tasks or commands procedurally, compute values as an input to a task, or make decisions based on the results of specific steps in the plan.

With the new Puppet Orchestrator integration, you can now run task plans across hundreds of thousands of nodes and see the results in the Puppet Enterprise console. Bolt task plans will show up as jobs in the console alongside the rest of your Puppet runs and tasks and all actions will be tracked by the activity service giving you the auditability you expect from Puppet Enterprise.

For a step-by-step guide for setting up Bolt with the Puppet Orchestrator, check out our documentation.

Inventory file for Bolt

To help manage hosts in your environment with or without the Puppet agent, we’ve added an inventory file to Bolt that stores information about your nodes. For example, you can organize your nodes into groups or set up connection information for nodes or groups of nodes. It’s a great way to store information about your hosts that will be available at run time.

The inventory file is a yaml file stored by default at ~/.puppetlabs/bolt/inventory.yaml.

If you’re using PuppetDB to store information about a portion of your infrastructure, you can use the bolt-inventory-pdb script to generate inventory files based on PuppetDB queries.

bolt-inventory-pdb pdb.yaml -o ~/.puppetlabs/bolt/inventory.yaml

Example file:

groups: - name: ssh_nodes nodes: - ssh1.example.com - ssh2.example.com - ssh3.example.com config: transport: ssh ssh: host-key-check: false - name: win_nodes nodes: - win1.example.com - win2.example.com - win3.example.com config: transport: winrm winrm: port: 5382 - name: pe_nodes nodes: - app1.example.com - app2.example.com - app3.example.com config: transport: pcp

If you’d like to use a PQL query to target your infrastructure you can now do that with the Bolt --query flag.

bolt task run package action=status name=httpd --query 'resources[certname] { type = "Service" and title = "httpd" }'

See the full release notes for more information.

Improved support for disaster recovery planning

Puppet Enterprise has long been a core part of disaster recovery planning, making it straightforward to reproduce business critical infrastructure in the event of catastrophe.

With Puppet Enterprise 2018.1, it’s even easier to incorporate Puppet Enterprise into those plans with built-in tools to backup and restore your Puppet deployment. Combined with its high-availability features, Puppet Enterprise is always ready if there’s a problem anywhere in your data center or cloud infrastructure.

Take Puppet further with PDK support

We believe that all Puppet users are and can be Puppet code developers. Even if they’re mostly adopting existing modules, they write and iterate on Puppet code when composing the high-level building blocks that define the state of their infrastructure.

Puppet Development Kit (PDK) was created to give users prescriptive tools and best practices for testing their Puppet code, and it’s now fully supported. It offers a collection of tools in a powerful all-in-one package that helps users develop, test, convert and update modules right from a Windows, Mac or Linux workstation with a simple unified interface; catch issues before Puppet code is applied to live infrastructure; and get going faster with a complete batteries-included Puppet development environment.

2018.1 is the next long-term release

Puppet Enterprise 2018.1 is our newest long-term supported release (LTS), meaning you can expect full support, security updates and bug fixes through May 2020. This version is right for you if you want continued security updates and full support without upgrading your implementation on a frequent basis. 2018.1 ships with a Puppet-based installer making upgrades seamless and easy.

Accessibility, performance and usability improvements

Last, but not least, we’ve added some major improvements to the Puppet Enterprise console to make it accessible to more people, including those who use a screen reader, work exclusively with a keyboard, or see color differently. We want everyone who uses Puppet Enterprise to have the same great experience and we’re planning more accessibility improvements in the future.

Additionally, we’ve also added inline documentation to the console for instant help when you need it. Console workflows have been optimized for faster load times, better performance across large numbers of resources, and expanding out the number of users logged in at once. Since many of our customers use Puppet Enterprise across hundreds of thousands of nodes, scalability is always our top priority.

Try Puppet Enterprise and our other products

If you aren’t currently a Puppet Enterprise user, we offer several ways to get your hands on it and test it for free:

Along with Puppet Enterprise 2018.1, we’re also revealing new products and innovations across our portfolio. Check them out: