ANNOUNCE: Puppet 2.7.0 Released

450 views
Skip to first unread message

Michael Stahnke

unread,
Jun 21, 2011, 2:33:35 PM6/21/11
to puppet...@googlegroups.com, puppe...@googlegroups.com, puppet-...@googlegroups.com
It's here! Puppet 2.7.0.

This release is available for download at:
http://puppetlabs.com/downloads/puppet/puppet-2.7.0.tar.gz

It's available as a gem from rubygems.org.

See the Verifying Puppet Download section at:
http://projects.puppetlabs.com/projects/puppet/wiki/Downloading_Puppet

Please report feedback via the Puppet Labs Redmine site, using an
affected version of 2.7.0
http://projects.puppetlabs.com/projects/puppet/

Full Release Notes are available:
https://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes

To see the Full CHANGELOG:
https://raw.github.com/puppetlabs/puppet/2.7.0/CHANGELOG

Puppet 2.7.0 is out! This is a major feature release, and there's a
lot of new stuff. Here's the high-level version:

Apache License
-----------

Puppet is now released under the Apache 2.0 license. More info is
available [here](http://docs.puppetlabs.com/guides/faq#change-to-apache-license).

Ruby 1.9 Support
--------

There are some known issues with the 2.7.0 release, but YES: we are
now supporting Ruby 1.9.2 and higher, and will be aggressively fixing
bugs under Ruby 1.9!

Deterministic Catalog Application
-----------

Previously, Puppet didn't guarantee that it would apply unrelated
resources in any particular order. This meant that if you forgot to
specify some important `before` or `require` relationship, a single
catalog might work fine on eight nodes and then fail mysteriously on
the ninth and tenth. This could be frustrating! Now it's gone: Puppet
will make sure that the same catalog will always be applied in the
same order on every machine, and it'll either succeed reliably or fail
reliably. (This change will also be appearing in the final 2.6.x
releases.)

Manage Network Devices
------------

Puppet has new types for managing network hardware, and a new `puppet
device` subcommand for applying these configurations. These are in
their early stages and can currently only handle Cisco hardware, but
they're the start of a big leap forward in Puppet's ability to manage
your entire infrastructure.

Man Pages
--------

We've spiffed up our man pages, in both regular and on-the-fly
flavors! Try `man puppet-agent` or `puppet man catalog`, and party
like it's 1971. (We recommend running `gem install ronn` before using
the `puppet man` subcommand.)

New Subcommands and the Faces API
---------

We've added a powerful new API for creating new Puppet subcommands,
and we've used it to expose most of Puppet's internal subsystems. One
of our devs has written a series of blog posts about it
([one][faceswhat], [two][facesmore], [three][facesthree]), and there's
more documentation on the way, but this opens the door to whole new
ways of running Puppet and exploiting its data.

To get a look at the new subcommands, just run `puppet help`; if
you're interested in tweaking Puppet under the hood, take a look at
`lib/puppet/face/secret_agent.rb` to see how easy it is to
re-implement the puppet agent application. We've also implemented a
new help interface: just run `puppet help <subcommand> [<action>]` for
short, to-the-point command-line help with the Faces subcommands.

[facesthree]: http://www.puppetlabs.com/blog/about-faces-until-we-go-in-the-right-direction/
[faceswhat]: http://www.puppetlabs.com/blog/puppet-faces-what-the-heck-are-faces/
[facesmore]: http://www.puppetlabs.com/blog/faces-actions-options-and-facades-oh-my/

Deprecations
----------

We're starting the hourglass on a few older features:

