Published on 25 April 2018 by

We’re excited to announce the upcoming launch of Puppet Enterprise 2018.1 along with the latest additions to our product portfolio. Puppet Enterprise 2018.1 includes enterprise-grade enhancements to help teams improve the way they manage, execute, and orchestrate their infrastructure.

Puppet Enterprise 2018.1 will be available for download 1 May.

Let’s jump into the details.

Announcing enhancements to Puppet Tasks™

Last October we introduced Puppet Tasks, which includes Puppet Bolt, our standalone open source task runner and the Task Management capability in Puppet Enterprise. Puppet Tasks gives everyone, whether they have a Puppet agent installed or not, the ability to deploy point-in-time changes on demand. It lets you do things like run a script written in any language across your infrastructure, stop or start a service, upgrade a package, and automate changes that need to happen in a particular order as part of an application deployment. Our goal is to help teams manage more of their infrastructure, including nodes that don’t have an agent running, cloud resources, and network devices.

We have free training on Puppet Tasks available for folks who want to learn more.

Per node RBAC for Tasks

Now in Puppet Enterprise 2018.1, you can use role-based access control (RBAC) to specify who can run which tasks against specific groups of nodes. Because node groups are dynamic when new nodes are provisioned, they’re automatically added to the appropriate groups. Your RBAC policies ensure that specific user roles can execute tasks against the appropriate node groups. For example, as new machines are provisioned, an app developer will have the right permissions to run tasks on their development nodes without accessing nodes in production. This enables Puppet administrators to give more teams self-service access to the infrastructure they’re responsible for.

Screenshot of RBAC for developers in Puppet Enterprise

Extending Puppet Enterprise with Puppet Bolt™

When we introduced Puppet Tasks last fall, we also introduced Puppet 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 Puppet Bolt, go here.

Check out Puppet Bolt Task Plans

In Puppet 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 Puppet Bolt with the Puppet Orchestrator, check out our documentation.

Inventory file for Puppet 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:

Share via:
Posted in:

Add new comment

The content of this field is kept private and will not be shown publicly.

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.