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.