Get In Touch
Menu
Get In Touch

Automating  infrastructure management and operations

Mike Clancy
Mar 24, 2019, 8:19:16 AM

According to a recent blog published on 9 October 2018 by Yasmin Rajabi research by Puppet and Splunk (see “2018 State of DevOps Report”) identified that many organisations embarked on their DevOps journeys by building a strong foundation, normalising the technology stack, and standardising and reducing variability (stages zero through two).

What was learned from this research, and we have observed from our own users here in NZ, is that the value of automation lies in its ability to help teams move faster, with fewer errors and less overhead.

The culmination of this research and considerable client feedback was the recent release of Puppet Bolt 1.0 and I highly recommend that you check it out.

What’s Puppet Bolt?

Puppet Bolt is an open source, agentless multi-platform automation tool that reduces your time to automation and makes it easier to get started with DevOps. Puppet Bolt makes automation much more accessible without requiring any Puppet knowledge, agents, or master. It uses SSH or WinRM to communicate and execute tasks on remote systems.

Your teams can perform various tasks like starting and stopping services, rebooting remote systems, and gathering packages and systems facts from your workstation or laptop on any platform (Linux and Windows).

The 1.0 release enables Bolt users to take advantage of more than 5,000 modules available in the Puppet Forge for everything from deploying database servers to setting up Docker or Kubernetes. With Puppet Bolt you can reuse existing scripts in Bash, PowerShell, Python or any other language.

Community-driven development

Bolt 1.0 is built based on the feedback from the user community. The team at Puppet seemed to have worked out the kinks, smoothed out the edges, making things easier for you to get started with automation.

They got a lot of feedback from the early adopters that installing from a gem is not ideal. There are now packages for your favourite providers which make installing Puppet Bolt as easy as yum install puppet-bolt  or installing from a MSI. Agility is at the core of many practitioners’ day jobs, so Puppet worked on speeding up and scaling transports.

Feedback from who have switched over from other tools have said its cut down deployment times in half!

Check out what they have done with the addition of cross-platform tasks. This feature gives users the capability to have multiple implementations of a task and lets Puppet Bolt choose the right one based on the target platform. It’s perfect for when you might have an install task that is running bash on Linux and PowerShell on Windows — Puppet Bolt will run the right implementation without you having to think about it.

{ "implementations": [ {"name": "sql_linux.sh", "requirements": ["shell"]}, {"name": "sql_windows.ps1", "requirements": ["powershell"]} ] }

Last year, they shipped Puppet Bolt task plans as a beta and learned quite a bit from that. As of today, plans are now stable and allow for sophisticated orchestration across your environment. They have added improvements such as flexible error handling, complex inter-step dependency support, and better logging for thorough reporting.

To facilitate the management of Puppet Bolt across tens of thousands of nodes they added an inventory file to manage nodes, groups of nodes, cloud endpoints, and all the credentials needed to connect. For those of you already using PuppetDB, we've built an integration to just use PQL and target those nodes.

Reducing your time to automation

Puppet Bolt allows your teams to get started with infrastructure automation with no prerequisites or prior Puppet knowledge. For teams already using scripts to automate provisioning and management of existing nodes, Puppet Bolt enables you to move a step further. Build shareable tasks and leveraging existing modules on the Puppet Forge from your own workstation or laptop to take your infrastructure automation even further.

The apply function

Use the bolt apply function to apply blocks of Puppet code (manifest blocks) that declaratively describe the state of a target on a group of remote nodes from the command line. This lets you manage the state of your resources on a one-off basis on one remote system. Bolt’s apply function is a great way to get started with Puppet code without any prior knowledge of Puppet. Expand and scale this operation across your application stack using a Bolt plan.

plan profiles::nginx_install( TargetSpec $nodes, String $site_content = 'hello!', ) { # Install puppet on the target and gather facts $nodes.apply_prep # Compile the manifest block into a catalog apply($nodes) { package { 'nginx': ensure => present, } file { '/var/www/html/index.html': content => $site_content, ensure => file, } service { 'nginx': ensure => 'running', enable => 'true', require => Package['nginx'], } } }

For an example of how to use a Bolt plan for a masterless install, see this blog post.

Use tasks to discover and take action

The next step in your journey to automation depends on what you want to achieve.

If you want to discover more resources living in your infrastructure, we invite you to try Puppet Discovery™ (which is also agentless and lightweight). This tool allows you to discover your resources and make one-off changes on them using tasks or enforce configuration management on them installing a Puppet agent, and all via the same user interface.

If you just want to have more control over your infrastructure, you can start using Puppet Enterprise running tasks on nodes over SSH and WinRM with RBAC and logging in the console. In this way, you can quickly move from one-off management of the state of your resources to ongoing state management that is more suitable for some use cases — for instance, for security and compliance purposes.

Let us show you what Puppet's solutions can offer you in terms of true IT Automation..

Book a coustomised Puppet Demonstration

Subscribe by Email

No Comments Yet

Let us know what you think