Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-3190

"each" no longer supported in Puppet 3.7.0

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: PUP 3.7.0
    • Fix Version/s: PUP 3.7.1
    • Component/s: Compiler
    • Labels:
    • Environment:

      Debian 7.6 and Ubuntu 12.04.

    • Template:
    • Story Points:
      1
    • Sprint:
      Platform 2014-09-17

      Description

      After upgrading to Puppet 3.7.0, the puppetmaster no longer
      recognizes the "each" keyword. It prints this in the log:

      Sep  5 19:22:56 minicfg2 puppet-master[11897]: each() is only available when parser/evaluator future is in effect on node buildhost1.lysator.liu.se
      

      The /etc/puppet/puppet.conf on the puppetmaster host looks like this:

      [main]
        logdir = /var/log/puppet
        vardir = /var/lib/puppet
        ssldir = /var/lib/puppet/ssl
        rundir = /var/run/puppet
        factpath = $vardir/lib/facter
        templatedir = $confdir/templates
        server = minicfg2.lysator.liu.se
        environment = production
       
      [agent]
        report = true
       
      [master]
        modulepath=/etc/puppet/environs/$environment/modules:/etc/puppet/environs/$environment/services:/etc/puppet/environ
      s/$environment/forge
        manifest=/etc/puppet/environs/$environment/manifests/
        storeconfigs = true
        storeconfigs_backend = puppetdb
        reports = store,rrdgraph,nagiosupdate
        rrddir = /var/www/puppet-rrd
        parser = future
       
        # These are needed when the puppetmaster is run by passenger
        # and can safely be removed if webrick is used.
        ssl_client_header = SSL_CLIENT_S_DN
        ssl_client_verify_header = SSL_CLIENT_VERIFY
      

      (I have changed the hostnames.)

      On the clients, the file looks like:

      [main]
        logdir = /var/log/puppet
        vardir = /var/lib/puppet
        ssldir = /var/lib/puppet/ssl
        rundir = /var/run/puppet
        factpath = $vardir/lib/facter
        templatedir = $confdir/templates
        server = minicfg2.lysator.liu.se
        environment = production
       
      [agent]
        report = true
      

      This setup worked fine with Puppet 3.5 and 3.6.

      I have looked at https://docs.puppetlabs.com/puppet/latest/reference/experiments_future.html#enabling-the-future-parser to check if I need to do more nowadays to enable both the future parser and evaluator, but as far as I can tell it should still be enough to specify "parser = future" in the master section of puppet.conf.

      (I am aware that I'm using deprecated configuration-based environments, but they should still work until Puppet 4, right?)

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              ceder Per Cederqvist
              QA Contact:
              Eric Thompson
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Zendesk Support