* **'puppet' as a synonym for 'puppet apply'** --- Starting today,
running `puppet my-manifest.pp` will issue a warning; you should start
using `puppet apply` directly instead. Support for implicit invocation
of puppet apply will be dropped in Puppet 2.8.
* **Dynamic scope** --- We've started issuing warnings when variables
or resource defaults are found via dynamic lookup. [There's more info
and explanation in a guide on the docs
site](http://docs.puppetlabs.com/guides/scope_and_puppet.html), but
the short version is that you should start referencing variables with
their qualified names instead of counting on dynamic scope. We hope to
drop support for dynamic scope in Puppet 2.8.
* **No more `--parseonly` option** --- This one's already gone,
because we used Faces to build a drop-in replacement: use `puppet
parser validate [<manifest>] [<manifest> ...]` instead.

Notice Changed Manifests on the First Try
-------

During the 2.6.x series, puppet agent would sometimes require two runs
to receive new configurations when puppet master was running under
Passenger. This persistent bug has been dealt with. (This change will
also be appearing in the final 2.6.x releases.)

Static Compiler
---------

We've introduced `static_compiler`, a new `catalog_terminus` which can
be configured in puppet.conf on your puppet master. There are some
known issues that keep it from being used as-is --- you have to
manually sync the agent's filebucket to that of the master, and the
compiler's behavior around recursion hasn't been rigorously tested.
But this new approach has the potential to drastically speed up
file-heavy Puppet runs and eliminate some race conditions.

Improved APIs
----------

You can now [manage and sign certificates via Puppet's REST
API](http://docs.puppetlabs.com/guides/rest_api.html#certificate-status),
which means that in the near future you'll be able to check off
signing requests for new nodes right from Puppet Dashboard. (And
someone can now easily write an iPhone or Android app to fetch and
handle CSRs, hint hint. :) )

And more
--------

For more detail, see [our full release
notes](http://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes/).

Frederik Wagner

unread,
Jun 22, 2011, 9:29:46 AM6/22/11
to puppet...@googlegroups.com
Hi,

thanks for the new version, I was looking forward to it since
puppetcamp A'dam...

Just a minor issue: Installation from the gem gives a rdoc error (on
Ubunu/RHEL with ruby 1.8.7):
----------------------------
# gem install puppet -v 2.7.0
Successfully installed puppet-2.7.0
1 gem installed
Installing ri documentation for puppet-2.7.0...


RDoc failure in lib/puppet/interface/option.rb at or around line 6 column 40

Before reporting this, could you check that the file
you're documenting compiles cleanly--RDoc is not a
full Ruby parser, and gets confused easily if fed
invalid programs.

The internal error was:

ERROR: While generating documentation for puppet-2.7.0
... MESSAGE: Name or symbol expected (got
#<RubyToken::TkDSTRING:0x7f734a34b6a0>)
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/puppet-2.7.0/ri
--title Puppet - Configuration Management --main README --line-numbers
--quiet lib --title puppet-2.7.0 Documentation
(continuing with the rest of the installation)
Installing RDoc documentation for puppet-2.7.0...


RDoc failure in lib/puppet/interface/option.rb at or around line 6 column 40

Before reporting this, could you check that the file
you're documenting compiles cleanly--RDoc is not a
full Ruby parser, and gets confused easily if fed
invalid programs.

The internal error was:

ERROR: While generating documentation for puppet-2.7.0
... MESSAGE: Name or symbol expected (got
#<RubyToken::TkDSTRING:0x7f734a928500>)
... RDOC args: --op /usr/lib/ruby/gems/1.8/doc/puppet-2.7.0/rdoc
--title Puppet - Configuration Management --main README --line-numbers
--quiet lib --title puppet-2.7.0 Documentation
(continuing with the rest of the installation)

-----------------------------------

Thanks!
Frederik

> --
> You received this message because you are subscribed to the Google Groups "Puppet Users" group.
> To post to this group, send email to puppet...@googlegroups.com.
> To unsubscribe from this group, send email to puppet-users...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
>
>

Martin Willemsma

unread,
Jun 22, 2011, 10:52:33 AM6/22/11
to puppet...@googlegroups.com
Hi,

My Puppet dashboard shows errors on nodes that want to upgrade from
2.6.7 to 2.7.0.

Package[puppet] (/etc/puppet/production/modules/puppet/manifests/init.pp:24)
Property Message
ensure change from 2.6.7 to 2.7.0 failed: Could not update: Could not
install: RDoc failure in lib/puppet/interface/option.rb at or around


line 6 column 40 Before reporting this, could you check that the file
you're documenting compiles cleanly--RDoc is not a full Ruby parser,
and gets confused easily if fed invalid programs. The internal error
was: ERROR: While generating documentation for puppet-2.7.0 ...
MESSAGE: Name or symbol expected (got

#<RubyToken::TkDSTRING:0x9f7eff0>) ... RDOC args: --ri --op


/usr/lib/ruby/gems/1.8/doc/puppet-2.7.0/ri --title Puppet -
Configuration Management --main README --line-numbers --quiet lib
--title puppet-2.7.0 Documentation (continuing with the rest of the

installation) RDoc failure in lib/puppet/interface/option.rb at or


around line 6 column 40 Before reporting this, could you check that
the file you're documenting compiles cleanly--RDoc is not a full Ruby
parser, and gets confused easily if fed invalid programs. The internal
error was: ERROR: While generating documentation for puppet-2.7.0 ...
MESSAGE: Name or symbol expected (got

#<RubyToken::TkDSTRING:0xb4c3d0c>) ... RDOC args: --op


/usr/lib/ruby/gems/1.8/doc/puppet-2.7.0/rdoc --title Puppet -
Configuration Management --main README --line-numbers --quiet lib
--title puppet-2.7.0 Documentation (continuing with the rest of the

installation) INFO: `gem install -y` is now default and will be
removed INFO: use --ignore-dependencies to install only the gems you
list Successfully installed puppet-2.7.0 1 gem installed Installing ri
documentation for puppet-2.7.0... Installing RDoc documentation for
puppet-2.7.0... at
/etc/puppet/production/modules/puppet/manifests/init.pp:24


warning Skipping because of failed dependencies
/Stage[main]/Puppet/File[puppet.conf]
/etc/puppet/production/modules/puppet/manifests/init.pp 36
2011-06-22 14:55 CEST
warning Skipping because of failed dependencies
/Stage[main]/Puppet::Centos/Service[puppet]
/etc/puppet/production/modules/puppet/manifests/centos.pp 29
2011-06-22 14:55 CEST

When I check the local machine the gem was installed, but the service
is not restarted so 2.7.0 is not being used.

I have a cron job setup that reloads the deamon process once a week,
but would like to use 2.7.0 right after upgrade.


---
Martin


2011/6/22 Frederik Wagner <fne...@googlemail.com>

Frederik Wagner

unread,
Jun 22, 2011, 1:34:15 PM6/22/11
to puppet...@googlegroups.com
Hi Martin,

On Wed, Jun 22, 2011 at 4:52 PM, Martin Willemsma <mwill...@gmail.com> wrote:
> My Puppet dashboard shows errors on nodes that want to upgrade from
> 2.6.7 to 2.7.0.
>

(snip)


>
> warning         Skipping because of failed dependencies
>        /Stage[main]/Puppet/File[puppet.conf]
>        /etc/puppet/production/modules/puppet/manifests/init.pp         36
>        2011-06-22 14:55 CEST
> warning         Skipping because of failed dependencies
>        /Stage[main]/Puppet::Centos/Service[puppet]
>        /etc/puppet/production/modules/puppet/manifests/centos.pp       29
>        2011-06-22 14:55 CEST
>
> When I check the local machine the gem was installed, but the service
> is not restarted so 2.7.0 is not being used.

If I get it right, your dependent service is not restarting, since the
"upgrade resource" fails? For me it worked just installing the gem
2.7.0 next to 2.6.8 (through the package provider).

How would you have the package provider installing/updateing the
puppet gem trigger the puppet service, without killing the just
running (daemonized/scheduled) puppet process?

It works in two runs:
1. install/upgrade the gem, triggering the service restart (which
happens, so the new puppet version is running, but the current run got
killed).
2. the next scheduled run, runs normally with the new version.

But is there a way not to have the running process killed and produce
a failed run?

BTW: How do I uninstall the old gem? (there is no ensure => "^2.6.8"
or similar)

Bye
Fredeirk

Jake - USPS

unread,
Jun 22, 2011, 2:00:11 PM6/22/11
to Puppet Users
For the item:

Notice Changed Manifests on the First Try
-------
During the 2.6.x series, puppet agent would sometimes require two
runs
to receive new configurations when puppet master was running under
Passenger. This persistent bug has been dealt with. (This change will
also be appearing in the final 2.6.x releases.)

Was this addressed in 2.6.9 release? It says it will be in the final
2.6.x releases, and on the 2.6.9 announcement page it says "This will
likely be the last release in the 2.6.x series for Puppet, now that
2.7 is out." but I'm not sure which bug addressed under 2.6.9 would be
this issue.

Thanks,
Jake

On Jun 21, 1:33 pm, Michael Stahnke <stah...@puppetlabs.com> wrote:
> It's here!  Puppet 2.7.0.
>
> This release is available for download at:http://puppetlabs.com/downloads/puppet/puppet-2.7.0.tar.gz
>
> It's available as a gem from rubygems.org.
>
> See the Verifying Puppet Download section at:http://projects.puppetlabs.com/projects/puppet/wiki/Downloading_Puppet
>
> Please report feedback via the Puppet Labs Redmine site, using an
> affected version of 2.7.0http://projects.puppetlabs.com/projects/puppet/
> [facesthree]:http://www.puppetlabs.com/blog/about-faces-until-we-go-in-the-right-d...

Daniel Pittman

unread,
Jun 22, 2011, 2:49:52 PM6/22/11
to puppet...@googlegroups.com
On Wed, Jun 22, 2011 at 11:00, Jake - USPS <jacob.m...@usps.gov> wrote:
> For the item:
>
> Notice Changed Manifests on the First Try
> -------
> During the 2.6.x series, puppet agent would sometimes require two
> runs to receive new configurations when puppet master was running under
> Passenger. This persistent bug has been dealt with. (This change will
> also be appearing in the final 2.6.x releases.)
>
> Was this addressed in 2.6.9 release?

Yes, this was part of the 2.6.9 release; the bug is #5318, and it went
in before we cut that release. (Note, though, that this only matters
on the Puppet Master, so even if it hadn't, running a 2.7 master with
2.6 clients would have fixed the bug. :)

Daniel
--
⎋ Puppet Labs Developer – http://puppetlabs.com
✉ Daniel Pittman <dan...@puppetlabs.com>
✆ Contact me via gtalk, email, or phone: +1 (877) 575-9775
♲ Made with 100 percent post-consumer electrons

Michael Stahnke

unread,
Jun 22, 2011, 5:52:23 PM6/22/11
to puppet...@googlegroups.com
I've been able to reproduce this issue and we'll have a fixed gem out shortly.

Mike

Reply all
Reply to author
Forward
0 new messages