Working With Puppet

Moving on to some new challenges, I had to face the reality that some of my skills and operating procedures were dated. In this brave new era of Cloud-everything – which is really a simple way of saying software defined – what’s really nice is how disposable everything is. It is possible to get a new server instance very quickly and if you “recycle” an existing one DNS propagation is a non-issue and you can literally refresh a server in minutes. Many times you could redeploy a fresh server and your application faster than you could trouble shoot it.

That said, this automagic configuration is not free.

While it is possible to make great documentation and checklists the real magic is in good configuration management so that all of the most important and highly configurable bits are lined up the same way, every time, all the time so that system behavior can be predictable.

In any case, I am using Windows as my development platform and while Puppet supports Windows as a management platform clearly the development environment they have in mind is POSIX based. I was able to find a spot on article that let me get up and going with a very functional setup.

https://www.devopsfu.com/2015/07/14/slinging-puppet-code-on-windows/

Just in case that article goes away for some reason, I want to archive what is needed.

Software needed:

  • Atom (Packages Follow)
    • atom-alignment
    • language-puppet
    • language-yaml
    • linter
    • linter-puppet-lint
    • linter-js-yml
  • Ruby for Windows (gems Follow)
    • puppet-lint
    • hiera
    • deep_merge
    • win32-dir
  • Node.js for windows (Packages Follow)
    • js-yaml

Of course you should use git along with Atom to keep your changes sane and facilitate deployment to your managed environments.

Puppet has been invaluable to me and I appreciate how much information there is available on how to do it.  The linked article helped me keep moving when I was a little lost, I am very grateful they took the time to publish it.

Leave a Reply

Your email address will not be published. Required fields are marked *