Small changes. Mainly to formatting of the help provided.
Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
This commit is contained in:
parent
54b0d37bac
commit
0b1aab2ed5
2 changed files with 32 additions and 31 deletions
37
fact.rb
37
fact.rb
|
@ -4,42 +4,43 @@
|
|||
|
||||
module Puppet::Parser::Functions
|
||||
newfunction(:fact, :type => :rvalue, :doc => <<-EOS
|
||||
This function will retrieve fact from Facter based on the fact name
|
||||
and expose it for further use within Puppet manifest file ...
|
||||
This function will retrieve fact from Facter based on the fact
|
||||
name and expose it for further use within Puppet manifest file ...
|
||||
|
||||
For example:
|
||||
|
||||
Given the following sample manifest:
|
||||
|
||||
define partitions {
|
||||
$result = split(fact("partitions_${name}"), ',')
|
||||
define partitions {
|
||||
$result = split(fact("partitions_${name}"), ',')
|
||||
|
||||
notice $result
|
||||
notice $result
|
||||
|
||||
partition { $result: }
|
||||
}
|
||||
partition { $result: }
|
||||
}
|
||||
|
||||
define partition {
|
||||
notice $name
|
||||
}
|
||||
define partition {
|
||||
notice $name
|
||||
}
|
||||
|
||||
$available_disks = split($disks, ',')
|
||||
$available_disks = split($disks, ',')
|
||||
|
||||
partitions { $available_disks: }
|
||||
partitions { $available_disks: }
|
||||
|
||||
This will produce the following:
|
||||
|
||||
notice: Scope(Partitions[hda]): hda1 hda2
|
||||
notice: Scope(Partition[hda1]): hda1
|
||||
notice: Scope(Partition[hda2]): hda2
|
||||
notice: Scope(Partitions[hda]): hda1 hda2
|
||||
notice: Scope(Partition[hda1]): hda1
|
||||
notice: Scope(Partition[hda2]): hda2
|
||||
|
||||
|
||||
Which allows you to avoid resorting to the following:
|
||||
|
||||
$fact = "partitions_${name}"
|
||||
$result = split(inline_template("<%= scope.lookupvar(fact) %>"), ',')
|
||||
$fact = "partitions_${name}"
|
||||
$result = split(inline_template("<%= scope.lookupvar(fact) %>"), ',')
|
||||
|
||||
Taking out the need for using "inline_template" in the "partitions" define above.
|
||||
Phasing out the need for use and abuse of the infamous inline_template in the
|
||||
partitions define given above.
|
||||
EOS
|
||||
) do |arguments|
|
||||
|
||||
|
|
|
@ -11,19 +11,19 @@ For example:
|
|||
|
||||
Given following content of the data.yaml file:
|
||||
|
||||
---
|
||||
host1.example.com:
|
||||
foo: bar
|
||||
baz: quux
|
||||
question: 42
|
||||
host2.example.com:
|
||||
abc: def
|
||||
this: that
|
||||
darth: vader
|
||||
---
|
||||
host1.example.com:
|
||||
foo: bar
|
||||
baz: quux
|
||||
question: 42
|
||||
host2.example.com:
|
||||
abc: def
|
||||
this: that
|
||||
darth: vader
|
||||
|
||||
Then calling load_variables in Puppet manifest file as follows:
|
||||
|
||||
load_variables("/etc/puppet/data.yaml", $fqdn)
|
||||
load_variables("/etc/puppet/data.yaml", $fqdn)
|
||||
|
||||
Will result in addition of variables $foo, $baz and $question
|
||||
for matching host name as per the variable $fqdn ...
|
||||
|
@ -32,12 +32,12 @@ Another example which uses per-host file:
|
|||
|
||||
Given following content of the file data-host1.example.com.yaml:
|
||||
|
||||
---
|
||||
foo: bar
|
||||
---
|
||||
foo: bar
|
||||
|
||||
Then when we call load_variables like this:
|
||||
|
||||
load_variables("/etc/puppet/data-$fqdn.yaml")
|
||||
load_variables("/etc/puppet/data-$fqdn.yaml")
|
||||
|
||||
This will result in a variable $foo being added and ready for use.
|
||||
EOS
|
||||
|
|
Loading…
Reference in a new issue