{"id":13518006,"url":"https://github.com/rnelson0/awesome-puppet","last_synced_at":"2026-03-08T12:38:06.092Z","repository":{"id":18625090,"uuid":"21830964","full_name":"rnelson0/awesome-puppet","owner":"rnelson0","description":"A curated list of amazingly awesome puppet resources inspired by @bayandin's awesome-awesomeness.","archived":false,"fork":false,"pushed_at":"2020-05-07T20:07:19.000Z","size":24,"stargazers_count":69,"open_issues_count":2,"forks_count":18,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-12T05:52:39.448Z","etag":null,"topics":["foss","puppet"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rnelson0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-14T18:39:09.000Z","updated_at":"2025-03-04T10:44:31.000Z","dependencies_parsed_at":"2022-09-11T17:13:27.207Z","dependency_job_id":null,"html_url":"https://github.com/rnelson0/awesome-puppet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnelson0%2Fawesome-puppet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnelson0%2Fawesome-puppet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnelson0%2Fawesome-puppet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnelson0%2Fawesome-puppet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rnelson0","download_url":"https://codeload.github.com/rnelson0/awesome-puppet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525156,"owners_count":21118616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["foss","puppet"],"created_at":"2024-08-01T05:01:39.642Z","updated_at":"2026-03-08T12:38:06.034Z","avatar_url":"https://github.com/rnelson0.png","language":null,"readme":"# Awesome Puppet\n\nA curated list of amazingly awesome puppet resources inspired by @bayandin's [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness).\n\nYour pull requests are very welcome! Let's make this the awesomest resource for Puppet!\n\n- [Integrated Development Enviroments](#integrated-development-enviroments)\n- [Documentation](#documentation)\n- [Module Management](#module-management)\n- [Build Tools](#build-tools)\n- [Testing](#testing)\n- [Puppet Tools](#puppet-tools)\n- [Learning Resources](#learning)\n- [Other Awesome Lists](#other-awesome-lists)\n\n## Integrated Development Enviroments\n\n\u003e IDEs and Editors for development\n\n- [Atom](https://github.com/atom/atom) - The hackable editor by GitHub\n  - [Puppet plugin](https://github.com/atom/language-puppet) - The Puppet plugin for Atom\n- [Sublime](http://www.sublimetext.com/) - Non-FOSS text editor for MacOS X\n  - [SublimePuppet](https://github.com/russCloak/SublimePuppet) - Puppet syntax for Sublime\n  - [SublimeLinter Puppet](https://github.com/stopdropandrew/SublimeLinter-puppet-lint) - Sublime Linter plugin for Puppet\n- [Textmate](https://github.com/textmate/textmate) - FOSS text editor for MacOS X\n  - [Puppet Bundle](https://github.com/cburyta/puppet-textmate.tmbundle) - Textmate bundle for Puppet\n- [RubyMine](https://www.jetbrains.com/ruby/) - Code editor for Windows/Mac/Linux (not free or FOSS)\n  - [Puppet language support plugin](https://plugins.jetbrains.com/plugin/7180-puppet-support) - also compatible with other editors\n- [VSCode](https://code.visualstudio.com/download)\n  - [Puppet plugin](https://marketplace.visualstudio.com/items?itemName=jpogran.puppet-vscode) - Puppet syntax, code snippets, PDK integration, etc.\n- [Vim](https://www.vim.org/) - the ubiquitous text editor\n  - [vim-puppet](https://github.com/voxpupuli/vim-puppet) - provides syntax highlighting and other plugins\n\n## Documentation\n\n\u003e Libraries for generating project documentation\n\n- [HereDoc](http://puppet-on-the-edge.blogspot.com/2014/03/heredoc-is-here.html) - HereDoc support for Puppet\n- [puppet-strings](https://puppet.com/blog/using-puppet-strings-generate-great-documentation-puppet-modules) - Current generation documentation from Puppet\n  - [puppetlabs/ntp](https://github.com/puppetlabs/puppetlabs-ntp) - reference module for Strings support\n\n## Module Management\n\n\u003e Libraries for module management\n\n- [Librarian Puppet](http://librarian-puppet.com/) - Flexible module management for your puppet repository\n- [Puppet Blacksmith](https://github.com/voxpupuli/puppet-blacksmith) - Ruby Gem with several Puppet Module utilities used for easily publishing modules to the forge\n- [Hiera-Regex](https://github.com/jjulien/hiera-regex/) - Regex backend for Hiera data.\n- [Modulesync](https://github.com/voxpupuli/modulesync) - Synchronize consistent settings across modules in a user or organization namespace (not PDK compatible).\n  - [modulesync_config reference](https://github.com/rnelson0/puppet-modulesync_config_reference) - Reference modulesync configuration repo.\n- [pdksync](https://github.com/puppetlabs/pdksync) - Use PDK to synchronize multiple module repositories.\n\n\n## Build Tools\n\n\u003e Libraries for building and task running\n\n- [Puppet Lint](https://github.com/rodjek/puppet-lint) Check that your Puppet manifest conform to the style guide\n- [puppet-lint-action](https://github.com/marketplace/actions/puppet-lint-action) GitHub Action for interacting with Puppet Lint\n\n## Testing\n\n\u003e Testing frameworks\n\n- [Rspec Puppet](https://github.com/rodjek/rspec-puppet) RSpec tests for your Puppet Manifests\n  - [rspec-puppet.com](http://rspec-puppet.com) - Official docs\n- [Beaker](https://github.com/puppetlabs/beaker) Puppet acceptance testing harness\n- [Kitchen](https://kitchen.ci/)\n- [Kitchen Puppet](https://github.com/neillturner/kitchen-puppet)\n- [Using kitchen with puppet](http://ehaselwanter.com/en/blog/2014/05/08/using-test-kitchen-with-puppet/)\n- [Onceover](https://github.com/dylanratcliffe/onceover) Repository testing\n\n## Puppet Tools\n\n- [Puppet Bolt](https://github.com/puppetlabs/bolt)  A Ruby command-line tool for executing commands, scripts, and tasks on remote systems using SSH and WinRM. Great for 'ad hoc' task execution. Bolt tasks can be written in any scripting/programming language (Also known as puppet tasks).\n- [Puppet Development Kit](https://puppet.com/docs/pdk/1.x/pdk.html) A toolkit for puppet module developers\n- [puppet-retrospec](https://github.com/nwops/puppet-retrospec) - Generates puppet rspec test code based on the current code inside your module.\n- [puppet-ghostbuster](https://github.com/camptocamp/puppet-ghostbuster) - Finds dead code by displaying unused classes, defined resources, template and files. Requires puppetdb 3+.\n- [puppet-debugger](https://github.com/nwops/puppet-debugger) - A interactive live debugger and REPL for the puppet language\n- [puppet-function-updater](https://github.com/binford2k/puppet-function-updater) - A tool that helps port legacy Puppet functions to the modern Ruby API.\n\n## Control Repositories\n\n\u003e Reference implementations\n\n- [puppetlabs/control-repo](https://github.com/puppetlabs/control-repo) - Official reference architecture from Puppet, based on [Even Besterer Practices](http://garylarizza.com/blog/2015/11/16/workflows-evolved-even-besterer-practices/).\n- [PSICK](https://github.com/example42/psick) A reusable Puppet control repository using many of what are considered best practices.\n- [puppetlabs-education/classroom-control-vf](https://github.com/puppetlabs-education/classroom-control-vf) - A good reference implementation of the control repository, maintained by Puppet's Education group.\n- [puppetinabox/controlrepo](https://github.com/puppetinabox/controlrepo) - Rob Nelson's control repository for his [PuppetInABox project](https://rnelson0.com/2015/01/08/introducing-puppetinabox-bootstrap-a-lab-setup-with-puppet/).\n\n## Learning\n\n\u003e Resources for new puppet users\n\n- [Puppet Learning VM](https://puppet.com/download-learning-vm) A simple VM that gives you a set of challenges to learn puppet by doing.\n- [Puppet Cookbook](http://www.puppetcookbook.com/), a collection of task oriented solutions in Puppet.\n- [YAML for Puppet users?](http://ask.puppetlabs.com/question/19711/yaml-for-puppet-users/) - A combination YAML primer and Guide to Puppet/YAML idiosyncracies.\n- [Introduction to Testing Puppet Modules](https://www.netways.de/fileadmin/images/Events_Trainings/Events/OSDC/2016/Slides_2016/David_Schmitt_-_Introduction_to_Testing_Puppet_Modules.pdf) (and [video](https://www.youtube.com/watch?v=GgNrxLfoDF8)) by [David Schmitt](https://twitter.com/dev_el_ops)\n\n## References\n\n\u003e Active code references representing various design patterns and usage\n\n- [puppetlabs/httpd](https://github.com/puppetlabs/puppetlabs-apache/blob/master/.travis.yml) - Beaker tests in Travis.\n- [Resource API](https://github.com/puppetlabs/puppet-resource_api) - Examples of Types \u0026 Providers.\n- [puppetlabs/java's java_version](https://github.com/puppetlabs/puppetlabs-java/blob/master/spec/unit/facter/java_version_spec.rb) - Writing a custom fact in ruby.\n- [puppetinabox puppet_role fact](https://github.com/puppetinabox/controlrepo/blob/539b2adb474f9028c59565b40fe340a9a59f57e0/dist/profile/lib/facter/puppet_role.rb) and [test](https://github.com/puppetinabox/controlrepo/blob/539b2adb474f9028c59565b40fe340a9a59f57e0/dist/profile/spec/unit/facter/puppet_role_spec.rb) - Testing of a custom fact.\n- [puppetlabs/apache's defined type apache::vhost](https://github.com/puppetlabs/puppetlabs-apache/blob/5d2e65ed3df9d39fb7d99b5948584035f8b662c3/spec/defines/vhost_spec.rb#L4-L6) - Include a dependency (`apache`) during unit testing of another resource (`apache::vhost`).\n- [puppetlabs/apache](https://github.com/puppetlabs/puppetlabs-apache/blob/5d2e65ed3df9d39fb7d99b5948584035f8b662c3/spec/classes/apache_spec.rb#L152-L184) - Testing an ERB template's resulting content\n\n\n## Other Awesome Lists\n\nOther amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list.\n\n## Contributing\n\nYour contributions are always welcome!\n","funding_links":[],"categories":["Technical","Other Lists"],"sub_categories":["awesome-*","TeX Lists"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnelson0%2Fawesome-puppet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frnelson0%2Fawesome-puppet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnelson0%2Fawesome-puppet/lists"}