summaryrefslogtreecommitdiff
path: root/README.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'README.markdown')
-rw-r--r--README.markdown308
1 files changed, 265 insertions, 43 deletions
diff --git a/README.markdown b/README.markdown
index c58d31f..0efaf16 100644
--- a/README.markdown
+++ b/README.markdown
@@ -28,9 +28,11 @@ older versions of Puppet Enterprise that Puppet Labs still supports will have
bugfix maintenance branches periodically "merged up" into master. The current
list of integration branches are:
- * v2.1.x (v2.1.1 released in PE 1.2, 1.2.1, 1.2.3, 1.2.4)
+ * v2.1.x (v2.1.1 released in PE 1)
* v2.2.x (Never released as part of PE, only to the Forge)
- * v2.3.x (Released in PE 2.5.x)
+ * v2.3.x (Released in PE 2)
+ * v3.0.x (Never released as part of PE, only to the Forge)
+ * v4.0.x (Drops support for Puppet 2.7)
* master (mainline development branch)
The first Puppet Enterprise version including the stdlib module is Puppet
@@ -38,6 +40,12 @@ Enterprise 1.2.
# Compatibility #
+Puppet Versions | < 2.6 | 2.6 | 2.7 | 3.x |
+:---------------|:-----:|:---:|:---:|:----:
+**stdlib 2.x** | no | **yes** | **yes** | no
+**stdlib 3.x** | no | no | **yes** | **yes**
+**stdlib 4.x** | no | no | no | **yes**
+
The stdlib module does not work with Puppet versions released prior to Puppet
2.6.0.
@@ -50,12 +58,27 @@ All stdlib releases in the 2.0 major version support Puppet 2.6 and Puppet 2.7.
The 3.0 major release of stdlib drops support for Puppet 2.6. Stdlib 3.x
supports Puppet 2 and Puppet 3.
+## stdlib 4.x ##
+
+The 4.0 major release of stdlib drops support for Puppet 2.7. Stdlib 4.x
+supports Puppet 3. Notably, ruby 1.8.5 is no longer supported though ruby
+1.8.7, 1.9.3, and 2.0.0 are fully supported.
+
# Functions #
abs
---
-Returns the absolute value of a number, for example -34.56 becomes 34.56. Takes
-a single integer and float value as an argument.
+Returns the absolute value of a number, for example -34.56 becomes
+34.56. Takes a single integer and float value as an argument.
+
+
+- *Type*: rvalue
+
+any2array
+---------
+This converts any object to an array containing that object. Empty argument
+lists are converted to an empty array. Arrays are left untouched. Hashes are
+converted to arrays of alternating keys and values.
- *Type*: rvalue
@@ -80,9 +103,9 @@ Requires either a single string or an array as an input.
chomp
-----
-Removes the record separator from the end of a string or an array of strings,
-for example `hello\n` becomes `hello`. Requires a single string or array as an
-input.
+Removes the record separator from the end of a string or an array of
+strings, for example `hello\n` becomes `hello`.
+Requires a single string or array as an input.
- *Type*: rvalue
@@ -99,8 +122,25 @@ Requires a string or array of strings as input.
- *Type*: rvalue
concat
+------
+Appends the contents of array 2 onto array 1.
+
+*Example:*
+
+ concat(['1','2','3'],['4','5','6'])
+
+Would result in:
+
+ ['1','2','3','4','5','6']
+
+
+- *Type*: rvalue
+
+count
-----
-Appends the contents of the second array onto the first array.
+Takes an array as first argument and an optional second argument.
+Count the number of elements in array that matches second argument.
+If called with only an array it counts the number of elements that are not nil/undef.
- *Type*: rvalue
@@ -125,13 +165,19 @@ to the catalog, and false otherwise.
delete
------
-Deletes a selected element from an array.
+Deletes all instances of a given element from an array, substring from a
+string, or key from a hash.
*Examples:*
- delete(['a','b','c'], 'b')
+ delete(['a','b','c','b'], 'b')
+ Would return: ['a','c']
-Would return: ['a','c']
+ delete({'a'=>1,'b'=>2,'c'=>3}, 'b')
+ Would return: {'a'=>1,'c'=>3}
+
+ delete('abracadabra', 'bra')
+ Would return: 'acada'
- *Type*: rvalue
@@ -163,6 +209,13 @@ Returns true if the variable is empty.
- *Type*: rvalue
+ensure_packages
+---------------
+Takes a list of packages and only installs them if they don't already exist.
+
+
+- *Type*: statement
+
ensure_resource
---------------
Takes a resource type, title, and a list of attributes that describe a
@@ -198,6 +251,14 @@ Would return: ['a','b','c']
- *Type*: rvalue
+floor
+-----
+Returns the largest integer less or equal to the argument.
+Takes a single numeric value as an argument.
+
+
+- *Type*: rvalue
+
fqdn_rotate
-----------
Rotates an array a random number of times based on a nodes fqdn.
@@ -218,11 +279,10 @@ Example:
getparam
--------
+Takes a resource reference and name of the parameter and
+returns value of resource's parameter.
-Takes a resource reference and name of the parameter and returns
-value of resource's parameter.
-
-For example:
+*Examples:*
define example_resource($param) {
}
@@ -233,6 +293,9 @@ For example:
getparam(Example_resource["example_resource_instance"], "param")
+Would return: param_value
+
+
- *Type*: rvalue
getvar
@@ -269,6 +332,44 @@ Would return:
- *Type*: rvalue
+has_interface_with
+------------------
+Returns boolean based on kind and value:
+* macaddress
+* netmask
+* ipaddress
+* network
+
+has_interface_with("macaddress", "x:x:x:x:x:x")
+has_interface_with("ipaddress", "127.0.0.1") => true
+etc.
+
+If no "kind" is given, then the presence of the interface is checked:
+has_interface_with("lo") => true
+
+
+- *Type*: rvalue
+
+has_ip_address
+--------------
+Returns true if the client has the requested IP address on some interface.
+
+This function iterates through the 'interfaces' fact and checks the
+'ipaddress_IFACE' facts, performing a simple string comparison.
+
+
+- *Type*: rvalue
+
+has_ip_network
+--------------
+Returns true if the client has an IP address within the requested network.
+
+This function iterates through the 'interfaces' fact and checks the
+'network_IFACE' facts, performing a simple string comparision.
+
+
+- *Type*: rvalue
+
has_key
-------
Determine if a hash has a certain key value.
@@ -304,20 +405,25 @@ is_array
--------
Returns true if the variable passed to this function is an array.
-
- *Type*: rvalue
is_domain_name
--------------
Returns true if the string passed to this function is a syntactically correct domain name.
-
- *Type*: rvalue
is_float
--------
Returns true if the variable passed to this function is a float.
+- *Type*: rvalue
+
+is_function_available
+---------------------
+This function accepts a string as an argument, determines whether the
+Puppet runtime has access to a function by that name. It returns a
+true if the function exists, false if not.
- *Type*: rvalue
@@ -325,42 +431,36 @@ is_hash
-------
Returns true if the variable passed to this function is a hash.
-
- *Type*: rvalue
is_integer
----------
Returns true if the variable returned to this string is an integer.
-
- *Type*: rvalue
is_ip_address
-------------
Returns true if the string passed to this function is a valid IP address.
-
- *Type*: rvalue
is_mac_address
--------------
Returns true if the string passed to this function is a valid mac address.
-
- *Type*: rvalue
is_numeric
----------
Returns true if the variable passed to this function is a number.
-
- *Type*: rvalue
is_string
---------
Returns true if the variable passed to this function is a string.
-
- *Type*: rvalue
join
@@ -373,6 +473,19 @@ This function joins an array into a string using a seperator.
Would result in: "a,b,c"
+- *Type*: rvalue
+
+join_keys_to_values
+-------------------
+This function joins each key of a hash to that key's corresponding value with a
+separator. Keys and values are cast to strings. The return value is an array in
+which each element is one joined key/value pair.
+
+*Examples:*
+
+ join_keys_to_values({'a'=>1,'b'=>2}, " is ")
+
+Would result in: ["a is 1","b is 2"]
- *Type*: rvalue
@@ -380,7 +493,6 @@ keys
----
Returns the keys of a hash as an array.
-
- *Type*: rvalue
loadyaml
@@ -399,6 +511,12 @@ lstrip
------
Strips leading spaces to the left of a string.
+- *Type*: rvalue
+
+max
+---
+Returns the highest value of all arguments.
+Requires at least one argument.
- *Type*: rvalue
@@ -416,7 +534,6 @@ Would return: true
Would return: false
-
- *Type*: rvalue
merge
@@ -433,15 +550,20 @@ For example:
When there is a duplicate key, the key in the rightmost hash will "win."
+- *Type*: rvalue
+min
+---
+Returns the lowest value of all arguments.
+Requires at least one argument.
- *Type*: rvalue
num2bool
--------
-This function converts a number into a true boolean. Zero becomes false. Numbers
-higher then 0 become true.
-
+This function converts a number or a string representation of a number into a
+true boolean. Zero or anything non-numeric becomes false. Numbers higher then 0
+become true.
- *Type*: rvalue
@@ -450,7 +572,6 @@ parsejson
This function accepts JSON as a string and converts into the correct Puppet
structure.
-
- *Type*: rvalue
parseyaml
@@ -458,6 +579,22 @@ parseyaml
This function accepts YAML as a string and converts it into the correct
Puppet structure.
+- *Type*: rvalue
+
+pick
+----
+This function is similar to a coalesce function in SQL in that it will return
+the first value in a list of values that is not undefined or an empty string
+(two things in Puppet that will return a boolean false value). Typically,
+this function is used to check for a value in the Puppet Dashboard/Enterprise
+Console, and failover to a default value like the following:
+
+ $real_jenkins_version = pick($::jenkins_version, '1.449')
+
+The value of $real_jenkins_version will first look for a top-scope variable
+called 'jenkins_version' (note that parameters set in the Puppet Dashboard/
+Enterprise Console are brought into Puppet as top-scope variables), and,
+failing that, will use a default value of 1.449.
- *Type*: rvalue
@@ -465,13 +602,12 @@ prefix
------
This function applies a prefix to all elements in an array.
-*Examles:*
+*Examples:*
prefix(['a','b','c'], 'p')
Will return: ['pa','pb','pc']
-
- *Type*: rvalue
range
@@ -498,6 +634,21 @@ Will return: ["a","b","c"]
Will return: ["host01", "host02", ..., "host09", "host10"]
+- *Type*: rvalue
+
+reject
+------
+This function searches through an array and rejects all elements that match
+the provided regular expression.
+
+*Examples:*
+
+ reject(['aaa','bbb','ccc','aaaddd'], 'aaa')
+
+Would return:
+
+ ['bbb','ccc']
+
- *Type*: rvalue
@@ -505,35 +656,30 @@ reverse
-------
Reverses the order of a string or array.
-
- *Type*: rvalue
rstrip
------
Strips leading spaces to the right of the string.
-
- *Type*: rvalue
shuffle
-------
Randomizes the order of a string or array elements.
-
- *Type*: rvalue
size
----
Returns the number of elements in a string or array.
-
- *Type*: rvalue
sort
----
Sorts strings and arrays lexically.
-
- *Type*: rvalue
squeeze
@@ -541,7 +687,6 @@ squeeze
Returns a new string where runs of the same character that occur in this set
are replaced by a single character.
-
- *Type*: rvalue
str2bool
@@ -555,10 +700,10 @@ like: 0, f, n, false, no to 'false'.
str2saltedsha512
----------------
-This converts a string to a salted-SHA512 password hash (which is used for OS X
-versions >= 10.7). Given any simple string, you will get a hex version of a
-salted-SHA512 password hash that can be inserted into your Puppet manifests as
-a valid password attribute.
+This converts a string to a salted-SHA512 password hash (which is used for
+OS X versions >= 10.7). Given any simple string, you will get a hex version
+of a salted-SHA512 password hash that can be inserted into your Puppet
+manifests as a valid password attribute.
- *Type*: rvalue
@@ -647,6 +792,19 @@ Would result in: "aaa"
- *Type*: rvalue
+suffix
+------
+This function applies a suffix to all elements in an array.
+
+*Examples:*
+
+ suffix(['a','b','c'], 'p')
+
+Will return: ['ap','bp','cp']
+
+
+- *Type*: rvalue
+
swapcase
--------
This function will swap the existing case of a string.
@@ -728,7 +886,15 @@ Converts a string or an array of strings to uppercase.
Will return:
- ABCD
+ ASDF
+
+
+- *Type*: rvalue
+
+uriescape
+---------
+Urlencodes a string or array of strings.
+Requires either a single string or an array as an input.
- *Type*: rvalue
@@ -779,6 +945,39 @@ The following values will fail, causing compilation to abort:
- *Type*: statement
+validate_augeas
+---------------
+Perform validation of a string using an Augeas lens
+The first argument of this function should be a string to
+test, and the second argument should be the name of the Augeas lens to use.
+If Augeas fails to parse the string with the lens, the compilation will
+abort with a parse error.
+
+A third argument can be specified, listing paths which should
+not be found in the file. The `$file` variable points to the location
+of the temporary file being tested in the Augeas tree.
+
+For example, if you want to make sure your passwd content never contains
+a user `foo`, you could write:
+
+ validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo'])
+
+Or if you wanted to ensure that no users used the '/bin/barsh' shell,
+you could use:
+
+ validate_augeas($passwdcontent, 'Passwd.lns', ['$file/*[shell="/bin/barsh"]']
+
+If a fourth argument is specified, this will be the error message raised and
+seen by the user.
+
+A helpful error message can be returned like this:
+
+ validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas')
+
+
+
+- *Type*: statement
+
validate_bool
-------------
Validate that all passed values are either true or false. Abort catalog
@@ -801,6 +1000,28 @@ The following values will fail, causing compilation to abort:
- *Type*: statement
+validate_cmd
+------------
+Perform validation of a string with an external command.
+The first argument of this function should be a string to
+test, and the second argument should be a path to a test command
+taking a file as last argument. If the command, launched against
+a tempfile containing the passed string, returns a non-null value,
+compilation will abort with a parse error.
+
+If a third argument is specified, this will be the error message raised and
+seen by the user.
+
+A helpful error message can be returned like this:
+
+Example:
+
+ validate_cmd($sudoerscontent, '/usr/sbin/visudo -c -f', 'Visudo failed to validate sudoers content')
+
+
+
+- *Type*: statement
+
validate_hash
-------------
Validate that all passed values are hash data structures. Abort catalog
@@ -890,7 +1111,6 @@ The following values will fail, causing compilation to abort:
validate_string($undefined)
-
- *Type*: statement
values
@@ -955,3 +1175,5 @@ Would result in:
- *Type*: rvalue
+
+*This page autogenerated on 2013-04-11 13:54:25 -0700*