# Extlib module for Puppet [![Build Status](https://travis-ci.org/voxpupuli/puppet-extlib.png?branch=master)](https://travis-ci.org/voxpupuli/puppet-extlib) [![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/extlib.svg)](https://forge.puppetlabs.com/puppet/extlib) [![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/extlib.svg)](https://forge.puppetlabs.com/puppet/extlib) [![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/extlib.svg)](https://forge.puppetlabs.com/puppet/extlib) [![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/extlib.svg)](https://forge.puppetlabs.com/puppet/extlib) ## Table of Contents 1. [Overview](#overview) 1. [Setup - The basics of getting started with extlib](#setup) 1. [Usage - Configuration options and additional functionality](#usage) 1. [Limitations - OS compatibility, etc.](#limitations) 1. [Development - Guide for contributing to the module](#development) ## Overview This module provides functions and facts that are out of scope for [stdlib](https://github.com/puppetlabs/puppetlabs-stdlib). Some of them are even intrinsically tied to stdlib. ## Setup ```console % puppet module install puppet-extlib ``` ## Usage Since `puppet/extlib` version 3, all functions are provided under the `extlib` namespace. Non namespaced versions were removed in version 5. All functions are documented in [REFERENCE.md](REFERENCE.md) ### Facts All facts in this module are namespaced and begin `extlib__`. Facter 4 users can also find all facts under a single `extlib` toplevel structured fact. #### `extlib__puppet_config` (or `extlib['puppet_config']` when using facter 4) A fact to expose puppet.conf settings. These are resolved on the agent, (unlike `$settings::` which is resolved on the puppet master). The following sections/settings are included. ``` { main => { hostpubkey, hostprivkey, hostcert, localcacert, ssldir, vardir, server, }, master => { localcacert, ssldir, } } ``` ## Limitations Some functions require puppetlabs-stdlib (>= 4.6.0) and all functions are only compatible with Puppet 4.7 and later. ## Development We highly welcome new contributions to this module, especially those that include documentation, and rspec tests ;) but will happily guide you through the process, so, yes, please submit that pull request! Reference documentation is generated using puppet-strings. To regenerate it, please run the rake task as follows. ```console bundle exec rake reference ```