Hi David:

On Thu, May 19, 2016 at 1:57 PM, David Karr <[email protected]>
wrote:

> I'm stepping through "Learning Puppet 4", and I ran into an error
> following steps in the book, and I want to understand what went wrong
> before I report it.
>
> The section in question is "Using Puppet EPP Templates" in chapter 13.
>
> I'll work backwards from the error I'm getting, showing the relevant files
> afterwards.  Here is what I see when I apply the manifest:
> [vagrant@client puppet]$ sudo puppet apply --environment test manifests/
> Warning: Unknown variable: '::puppet::common_loglevel'. at /etc/puppetlabs
> /code/environments/test/modules/puppet/templates/puppet.conf.epp:3:21
> Warning: Unknown variable: 'puppet::agent_loglevel'. at /etc/puppetlabs/
> code/environments/test/modules/puppet/templates/puppet.conf.epp:7:7
> Warning: Unknown variable: '::puppet::server'. at /etc/puppetlabs/code/
> environments/test/modules/puppet/templates/puppet.conf.epp:10:18
> Warning: Unknown variable: 'puppet::apply_loglevel'. at /etc/puppetlabs/
> code/environments/test/modules/puppet/templates/puppet.conf.epp:14:7
> Notice: Compiled catalog for client.example.com in environment test in
> 0.04 seconds
> Notice: /Stage[main]/Main/File[/etc/puppetlabs/puppet/puppet.conf]/content
> : content changed '{md5}a72aadac19feefd06f10fb6b8f90c5f4' to
> '{md5}0f89a3d91b54aec8463b4a250a493f36'
> Notice: /Stage[main]/Main/File[/etc/puppetlabs/puppet/puppet.conf]/owner:
> owner changed 'vagrant' to 'root'
> Notice: /Stage[main]/Main/File[/etc/puppetlabs/puppet/puppet.conf]/group:
> group changed 'vagrant' to 'wheel'
> Notice: /Stage[main]/Main/File[/etc/puppetlabs/puppet/puppet.conf]/mode:
> mode changed '0664' to '0644'
> Notice: Applied catalog in 0.06 seconds
> [vagrant@client puppet]$
>
>
Based on the warnings, it looks like the "puppet" class hasn't been
declared.  Did you `include puppet` somewhere or otherwise classify the
node to include the "puppet" class?


> The template in question, right from the book, is this:
>
> # Generated by Puppet EPP template processor
> [master]
>     log_level = <%= $::puppet::common_loglevel %>
>
> # This is used by "puppet agent"
> [agent]
> <% if $puppet::agent_loglevel != undef { -%>
>     log_level = <%= $::puppet::agent_loglevel %>
> <% } -%>
>     server = <%= $::puppet::server %>
>
> # This is used for "puppet apply"
> [user]
> <% if $puppet::apply_loglevel != undef { -%>
>     log_level = <%= $::puppet::apply_loglevel %>
> <% } -%>
>
>
> Likely the most important piece to see now is the part of the "init.pp"
> manifest that declares the parameters being referenced here:
>
> class puppet(
>   $version         = 'latest',
>   $status          = 'running',
>   $enabled         = true,
>
>
>
> *$server          = 'puppet.example.com <http://puppet.example.com>',  
> $common_loglevel = 'warning',  $agent_loglevel  = undef,  $apply_loglevel  = 
> undef,*
> ) {
>
>
> I imagine the syntax of the variable references in the EPP file have to be
> slightly different, but I have no idea what it should be.
>

The EPP is fine; the code inside an EPP <% %> is expected to be valid
Puppet code.


>
> I also find it curious that the error messages print the name of the
> variable differently for different messages, sometimes prefixed with "::"
> and sometimes not.  Any background that would explain that?
>

When a variable name has a leading "::" it forces a lookup in the
top-scope.  An example where it would be needed is when you have a
top-scoped variable and a local variable of the same name; a leading "::"
would ensure that the top-scope variable is used and not the local variable.

For what it's worth, here's what a warning from a prototype Puppet compiler
I'm working on looks like when evaluating your example (hopefully it's a
bit more clear):

Warning: <epp>:3:21: could not look up variable $::puppet::common_loglevel
because class 'puppet' has not been declared.
  log_level = <%= $::puppet::common_loglevel %>
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
 ...

Note: the filename is "<epp>" because I stuck your EPP source in an
"inline_epp" call rather than a file.


> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/01a83a7f-c3f2-4ca6-83d9-df09bec41527%40googlegroups.com
> <https://groups.google.com/d/msgid/puppet-users/01a83a7f-c3f2-4ca6-83d9-df09bec41527%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CACZQQfPLf5QEwTAYeM1pEGMMjgxRTH_Fna2e7faV0yGTzF7%2B7Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to