-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
This is much anticipated production release of Puppet 0.25.0 -
code-named "Elmo".
The tarball is available at:
http://reductivelabs.com/downloads/puppet/puppet-0.25.0.tar.gz
Or as a Ruby Gem:
http://reductivelabs.com/downloads/puppet/puppet-0.25.0.gem
It is also available via the Reductive Labs Redmine site and via the
Rubyforge site.
Please log any issues found with the release at:
http://projects.reductivelabs.com/projects/puppet/issues/new
Please select the Affected Version as 0.25.0.
Email any other specific questions, comments or feedback to the
puppet-user. Or for development related issues to the puppet-dev lists.
What''s Changed?
- ---------------
There are substantial changes in Puppet 0.25.0 and more changes to
come in the future. Most of the changes in 0.25.0 are internal
refactoring rather than behavioural. The 0.25.0 release should be
fully backwards compatible behaviourally with the 0.24.x branch.
This means a 0.25.0 master will be able to manage 0.24.x clients.
You will need, however, to upgrade both your master and your clients
to take advantage of all the new features and the substantial gains
in performance offered by 0.25.0.
The principal change is the introduction of Indirected REST to
replace XML-RPC as the underlying Puppet communications mechanism.
This is a staged change with some functions migrated in this release
and some in the next release. In the first stage of the Indirected
REST implementation the following functions have been migrated:
- - Certificates
- - Catalogue
- - Reports
- - Files
In 0.26.0 (the next release) the following remaining functions will
be migrated:
- - Filebucket
- - Resource handler
- - Runner handler
- - Status handler
The new REST implementation also comes with authorisation
configuration in a similar style to the namespaceauth used for
XML-RPC. This new authorisation is managed through the auth.conf
file (there is an example file in the conf directory of the
tarball). This does not yet fully replace the namespaceauth.conf
file but will when the remaining handlers are migrated to REST. It
works in a similar way to the namespaceauth.conf file and the
example file contains additional documentation.
As a result of the introduction of REST and other changes you should
see substantial performance improvements in this release. These
particularly include improvements in:
- - File serving
- - The performance of large graphs with lots of edges
- - Stored configuration (see also Puppet Queuing below)
Other new features include (this is not a complete list - please see
the Roadmap for all tickets closed in this release):
Deprecations
- ------------
Custom types and facts in modules have been moved from the
module/plugins to module/lib. Please rename your directories.
The module name must now be specified in source attributes of the
file type, i.e.
file { "file":
source => "puppet://server/module/file",
}
Binary-specific configuration files, such as puppetd.conf or
puppetmasterd.conf are now totally deprecated and ignored.
Passenger
- ---------
Ensure you have the latest version of the config.ru file from the
ext/rack/files/ directory in the tarball.
Rails
- -----
Rails versions up to 2.3.x are now supported.
New Language Features
- ---------------------
Regular expression matching is now possible in node definitions.
node /web|db/ {
include blah
}
node /^(foo|bar)\.example\.com$/ {
include blah
}
Puppet now also allows regular expressions in if statements with the use
of the =~ (match) and !~ (not match) operators.
if $uname =~ /Linux|Debian/ {
...
}
Also available are ephemeral variables ($0 to $9) in the current scope
which contain regex captures:
if $uname =~ /(Linux|Debian)/ {
notice("this is a $1 system")
}
Similar functionality is available in case and selector statements:
$var = "foobar"
case $var {
"foo": {
notify { "got a foo": }
}
/(.*)bar$/: {
notify{ "hey we got a $1": }
}
}
$val = $test ? {
/^match.*$/ => "matched",
default => "default"
}
New functions
- -------------
There are four new functions:
require - Similar to the include function but creates a dependency
on the required class in the current class. This means the required
class will be loaded before the current class is processed.
split - allows you to split strings and arrays
versioncmp - allows you to compare versions
shellcode - Quote and concatenate arguments for use in the shell, for
example as part of Exec type commands.
Command Line Compile & Apply
- ----------------------------
Puppet now has the capability to compile a catalogue and output it
in JSON from the Puppet master. You can do this via the --compile
command line option.
# puppetmasterd --compile nodename
Corresponding with this feature is the ability to apply a JSON
configuration from the puppet binary using the --apply option.
# puppet --apply cataloguefile
Or you can use - to read the JSON in from standard input. Puppet
will then compile and apply the configuration.
Thin Stored Configuration
- -------------------------
0.25.0 also introduces the concept of "thin" stored configurations.
This is a version of stored configuration that only stores the
facts and exported resources in the database. This will perform
better than full stored configuration but because not all resources
are available this may not suit all purposes.
Thin stored configurations are initiated by setting the
thin_storeconfigs option on the Puppet master or on the
puppetmasterd command line using --thin_storedconfigs.
Puppet Queuing
- ---------------
There is a new binary called puppetqd that supports queuing for
stored configurations. You can read about how it works and how to
implement it at:
http://reductivelabs.com/trac/puppet/wiki/UsingStoredConfiguration
Further documentation is in the README.queuing file in the tarball.
Application Controller
- ----------------------
All the logic has been moved out of the binary commands and added to
an Application Controller. You can see the controller code at
lib/puppet/application.rb and the logic for each application at
lib/puppet/application/binaryname.rb.
Types and Providers
- -------------------
The return values from the Exec type can now be specified as an array.
The SMF and daemontools service providers can now import a configuration
file.
The mailist type is now supported on Red Hat, CentOS and Fedora
distributions
The NetInfo provider has been deprecated for OSX in favour of the
Directory Services provider.
Binary Location Move
- --------------------
To bring Puppet more in line with general packaging standards the
puppetd, puppetca, puppetrun, puppetmasterd, and puppetqd binaries
now reside in the sbin directory rather than the bin directory when
installed from the source package.
Other features
- --------------
You can find a full list of the tickets closed thus far for version
0.25.0 is at:
http://projects.reductivelabs.com/versions/show/3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEVAwUBSqG/SyFa/lDkFHAyAQLPjQgAyrskIiRtrLYy2oookwkyR4VudmAgFEyF
7TcFFEzNGQ/zceNsfkh/kgQL0Oc+ZKlubcIMZBl3o95VXfipCxvbELvAMWb50EMD
s0d9u5dpVh/aGi0S1qCBLZxwFfsj9IzieTtn84PFJ5a16oDc0Ekm5kZNiL8I+y9h
VraR/uZEKWK7vL94F0UcHeK/AORkb1khcLL7IVvNvVEa2cx6j/PXtf9uPcbAAcfa
mVupxOxxOefht3tlGSAGKPgCC6AxNDhjRAbxyVvZ9kCBmgqU2TJmyy99rU63ieVL
J2affAg5BHsVzaaoL4QsHOK151nI4H9CrTbhca7BSZfOR+Ofqo/o6w==j3wr
-----END PGP SIGNATURE-----
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---