Files
awesome-awesomeness/html/puppet.html
2025-07-18 23:13:11 +02:00

242 lines
10 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-puppet">Awesome Puppet</h1>
<p>A curated list of amazingly awesome puppet resources inspired by
<span class="citation" data-cites="bayandin">@bayandin</span>s <a
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>.</p>
<p>Your pull requests are very welcome! Lets make this the awesomest
resource for Puppet!</p>
<ul>
<li><a href="#integrated-development-enviroments">Integrated Development
Enviroments</a></li>
<li><a href="#documentation">Documentation</a></li>
<li><a href="#module-management">Module Management</a></li>
<li><a href="#build-tools">Build Tools</a></li>
<li><a href="#testing">Testing</a></li>
<li><a href="#puppet-tools">Puppet Tools</a></li>
<li><a href="#learning">Learning Resources</a></li>
<li><a href="#other-awesome-lists">Other Awesome Lists</a></li>
</ul>
<h2 id="integrated-development-enviroments">Integrated Development
Enviroments</h2>
<blockquote>
<p>IDEs and Editors for development</p>
</blockquote>
<ul>
<li><a href="https://github.com/atom/atom">Atom</a> - The hackable
editor by GitHub
<ul>
<li><a href="https://github.com/atom/language-puppet">Puppet plugin</a>
- The Puppet plugin for Atom</li>
</ul></li>
<li><a href="http://www.sublimetext.com/">Sublime</a> - Non-FOSS text
editor for MacOS X
<ul>
<li><a
href="https://github.com/russCloak/SublimePuppet">SublimePuppet</a> -
Puppet syntax for Sublime</li>
<li><a
href="https://github.com/stopdropandrew/SublimeLinter-puppet-lint">SublimeLinter
Puppet</a> - Sublime Linter plugin for Puppet</li>
</ul></li>
<li><a href="https://github.com/textmate/textmate">Textmate</a> - FOSS
text editor for MacOS X
<ul>
<li><a href="https://github.com/cburyta/puppet-textmate.tmbundle">Puppet
Bundle</a> - Textmate bundle for Puppet</li>
</ul></li>
<li><a href="https://www.jetbrains.com/ruby/">RubyMine</a> - Code editor
for Windows/Mac/Linux (not free or FOSS)
<ul>
<li><a
href="https://plugins.jetbrains.com/plugin/7180-puppet-support">Puppet
language support plugin</a> - also compatible with other editors</li>
</ul></li>
<li><a href="https://code.visualstudio.com/download">VSCode</a>
<ul>
<li><a
href="https://marketplace.visualstudio.com/items?itemName=jpogran.puppet-vscode">Puppet
plugin</a> - Puppet syntax, code snippets, PDK integration, etc.</li>
</ul></li>
<li><a href="https://www.vim.org/">Vim</a> - the ubiquitous text editor
<ul>
<li><a href="https://github.com/voxpupuli/vim-puppet">vim-puppet</a> -
provides syntax highlighting and other plugins</li>
</ul></li>
</ul>
<h2 id="documentation">Documentation</h2>
<blockquote>
<p>Libraries for generating project documentation</p>
</blockquote>
<ul>
<li><a
href="http://puppet-on-the-edge.blogspot.com/2014/03/heredoc-is-here.html">HereDoc</a>
- HereDoc support for Puppet</li>
<li><a
href="https://puppet.com/blog/using-puppet-strings-generate-great-documentation-puppet-modules">puppet-strings</a>
- Current generation documentation from Puppet
<ul>
<li><a
href="https://github.com/puppetlabs/puppetlabs-ntp">puppetlabs/ntp</a> -
reference module for Strings support</li>
</ul></li>
</ul>
<h2 id="module-management">Module Management</h2>
<blockquote>
<p>Libraries for module management</p>
</blockquote>
<ul>
<li><a href="http://librarian-puppet.com/">Librarian Puppet</a> -
Flexible module management for your puppet repository</li>
<li><a href="https://github.com/voxpupuli/puppet-blacksmith">Puppet
Blacksmith</a> - Ruby Gem with several Puppet Module utilities used for
easily publishing modules to the forge</li>
<li><a href="https://github.com/jjulien/hiera-regex/">Hiera-Regex</a> -
Regex backend for Hiera data.</li>
<li><a href="https://github.com/voxpupuli/modulesync">Modulesync</a> -
Synchronize consistent settings across modules in a user or organization
namespace (not PDK compatible).
<ul>
<li><a
href="https://github.com/rnelson0/puppet-modulesync_config_reference">modulesync_config
reference</a> - Reference modulesync configuration repo.</li>
</ul></li>
<li><a href="https://github.com/puppetlabs/pdksync">pdksync</a> - Use
PDK to synchronize multiple module repositories.</li>
</ul>
<h2 id="build-tools">Build Tools</h2>
<blockquote>
<p>Libraries for building and task running</p>
</blockquote>
<ul>
<li><a href="https://github.com/rodjek/puppet-lint">Puppet Lint</a>
Check that your Puppet manifest conform to the style guide</li>
<li><a
href="https://github.com/marketplace/actions/puppet-lint-action">puppet-lint-action</a>
GitHub Action for interacting with Puppet Lint</li>
</ul>
<h2 id="testing">Testing</h2>
<blockquote>
<p>Testing frameworks</p>
</blockquote>
<ul>
<li><a href="https://github.com/rodjek/rspec-puppet">Rspec Puppet</a>
RSpec tests for your Puppet Manifests
<ul>
<li><a href="http://rspec-puppet.com">rspec-puppet.com</a> - Official
docs</li>
</ul></li>
<li><a href="https://github.com/puppetlabs/beaker">Beaker</a> Puppet
acceptance testing harness</li>
<li><a href="https://kitchen.ci/">Kitchen</a></li>
<li><a href="https://github.com/neillturner/kitchen-puppet">Kitchen
Puppet</a></li>
<li><a
href="http://ehaselwanter.com/en/blog/2014/05/08/using-test-kitchen-with-puppet/">Using
kitchen with puppet</a></li>
<li><a href="https://github.com/dylanratcliffe/onceover">Onceover</a>
Repository testing</li>
</ul>
<h2 id="puppet-tools">Puppet Tools</h2>
<ul>
<li><a href="https://github.com/puppetlabs/bolt">Puppet Bolt</a> 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).</li>
<li><a href="https://puppet.com/docs/pdk/1.x/pdk.html">Puppet
Development Kit</a> A toolkit for puppet module developers</li>
<li><a
href="https://github.com/nwops/puppet-retrospec">puppet-retrospec</a> -
Generates puppet rspec test code based on the current code inside your
module.</li>
<li><a
href="https://github.com/camptocamp/puppet-ghostbuster">puppet-ghostbuster</a>
- Finds dead code by displaying unused classes, defined resources,
template and files. Requires puppetdb 3+.</li>
<li><a
href="https://github.com/nwops/puppet-debugger">puppet-debugger</a> - A
interactive live debugger and REPL for the puppet language</li>
<li><a
href="https://github.com/binford2k/puppet-function-updater">puppet-function-updater</a>
- A tool that helps port legacy Puppet functions to the modern Ruby
API.</li>
</ul>
<h2 id="control-repositories">Control Repositories</h2>
<blockquote>
<p>Reference implementations</p>
</blockquote>
<ul>
<li><a
href="https://github.com/puppetlabs/control-repo">puppetlabs/control-repo</a>
- Official reference architecture from Puppet, based on <a
href="http://garylarizza.com/blog/2015/11/16/workflows-evolved-even-besterer-practices/">Even
Besterer Practices</a>.</li>
<li><a href="https://github.com/example42/psick">PSICK</a> A reusable
Puppet control repository using many of what are considered best
practices.</li>
<li><a
href="https://github.com/puppetlabs-education/classroom-control-vf">puppetlabs-education/classroom-control-vf</a>
- A good reference implementation of the control repository, maintained
by Puppets Education group.</li>
<li><a
href="https://github.com/puppetinabox/controlrepo">puppetinabox/controlrepo</a>
- Rob Nelsons control repository for his <a
href="https://rnelson0.com/2015/01/08/introducing-puppetinabox-bootstrap-a-lab-setup-with-puppet/">PuppetInABox
project</a>.</li>
</ul>
<h2 id="learning">Learning</h2>
<blockquote>
<p>Resources for new puppet users</p>
</blockquote>
<ul>
<li><a href="https://puppet.com/download-learning-vm">Puppet Learning
VM</a> A simple VM that gives you a set of challenges to learn puppet by
doing.</li>
<li><a href="http://www.puppetcookbook.com/">Puppet Cookbook</a>, a
collection of task oriented solutions in Puppet.</li>
<li><a
href="http://ask.puppetlabs.com/question/19711/yaml-for-puppet-users/">YAML
for Puppet users?</a> - A combination YAML primer and Guide to
Puppet/YAML idiosyncracies.</li>
<li><a
href="https://www.netways.de/fileadmin/images/Events_Trainings/Events/OSDC/2016/Slides_2016/David_Schmitt_-_Introduction_to_Testing_Puppet_Modules.pdf">Introduction
to Testing Puppet Modules</a> (and <a
href="https://www.youtube.com/watch?v=GgNrxLfoDF8">video</a>) by <a
href="https://twitter.com/dev_el_ops">David Schmitt</a></li>
</ul>
<h2 id="references">References</h2>
<blockquote>
<p>Active code references representing various design patterns and
usage</p>
</blockquote>
<ul>
<li><a
href="https://github.com/puppetlabs/puppetlabs-apache/blob/master/.travis.yml">puppetlabs/httpd</a>
- Beaker tests in Travis.</li>
<li><a href="https://github.com/puppetlabs/puppet-resource_api">Resource
API</a> - Examples of Types &amp; Providers.</li>
<li><a
href="https://github.com/puppetlabs/puppetlabs-java/blob/master/spec/unit/facter/java_version_spec.rb">puppetlabs/javas
java_version</a> - Writing a custom fact in ruby.</li>
<li><a
href="https://github.com/puppetinabox/controlrepo/blob/539b2adb474f9028c59565b40fe340a9a59f57e0/dist/profile/lib/facter/puppet_role.rb">puppetinabox
puppet_role fact</a> and <a
href="https://github.com/puppetinabox/controlrepo/blob/539b2adb474f9028c59565b40fe340a9a59f57e0/dist/profile/spec/unit/facter/puppet_role_spec.rb">test</a>
- Testing of a custom fact.</li>
<li><a
href="https://github.com/puppetlabs/puppetlabs-apache/blob/5d2e65ed3df9d39fb7d99b5948584035f8b662c3/spec/defines/vhost_spec.rb#L4-L6">puppetlabs/apaches
defined type apache::vhost</a> - Include a dependency
(<code>apache</code>) during unit testing of another resource
(<code>apache::vhost</code>).</li>
<li><a
href="https://github.com/puppetlabs/puppetlabs-apache/blob/5d2e65ed3df9d39fb7d99b5948584035f8b662c3/spec/classes/apache_spec.rb#L152-L184">puppetlabs/apache</a>
- Testing an ERB templates resulting content</li>
</ul>
<h2 id="other-awesome-lists">Other Awesome Lists</h2>
<p>Other amazingly awesome lists can be found in the <a
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>
list.</p>
<h2 id="contributing">Contributing</h2>
<p>Your contributions are always welcome!</p>
<p><a href="https://github.com/olindata/awesome-puppet">puppet.md
Github</a></p>