hi,guys-
I have a mysql database which stores host informations,so I wrote a
function to get some values.
- Here is the function rb(this function should return the type I defined
in the database):
#hosttype.rb
require "mysql"
module Puppet::Parser::Functions
newfunction(:hosttype, :type => :rvalue, :doc => "Gets host type
from
db.") do |args|
dbh = Mysql.real_connect("mysql_server_ip",
"username", "password",
"puppet")
res = dbh.query("SELECT host_type FROM host_extra_info where
name=''" + args[0] + "''")
# return res.fetch_row
puts res.fetch_row
res.free
dbh.close if dbh
end
end
- Also I wrote a .pp file to test it:
#/tmp/1.pp
$extraaaaa = hosttype("my_hostname")
notify { $extraaaaa: }
Test results(the red value is the query result from db):
[root@pm tmp]# puppet 1.pp
notice: server
notice: /Stage[main]//Notify[server]/message: defined
''message'' as ''server''
notice: Finished catalog run in 0.06 seconds
It looks right,but when I use it in my module manifests,it didn''t work!
- my custom module manifests:
#extracache.pp
class custom::extracache {
$extra_info = hosttype($hostname)
notify { test:
message => "$extra_info"
}
file { "/etc/puppet/host_extra_info.cache":
content => "$extra_info",
}
}
Puppet run results:
[root@pm tmp]# puppet agent --onetime --no-daemonize --verbose
info: Retrieving plugin
notice:
/File[/var/lib/puppet/lib/puppet/parser/functions/hosttype.rb]/content:
content changed ''{md5}2493078b3c7e78b5c9e26b35bb1ccd85'' to
''{md5}614766f30295d33d8d27fa6dab768cc4''
info: Loading downloaded plugin
/var/lib/puppet/lib/puppet/parser/functions/hosttype.rb
info: Caching catalog for xxxxxxx
info: Applying configuration version ''1362562073''
notice:
notice: /Stage[main]/Custom::Extracache/Notify[test]/message: defined
''message'' as ''''
notice: Finished catalog run in 0.73 seconds
It becomes nil,and I just don''t know why.
Any reply I will appreciate!
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to puppet-users+unsubscribe@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.