[38;5;12m                                                                                                               [39m[38;2;255;187;0m[1m[4mAwesome Puppet[0m

[38;5;12mA curated list of amazingly awesome puppet resources inspired by @bayandin's [39m[38;5;14m[1mawesome-awesomeness[0m[38;5;12m (https://github.com/bayandin/awesome-awesomeness).[39m

[38;5;12mYour pull requests are very welcome! Let's make this the awesomest resource for Puppet![39m

[38;5;12m- [39m[38;5;14m[1mIntegrated Development Enviroments[0m[38;5;12m (#integrated-development-enviroments)[39m
[38;5;12m- [39m[38;5;14m[1mDocumentation[0m[38;5;12m (#documentation)[39m
[38;5;12m- [39m[38;5;14m[1mModule Management[0m[38;5;12m (#module-management)[39m
[38;5;12m- [39m[38;5;14m[1mBuild Tools[0m[38;5;12m (#build-tools)[39m
[38;5;12m- [39m[38;5;14m[1mTesting[0m[38;5;12m (#testing)[39m
[38;5;12m- [39m[38;5;14m[1mPuppet Tools[0m[38;5;12m (#puppet-tools)[39m
[38;5;12m- [39m[38;5;14m[1mLearning Resources[0m[38;5;12m (#learning)[39m
[38;5;12m- [39m[38;5;14m[1mOther Awesome Lists[0m[38;5;12m (#other-awesome-lists)[39m

[38;2;255;187;0m[4mIntegrated Development Enviroments[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mIDEs and Editors for development[39m

[38;5;12m- [39m[38;5;14m[1mAtom[0m[38;5;12m (https://github.com/atom/atom) - The hackable editor by GitHub[39m
[38;5;12m  - [39m[38;5;14m[1mPuppet plugin[0m[38;5;12m (https://github.com/atom/language-puppet) - The Puppet plugin for Atom[39m
[38;5;12m- [39m[38;5;14m[1mSublime[0m[38;5;12m (http://www.sublimetext.com/) - Non-FOSS text editor for MacOS X[39m
[38;5;12m  - [39m[38;5;14m[1mSublimePuppet[0m[38;5;12m (https://github.com/russCloak/SublimePuppet) - Puppet syntax for Sublime[39m
[38;5;12m  - [39m[38;5;14m[1mSublimeLinter Puppet[0m[38;5;12m (https://github.com/stopdropandrew/SublimeLinter-puppet-lint) - Sublime Linter plugin for Puppet[39m
[38;5;12m- [39m[38;5;14m[1mTextmate[0m[38;5;12m (https://github.com/textmate/textmate) - FOSS text editor for MacOS X[39m
[38;5;12m  - [39m[38;5;14m[1mPuppet Bundle[0m[38;5;12m (https://github.com/cburyta/puppet-textmate.tmbundle) - Textmate bundle for Puppet[39m
[38;5;12m- [39m[38;5;14m[1mRubyMine[0m[38;5;12m (https://www.jetbrains.com/ruby/) - Code editor for Windows/Mac/Linux (not free or FOSS)[39m
[38;5;12m  - [39m[38;5;14m[1mPuppet language support plugin[0m[38;5;12m (https://plugins.jetbrains.com/plugin/7180-puppet-support) - also compatible with other editors[39m
[38;5;12m- [39m[38;5;14m[1mVSCode[0m[38;5;12m (https://code.visualstudio.com/download)[39m
[38;5;12m  - [39m[38;5;14m[1mPuppet plugin[0m[38;5;12m (https://marketplace.visualstudio.com/items?itemName=jpogran.puppet-vscode) - Puppet syntax, code snippets, PDK integration, etc.[39m
[38;5;12m- [39m[38;5;14m[1mVim[0m[38;5;12m (https://www.vim.org/) - the ubiquitous text editor[39m
[38;5;12m  - [39m[38;5;14m[1mvim-puppet[0m[38;5;12m (https://github.com/voxpupuli/vim-puppet) - provides syntax highlighting and other plugins[39m

[38;2;255;187;0m[4mDocumentation[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mLibraries for generating project documentation[39m

[38;5;12m- [39m[38;5;14m[1mHereDoc[0m[38;5;12m (http://puppet-on-the-edge.blogspot.com/2014/03/heredoc-is-here.html) - HereDoc support for Puppet[39m
[38;5;12m- [39m[38;5;14m[1mpuppet-strings[0m[38;5;12m (https://puppet.com/blog/using-puppet-strings-generate-great-documentation-puppet-modules) - Current generation documentation from Puppet[39m
[38;5;12m  - [39m[38;5;14m[1mpuppetlabs/ntp[0m[38;5;12m (https://github.com/puppetlabs/puppetlabs-ntp) - reference module for Strings support[39m

[38;2;255;187;0m[4mModule Management[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mLibraries for module management[39m

[38;5;12m- [39m[38;5;14m[1mLibrarian Puppet[0m[38;5;12m (http://librarian-puppet.com/) - Flexible module management for your puppet repository[39m
[38;5;12m- [39m[38;5;14m[1mPuppet Blacksmith[0m[38;5;12m (https://github.com/voxpupuli/puppet-blacksmith) - Ruby Gem with several Puppet Module utilities used for easily publishing modules to the forge[39m
[38;5;12m- [39m[38;5;14m[1mHiera-Regex[0m[38;5;12m (https://github.com/jjulien/hiera-regex/) - Regex backend for Hiera data.[39m
[38;5;12m- [39m[38;5;14m[1mModulesync[0m[38;5;12m (https://github.com/voxpupuli/modulesync) - Synchronize consistent settings across modules in a user or organization namespace (not PDK compatible).[39m
[38;5;12m  - [39m[38;5;14m[1mmodulesync_config reference[0m[38;5;12m (https://github.com/rnelson0/puppet-modulesync_config_reference) - Reference modulesync configuration repo.[39m
[38;5;12m- [39m[38;5;14m[1mpdksync[0m[38;5;12m (https://github.com/puppetlabs/pdksync) - Use PDK to synchronize multiple module repositories.[39m


[38;2;255;187;0m[4mBuild Tools[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mLibraries for building and task running[39m

[38;5;12m- [39m[38;5;14m[1mPuppet Lint[0m[38;5;12m (https://github.com/rodjek/puppet-lint) Check that your Puppet manifest conform to the style guide[39m
[38;5;12m- [39m[38;5;14m[1mpuppet-lint-action[0m[38;5;12m (https://github.com/marketplace/actions/puppet-lint-action) GitHub Action for interacting with Puppet Lint[39m

[38;2;255;187;0m[4mTesting[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mTesting frameworks[39m

[38;5;12m- [39m[38;5;14m[1mRspec Puppet[0m[38;5;12m (https://github.com/rodjek/rspec-puppet) RSpec tests for your Puppet Manifests[39m
[38;5;12m  - [39m[38;5;14m[1mrspec-puppet.com[0m[38;5;12m (http://rspec-puppet.com) - Official docs[39m
[38;5;12m- [39m[38;5;14m[1mBeaker[0m[38;5;12m (https://github.com/puppetlabs/beaker) Puppet acceptance testing harness[39m
[38;5;12m- [39m[38;5;14m[1mKitchen[0m[38;5;12m (https://kitchen.ci/)[39m
[38;5;12m- [39m[38;5;14m[1mKitchen Puppet[0m[38;5;12m (https://github.com/neillturner/kitchen-puppet)[39m
[38;5;12m- [39m[38;5;14m[1mUsing kitchen with puppet[0m[38;5;12m (http://ehaselwanter.com/en/blog/2014/05/08/using-test-kitchen-with-puppet/)[39m
[38;5;12m- [39m[38;5;14m[1mOnceover[0m[38;5;12m (https://github.com/dylanratcliffe/onceover) Repository testing[39m

[38;2;255;187;0m[4mPuppet Tools[0m

[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPuppet[0m[38;5;14m[1m [0m[38;5;14m[1mBolt[0m[38;5;12m [39m[38;5;12m(https://github.com/puppetlabs/bolt)[39m[38;5;12m  [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mRuby[39m[38;5;12m [39m[38;5;12mcommand-line[39m[38;5;12m [39m[38;5;12mtool[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mexecuting[39m[38;5;12m [39m[38;5;12mcommands,[39m[38;5;12m [39m[38;5;12mscripts,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtasks[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mremote[39m[38;5;12m [39m[38;5;12msystems[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mSSH[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mWinRM.[39m[38;5;12m [39m[38;5;12mGreat[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12m'ad[39m[38;5;12m [39m[38;5;12mhoc'[39m[38;5;12m [39m[38;5;12mtask[39m[38;5;12m [39m[38;5;12mexecution.[39m[38;5;12m [39m[38;5;12mBolt[39m[38;5;12m [39m[38;5;12mtasks[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwritten[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m
[38;5;12mscripting/programming[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12m(Also[39m[38;5;12m [39m[38;5;12mknown[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mpuppet[39m[38;5;12m [39m[38;5;12mtasks).[39m
[38;5;12m- [39m[38;5;14m[1mPuppet Development Kit[0m[38;5;12m (https://puppet.com/docs/pdk/1.x/pdk.html) A toolkit for puppet module developers[39m
[38;5;12m- [39m[38;5;14m[1mpuppet-retrospec[0m[38;5;12m (https://github.com/nwops/puppet-retrospec) - Generates puppet rspec test code based on the current code inside your module.[39m
[38;5;12m- [39m[38;5;14m[1mpuppet-ghostbuster[0m[38;5;12m (https://github.com/camptocamp/puppet-ghostbuster) - Finds dead code by displaying unused classes, defined resources, template and files. Requires puppetdb 3+.[39m
[38;5;12m- [39m[38;5;14m[1mpuppet-debugger[0m[38;5;12m (https://github.com/nwops/puppet-debugger) - A interactive live debugger and REPL for the puppet language[39m
[38;5;12m- [39m[38;5;14m[1mpuppet-function-updater[0m[38;5;12m (https://github.com/binford2k/puppet-function-updater) - A tool that helps port legacy Puppet functions to the modern Ruby API.[39m

[38;2;255;187;0m[4mControl Repositories[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mReference implementations[39m

[38;5;12m- [39m[38;5;14m[1mpuppetlabs/control-repo[0m[38;5;12m (https://github.com/puppetlabs/control-repo) - Official reference architecture from Puppet, based on [39m[38;5;14m[1mEven Besterer Practices[0m[38;5;12m (http://garylarizza.com/blog/2015/11/16/workflows-evolved-even-besterer-practices/).[39m
[38;5;12m- [39m[38;5;14m[1mPSICK[0m[38;5;12m (https://github.com/example42/psick) A reusable Puppet control repository using many of what are considered best practices.[39m
[38;5;12m- [39m[38;5;14m[1mpuppetlabs-education/classroom-control-vf[0m[38;5;12m (https://github.com/puppetlabs-education/classroom-control-vf) - A good reference implementation of the control repository, maintained by Puppet's Education group.[39m
[38;5;12m- [39m[38;5;14m[1mpuppetinabox/controlrepo[0m[38;5;12m (https://github.com/puppetinabox/controlrepo) - Rob Nelson's control repository for his [39m[38;5;14m[1mPuppetInABox project[0m[38;5;12m (https://rnelson0.com/2015/01/08/introducing-puppetinabox-bootstrap-a-lab-setup-with-puppet/).[39m

[38;2;255;187;0m[4mLearning[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mResources for new puppet users[39m

[38;5;12m- [39m[38;5;14m[1mPuppet Learning VM[0m[38;5;12m (https://puppet.com/download-learning-vm) A simple VM that gives you a set of challenges to learn puppet by doing.[39m
[38;5;12m- [39m[38;5;14m[1mPuppet Cookbook[0m[38;5;12m (http://www.puppetcookbook.com/), a collection of task oriented solutions in Puppet.[39m
[38;5;12m- [39m[38;5;14m[1mYAML for Puppet users?[0m[38;5;12m (http://ask.puppetlabs.com/question/19711/yaml-for-puppet-users/) - A combination YAML primer and Guide to Puppet/YAML idiosyncracies.[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mIntroduction[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mTesting[0m[38;5;14m[1m [0m[38;5;14m[1mPuppet[0m[38;5;14m[1m [0m[38;5;14m[1mModules[0m[38;5;12m [39m[38;5;12m(https://www.netways.de/fileadmin/images/Events_Trainings/Events/OSDC/2016/Slides_2016/David_Schmitt_-_Introduction_to_Testing_Puppet_Modules.pdf)[39m[38;5;12m [39m[38;5;12m(and[39m[38;5;12m [39m[38;5;14m[1mvideo[0m[38;5;12m [39m
[38;5;12m(https://www.youtube.com/watch?v=GgNrxLfoDF8))[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;14m[1mDavid[0m[38;5;14m[1m [0m[38;5;14m[1mSchmitt[0m[38;5;12m [39m[38;5;12m(https://twitter.com/dev_el_ops)[39m

[38;2;255;187;0m[4mReferences[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mActive code references representing various design patterns and usage[39m

[38;5;12m- [39m[38;5;14m[1mpuppetlabs/httpd[0m[38;5;12m (https://github.com/puppetlabs/puppetlabs-apache/blob/master/.travis.yml) - Beaker tests in Travis.[39m
[38;5;12m- [39m[38;5;14m[1mResource API[0m[38;5;12m (https://github.com/puppetlabs/puppet-resource_api) - Examples of Types & Providers.[39m
[38;5;12m- [39m[38;5;14m[1mpuppetlabs/java's java_version[0m[38;5;12m (https://github.com/puppetlabs/puppetlabs-java/blob/master/spec/unit/facter/java_version_spec.rb) - Writing a custom fact in ruby.[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mpuppetinabox[0m[38;5;14m[1m [0m[38;5;14m[1mpuppet_role[0m[38;5;14m[1m [0m[38;5;14m[1mfact[0m[38;5;12m [39m[38;5;12m(https://github.com/puppetinabox/controlrepo/blob/539b2adb474f9028c59565b40fe340a9a59f57e0/dist/profile/lib/facter/puppet_role.rb)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mtest[0m[38;5;12m [39m
[38;5;12m(https://github.com/puppetinabox/controlrepo/blob/539b2adb474f9028c59565b40fe340a9a59f57e0/dist/profile/spec/unit/facter/puppet_role_spec.rb)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mTesting[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcustom[39m[38;5;12m [39m[38;5;12mfact.[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mpuppetlabs/apache's[0m[38;5;14m[1m [0m[38;5;14m[1mdefined[0m[38;5;14m[1m [0m[38;5;14m[1mtype[0m[38;5;14m[1m [0m[38;5;14m[1mapache::vhost[0m[38;5;12m [39m[38;5;12m(https://github.com/puppetlabs/puppetlabs-apache/blob/5d2e65ed3df9d39fb7d99b5948584035f8b662c3/spec/defines/vhost_spec.rb#L4-L6)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mInclude[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdependency[39m[38;5;12m [39m[38;5;12m([39m[48;5;235m[38;5;249mapache[49m[39m[38;5;12m)[39m[38;5;12m [39m[38;5;12mduring[39m[38;5;12m [39m[38;5;12munit[39m[38;5;12m [39m[38;5;12mtesting[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m
[38;5;12manother[39m[38;5;12m [39m[38;5;12mresource[39m[38;5;12m [39m[38;5;12m([39m[48;5;235m[38;5;249mapache::vhost[49m[39m[38;5;12m).[39m
[38;5;12m- [39m[38;5;14m[1mpuppetlabs/apache[0m[38;5;12m (https://github.com/puppetlabs/puppetlabs-apache/blob/5d2e65ed3df9d39fb7d99b5948584035f8b662c3/spec/classes/apache_spec.rb#L152-L184) - Testing an ERB template's resulting content[39m


[38;2;255;187;0m[4mOther Awesome Lists[0m

[38;5;12mOther amazingly awesome lists can be found in the [39m[38;5;14m[1mawesome-awesomeness[0m[38;5;12m (https://github.com/bayandin/awesome-awesomeness) list.[39m

[38;2;255;187;0m[4mContributing[0m

[38;5;12mYour contributions are always welcome![39m
