homeblogpuppet works on windows yes it does

Puppet Works on Windows? Yes, it Does

Editor's note: This blog post was updated on March 16, 2015, to reflect the fact that Gabe had already given his talk.

I'm Gabe. I'm a member of the professional services team here at Puppet Labs. In my teaching and consulting engagements, I've seen all sorts of systems puppetized, but when I mention that some of the deployments I've worked on are in Windows-only shops, folks are frequently surprised.

"That works?"

Yes! It works. And on March 14, that's exactly what I'll be talking I talked about at the Cascadia IT Summit in Seattle. I hope you can make were able to make the talk — there's nothing like seeing live demos — but if you can't didn't make it in person, the slides are on GitHub.

Puppet happily manages the same basic resource types in Windows as it does on other operating systems. After all, the whole point of Puppet's Resource Abstraction Layer is that you can model your desired state in an OS-agnostic way. As long as there's a provider, Puppet can manage that resource. And there are Windows providers for all the basic types.

At the end of the day, operating systems all manage similar resources, such as files, processes, and users. It's just that on Windows, the providers for some common resources just plain have to differ, because we think about some resources differently on Windows than on other platforms. Here are links to some of the most important differences:

On the flip side, there are some resources and providers that are unique to Windows — UNIX-based systems just don't have them. I'll demo I demoed some of the important ones at my talk. Here are several Windows-specific Puppet modules, freely available on the Puppet Forge (and fully supported for Puppet Enterprise customers):

  • We often need to edit the Registry to configure a system.
  • We can execute object-oriented PowerShell commands and scripts.
  • We sometimes want to reboot between or after configuration changes.

Then I'm going to finish up I finished up with a look at some great Windows-specific modules on the Puppet Forge. There's no sense reinventing the wheel! Plenty of Windows admins aren't just puppetizing their environments — they're sharing the code that they wrote to do it. (And you should too.)

Puppetizing Windows isn't as tricky as folks seem to expect. You'll need to keep an eye on differences in the core resource types. You'll want to make full use of Windows-only features like the Registry and PowerShell. And you'll find that the Forge is a great resource for existing code, so that you don't have to go it alone.

Let's get started!

Gabe Schuyler is a professional services engineer at Puppet Labs.

Learn more