What's new in Puppet since 2007?

I've got a copy of the Pulling Strings with Puppet book (written in 2007) but given that it has a bunch of equivocal language, I'm wonder how much has changed since then? I've found this Release Notes page and a (short) summery table at the top of the language tutorial but neither have dates, so I don't know where to start (and the more detailed notes make for rather dry reading).

Does anyone know of a page that list thing that have changed since that book was published?


Solution 1:

The main user-visible differences since 0.23.x are:

  • more language features like better conditionals - the Language Tutorial that you found is definitely the best way to find out what's available in manifests now.
  • all your manifests and plugins (custom facts, custom types and providers) should now be in a module directory structure and you should be using 'include mymodule::classname' instead of 'import /path/to/manifest.pp'
  • as a corollary, puppet:// URLS for file sources now need to have the module path in them, like puppet:///modules/mymodule/classname/file.txt would live on the filesystem at _modulepath_/mymodule/files/classname/file.txt
  • the CLI has been unified to a 'git' or 'svn' style single program with command arguments, like 'puppet agent' instead of a separate 'puppetd'. That's described on the Tools page
  • there are more built-in types and providers available, like the yumrepo, and zfs types, and zypper, freebsd , portage package providers.

There are big structural changes under the hood (on-the-wire communication moved from XMLRPC to a REST interface) but they're mostly invisible for every day use. The ones above are probably what trip up the most people, based on mailing list/irc inquiries.

Solution 2:

See the Changelog. There were quite a few updates in the past months.