I'm having a really hard time grasping how variables are scoped in puppet (not really much of a programmer).
I've got a manifest that looks like this: ### class puppet::config { include puppet::params file { '/etc/puppet/puppet.conf': ensure => present, content => template('puppet/puppet.conf.erb'), owner => 'root', group => 'admins', require => Class['puppet::install'], notify => Class['puppet::service'], } } ### I've then got a manifest like this, which has a class being included above: ### class puppet::params { $puppetserver = 'command.enterawesome.com' } ### The template being used in the first class includes the variable $puppetserver, but somehow, the include statement isn't enough for the variable to be defined within the scope of the manifest/template above. What gives? It works just fine if I include a statement like this in the erb file: <%= scope.lookupvar('puppet::params::puppetserver') %> But I'd really like to understand scoping better. What is it I need to do to just refer to the variable by name? Why isn't the include statement enough? Isn't in including the puppet::params class inside the puppet::config class, and therefore having the variable defined in that context? Apparently not. But I don't understand why. I wan't to end up at a point where the variable is in the proper scope, such that I can just have a statement like <%= puppetserver %> inside of the template I'm using. Thanks in advance! -- 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.