FAQ
I was going through the Puppet Learning doc.
Got to the template section and the ERB file, which is using the 'each'
method to print the $real_servers.
The puppet run fails with pointing to the 'each' method.
Is this a bug? does anyone have any pointers?

Using:
centos 6.6
puppet 3.8.1
ruby 1.8.7

Thanks.

# cat /etc/puppet/modules/ntp/manifests/init.p
class ntp {

     # Choose platform, package name, and config file name
     case $operatingsystem {
         centos, redhat: {
             $service_name = 'ntpd'
             $conf_file = 'ntp.conf'
             $default_servers = [ "0.centos.pool.ntp.org",
                                  "1.centos.pool.ntp.org",
                                  "2.centos.pool.ntp.org", ]
         }
         debian, ubuntu: {
             $service_name = 'ntp'
             $conf_file = 'ntp.conf.debian'
             $default_servers = [ "0.debian.pool.ntp.org iburst",
                                  "1.debian.pool.ntp.org iburst",
                                  "2.debian.pool.ntp.org iburst",
                                 "3.debian.pool.ntp.org iburst", ]
         }
         default: { fail("Unrecognized operating system for webserver") }
     }

     $servers_real = $default_servers

     # Install the package
     package { 'ntp':
         ensure => installed,
     }

     # Get the config file
     file { 'ntp.conf':
         path => '/etc/ntp.conf',
         ensure => file,
         require => Package['ntp'],
         content => template("ntp/${conf_file}.erb"),
     }

     # Manage the service
     service { 'ntp':
         name => $service_name,
         ensure => running,
         enable => true,
         subscribe => File['ntp.conf'],
     }

} #class



# cat /etc/puppet/modules/ntp/templates/ntp.conf.erb
<% @servers_real.each do |this_server| -%>
server <%= this_server %>
<% end -%>


# puppet agent --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Failed to parse template ntp/ntp.conf.erb:
   Filepath: /etc/puppet/modules/ntp/templates/ntp.conf.erb
   Line: 2
   Detail: undefined method `each' for nil:NilClass
  at /etc/puppet/modules/ntp/manifests/init.pp:26 on node
puppetmaster.example.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

--
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 view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/5d089681-9deb-4806-a3b1-4dbaa5bbe1d6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

Discussion Posts

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 1 of 8 | next ›
Discussion Overview
grouppuppet-users @
categoriespuppet
postedAug 18, '15 at 3:16p
activeAug 21, '15 at 4:39a
posts8
users5
websitepuppetlabs.com

People

Translate

site design / logo © 2022 Grokbase