Hi all, I've been testing something today that I can't get to play ball the way I'd like. Here's the setup:
site.pp import "nodes" $extlookup_datadir = "/etc/puppet/envs/poc/extdata" $extlookup_precedence = ["%{fqdn}", "common"] nodes.pp class core { include hostinfo include motd } hostinfo module, init.pp class hostinfo { $os = extlookup("os") $region = extlookup("region") } module motd, init.pp class motd { include "motd::$operatingsystem" } class motd::common { file { "/etc/motd": owner => root, group => sys, mode => 0644, content => template("motd/motd.erb"), } } module motd, redhat.pp class motd::redhat inherits motd::common {} External data CSV: testhost:extdata$ egrep '^(os|region)' testhost.domain.com.csv os,core-redhat-5.5.1.19-11-10.x86_64 region,eu Originally the hostinfo module was laid out in the same way we do all the modules, i.e. init.pp has parent class which 'includes' class:: $operatingsystem and a class::common {} , then $operatingsystem.pp has 'class blah::redhat inherits blah::common'. But in the early part of the problem I realised the OS layout for 'hostinfo' was bogus, and dropped it for simplification. $os and $region were constantly failing to be found, but if I took the extlookup statements and copy n' pasted, verbatim, into the motd module itself, it worked. So then I tried a run stage to see if I could ensure hostinfo was imported before anything else. This was placed in site.pp: stage { "initialise": before => Stage[main] } class { "hostinfo": stage => "initialise"; } This is the first time I've messed with run stages, so I'm not 100% I got that right. It ran, and with puppet master --no-daemonize --debug I could see it being imported. So that was a good start in my mind. $os and $region still failed to be found though. So, I cut hostinfo out of nodes.pp, and put 'inherits hostinfo' into 'class motd'; this worked fine, the variables were found as I'd like. How come it doesn't work with run stages, or includes? Am I missing something fundamental here? Thanks --Mark -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.