======================================================================
I was getting Puppet to error out like a shell script is a challenge. My favorite solution to date is creating a custom fact in a module's "lib/facter" sub directory. Although there are other solutions, most involve a modicum of ruby coding.
To get Puppet to error out if /sys/kernel/mm/transparent_ hugepage
exists, I had to create a custom fact.
/opt/puppetlabs/code/ environment/production/ oradbms/modules/linode3/lib/ facter/trans_huge_frame.rb
Facter.add(:linode3_
setcode do
| |
if File.exist? '/sys/kernel/mm/transparent_
| |
'/sys/kernel/mm/transparent_
| |
else
| |
if File.exist? '/sys/kernel/mm/redhat_
| |
'/sys/kernel/mm/redhat_
| |
else
| |
#DEBUG if File.exist? '/sys/kernel/mm/page_idle' # This is just a test case
| |
#DEBUG '/sys/kernel/mm/page_idle'
| |
#DEBUG else
| |
#DEBUG 'absent'
| |
#DEBUG end
| |
'absent'
| |
end
| |
end
| |
end
| |
end
|
The manifest code looks like
if "${facts['linode3_transparent_ hugepage']}" != 'absent' {
fail("fail('ERROR: found file: ${facts['linode3_transparent_ hugepage']}, meaning Transparent Huge Pages are enabled for an Oracle server, which is not allowed.")
}
Hopefully that makes sense.
No comments:
Post a Comment