Puppet with Windows

Using Puppet on Windows workstations can be a challenge. The different architectures (x86 and x86_64) can have an impact on declaring packages. I have decided to ignore 32 bit systems and treat all as 64 bit – after all, it is 2016 and 32 bit should not be deployed.

Since everything is stored in the registry (and I am no registry expert), I find myself first making a change in the GPO, searching for the change in the registry, and converting what I found to Puppet manifests. There are a few modules that also help with local policy settings.

I have my Windows workstations checking in to Puppet every hour as it is not critical for them to be in-sync as often as multi-user servers.

I have found PuppetDB to be a great alternative to inventory software. The modules to get it in that state are:

ody/pkginventory (using my pull request for Windows support)
jhaals/warranty

Several other modules help Windows become easier to manage – they are:

puppetlabs/registry
chocolatey/chocolatey
puppetlabs/powershell
ayohrling/local_security_policy
https://github.com/Puppet-Finland/local_group_policy

My roles::workstation manifest includes the base profile, an anti-virus software install, company-wide fonts, and a few key utilities I like to use on customer computers – Defraggler, LibreOffice, and DelProf2. Being that it is Puppet, I can deploy either exe, msi, or Chocolatey packages to computers.