Reputation: 3127
I'm getting undefined error but it is defined already. I'm sure this was working before (maybe in puppet 3) but I'm trying to use that code on puppet 6 (on a new server).
Any idea what is the issue? Here is the error code:
Error: Error while evaluating a Function Call, Failed to parse template resolv/resolv.conf.erb:\n
Filepath: /etc/puppetlabs/puppet/modules/resolv/templates/resolv.conf.erb\n Line: 1\n
Detail: undefined local variable or method `domain' for #<Puppet::Parser::TemplateWrapper:0x60d6ba83>\n
Here is the code:
class resolv {
case $hostname {
/^[Abc]/: {
resolv:resolv_config { 'Default':
domain => "mydomain.local",
}
}
}
}
define resolv::resolv_config($domain){
file { '/etc/resolv.conf':
content => template("resolv/resolv.conf.erb"),
}
}
Here is the template content:
cat resolv.conf.erb
domain <%= domain %>
Upvotes: 2
Views: 1420
Reputation: 3127
Figured it out.
All Puppet variables need to be prefixed with @ in Puppet 4+
So resolv.conf.erb
should look like
domain <%= @domain %>
Upvotes: 3