ANNOUNCE: Puppet 2.6.0 - Release Candidate 1 available!

68 views
Skip to first unread message

James Turnbull

unread,
Jul 10, 2010, 2:58:50 AM7/10/10
to puppet...@googlegroups.com, puppe...@googlegroups.com, puppet-...@googlegroups.com
Welcome back again to the Puppet release cycle with the long-awaited
eleventy times better 2.6.0rc1 release!

The 2.6.0 release is a major feature release and includes a huge variety
of new features, fixes, updates and enhancements. These include the
complete cut-over from XMLRPC to the REST API, numerous language
enhancements, a complete rewrite of the events and reporting system, an
internal Ruby DSL, a single binary, a new HTTP report processor, and a
myriad of other enhancements.

As a result of the bucket-load of new features and enhancements we also
need lots of help testing it. Please run up the release candidate in
your test environment or using VMs and test it as extensively as
possible.

We've include release notes below that you can also see at:

http://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes

The release candidate is available for download at:

http://puppetlabs.com/downloads/puppet/puppet-2.6.0rc1.tar.gz

Please note that all final releases of Puppet are signed with the
Puppet Labs key (we'll sign the production release with the new,
improved Puppet Labs key).

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

Please test this release candidate and report feedback via the
Puppet Labs Redmine site:

http://projects.puppetlabs.com

Please select an affected version of 2.6.0rc1.

RELEASE NOTES

Language

Support for parameterised classes

The 2.6.0 release provides an extension to the existing class syntax to
allow parameters to be passed to classes. This brings classes more in
line with definitions, with the significant difference that definitions
have multiple instances whilst classes remain singletons.

To create a class with parameters you can now specify:

class apache($version) {
... class contents ...
}

Classes with parameters are NOT added using the include function but
rather the resulting class can then be included more like a definition:

node webserver {
class { apache: version => "1.3.13" }
}

Like definitions, you can also specify default parameter values in your
class like so:

class apache($version="1.3.13",$home="/var/www") {
... class contents ...
}

New relationship syntax

You can now specify relationships directly in the language:

File[/foo] -> Service[bar]

Specifies a normal dependency while:

File[/foo] ~> Service[bar]

Specifies a subscription.

You can also do relationship chaining, specifying multiple relationships
on a single line:

File[/foo] -> Package[baz] -> Service[bar]

Note that while it�s confusing, you don�t have to have all of the arrows
be the same direction:

File[/foo] -> Service[bar] <~ Package[baz]

This can provide some succinctness at the cost of readability.

You can also specify full resources, rather than just resource references:

file { "/foo": ensure => present } -> package { bar: ensure => installed }

But wait! There�s more! You can also specify a subscription on either
side of the relationship marker:

yumrepo { foo: .... }
package { bar: provider => yum, ... }
Yumrepo <| |> -> Package <| provider == yum |>

This, finally, provides easy many to many relationships in Puppet, but
it also opens the door to massive dependency cycles. This last feature
is a very powerful stick, and you can considerably hurt yourself with it.

Run Stages

Run Stages are a way for you to provide coarse-grained ordering in your
manifests without having to specify relationships to every resource you
want in a given order. It�s most useful for setup work that needs to be
done before the vast majority of your catalog even works � things like
configuring yum repositories so your package installs work.

Run Stages are currently (intentionally) a bit limited � you can only
put entire classes into a run stage, you can�t put individual resources
there.

There�s a main stage that resources all exist in by default; if you
don�t use run stages, everything�s in this, but it doesn�t matter to
you. You can define new stages via the new stage resource type:

stage { pre: before => Stage[main] }

Here we�ve used the before metaparameter but you could also use after,
require, etc to establish the necessary relationships between stages.

Now you just specify that your class belongs in your new run stage:

class yum { ... }
class redhat {
...
class { yum: stage => pre }
}

This will make sure that all of the resources in the yum are applied
before the main stage is applied.

Note that we�re using the new parameterized classes here � this is
necessary because of the class-level limitations of Run Stages. These
limitations are present because of the complication of trying to
untangle resource dependencies across stage boundaries if we allowed
arbitrary resources to specify stages.

On a related note, if you specify a stage for a given class, you should
specify as few as possible explicit relationships to or from that class.
Otherwise you risk a greater chance of dependency cycles.

This can all be visualized relatively easily using the �graph option to
puppetd and opening the graphs in OmniGraffle or GraphViz.

Specifying the ordering of Run Stages also works much better when
specified using the new relationship syntax, too:

stage { [pre, post]: }
Stage[pre] -> Stage[main] -> Stage[post]

This way it�s very easy to see at a glance exactly how the stages are
ordered.

Support for hashes in the DSL

This brings a new container syntax to the Puppet DSL: hashes.

Hashes are defined like Ruby Hashes:

{ key1 => val1, ... }

The Hash keys are strings but hash values can be any possible right
values admitted in Puppet DSL (i.e. a function call or a variable)

Currently it is possible:

* to assign hashes to a variable
$myhash = { key1 => "myval", key2 => $b }

* to access hash members (recursively) from a variable containing a hash
(works for array too):

$myhash = { key => { subkey => "b" }}
notice($myhash[key][subkey]]

* to use hash member access as resource title

* to use hash in default definition parameter or resource parameter if
the type supports it (known for the moment).

It is not possible to string interpolate an hash access. If it proves to
be an issue it can be added or worked around with a string concatenation
operator easily.

It is not possible to use an hash as a resource title. This might be
possible once we support compound resource title.

Support for an elsif syntax

Allows use of an elsif construct:

if $server == 'mongrel' {
include mongrel
} elsif $server == 'nginx' {
include nginx
} else {
include thin
}

Case and Selectors now support undef

The case and selector statements now support the undef syntax (see #2818).

Pure Ruby Manifests

Puppet now supports pure Ruby manifests as equivalent to Puppet�s custom
language. That is, you can now have Ruby programs along side your Puppet
manifests. As is our custom, it�s a limited first version, but it covers
most of the specification functionality of the current language. For
instance, here�s a simple ssh class:

hostclass :ssh do
package "ssh", :ensure => :present
file "/etc/ssh/sshd_config", :source => "puppet:///ssh/sshd_config",
:require => "Package[ssh]"
service :sshd, :ensure => :running, :require =>
"File[/etc/ssh/sshd_config]"
end

Similar to the �hostclass� construct here, you can specify defined
resource types:

define "apache::vhost", :ip, :docroot, :modperl => false do
file "/etc/apache2/sites-enabled/#{@name}.conf", :content =>
template("apache/vhost.erb")
end

As you can see from this code, the parameters for the resources become
instance variables inside of the defined resource types (and classes,
now that we support parameterized classes).

We can do nodes, too:

node �mynode� do
include �apache�
end

Ruby has become a first-class citizen alongside the existing external
DSL. That means anywhere you can put a manifest, you should be able to
put Ruby code and have it behave equivalently. So, the �ssh� class above
could be put into �$modules/ssh/manifests/init.rb�, the apache vhost
type should be placed in �$modules/apache/manifests/vhost.rb�, and the
node should probably be in your �site.pp� file.

You can also apply Ruby manifests directly with puppet:

puppet -e mystuff.rb

Note that the Ruby support does not yet cover all of the functionality
in Puppet�s language. For instance, there is not yet support for
overrides or defaults, nor for resource collections. Virtual and
exported resources are done using a separate method:

virtual file("/my/file", :content => "something")

All of the standard functions are also pulled into Ruby and should work
fine � e.g., �include�, �template�, and �require�.

Stored Configuration

Support is now added for using Oracle databases as a back-end for your
stored configuration.

Facts

There are three new facts available in manifests:

$clientcert � the name of the client certificate
$module_name � the name of the current module (see #1545)
$caller_module_name � the name of the calling module (see #1545)

In addition all puppet.conf configuration items are now available as
facts in your manifests. These can be accessed using the structure:

$settings::setting_name

Where setting_name is the name of the configuration option you�d like to
retrieve.

Types and Providers

A new provider for pkg has been added to support Solaris and OpenSolaris
(pkgadd).

A new package provider has been added to support AIX package management.

The augeas type has added the �incl� and �lens� parameters. These
parameters allow loading a file anywhere on the filesystem; using them
also greatly speeds up processing the resource.

Binaries and Configuration

Single Binary

Puppet is now available as a single binary with sub-arguments for the
functions previously provided by the seperate binaries (the existing
binaries remain for backwards compatibility). This includes renaming
several Puppet functions to better fit an overall model.

List of binary changes

puppetmasterd �> puppet master
puppetd �> puppet agent
puppet �> puppet apply
puppetca �> puppet cert
ralsh �> puppet resource
puppetrun �> puppet kick
puppetqd �> puppet queue
filebucket �> puppet filebucket
puppetdoc �> puppet doc
pi �> puppet describe

This also results in a change in the puppet.conf configuration file.
The sections, previously things like [puppetd], now should be renamed to
match the new binary names. So [puppetd] becomes [agent]. You will be
prompted to do this when you start Puppet with a log message for each
section that needs to be renamed. This is merely a warning - existing
configuration file will work unchanged.

New options

A new option is available, ca_name, to specify the name to use for the
Certificate Authority certificate. It defaults to the value of the
certname option (see http://projects.reductivelabs.com/issues/1507).

A new option, dbconnections, is now available that specifies a limit for
the number of database connections made to remote databases (postgreSQL,
MySQL).

A new option, dbport, is now available that specifies the database port
for remote database connections.

Binary changes

The puppetd (or puppet agent) binary now supports the
--detailed-exitcodes option available in the puppet binary.

Certificates cleaned with puppetca (or puppet cert) are now also revoked.

The puppetca (puppet cert) and puppetd (puppet agent) binaries now have
support for certificate fingerprinting and support for specifying digest
algorithms. To display the fingerprint of a client certificate use:

$ puppetd --fingerprint

or

$ puppet agent --fingerprint

To specify a particular digest algorithm use --digest DIGESTNAME.

To fingerprint a certificate with puppetca use:

$ puppetca --fingerprint host.example.com

or

$ puppet cert --fingerprint host.example.com

Also supported is the --digest option.

The puppetdoc binary now documents inheritance between nodes, shows
classes added via the require function and resources added via the
realize function.

Functions

The regsubst function now takes arrays as input (see #2491).

Reports

There is a new report type called http. If you specify:

reports = http

Then the new report processor will make a HTTP POST of the report in
YAML format to a specified URL. By default this URL is the report import
URL for a local Puppet Dashboard installation. You can override this
with the new reporturl setting.

reports = http
reporturl = http://yoururl/post/

CHANGELOG

3180b9d Code smell: Two space indentation
5432259 Code smell: Avoid needless decorations
8f15707 Code smell: Don't restate results directly after assignment
c3e2353 Code smell: Use &&= for dependent initialization
42a5390 Code smell: Use ||= for conditional initialization
a07bbe2 Code smell: Omit needless checks on defined
07b15bf Code smell: Avoid unneeded blocks
8d1fbe4 Code smell: Avoid explicit returns
889158a Code smell: Booleans are first class values.
81e283b Code smell: Line modifiers are preferred to one-line blocks.
e8cf063 Code smell: Use string interpolation
eefccf2 Code smell: English names for special globals rather than
line-noise
184132e Code smell: Use {} for % notation delimiters wherever practical
9ee56f2 Code smell: Inconsistent indentation and related formatting issues
051bd98 Code smell: Miscellaneous oddity removal
77f8599 Code smell: Win32 --> MS_windows
3fbc1d5 Updated GPG rake signing task for new Puppet Labs key
94fa5d5 [#4182] show_diff was broken for streamed file contents
7009704 Fix for #4117 "Storing newly-audited value" messages
9cf9788 Manifests with variables were broken when read from STDIN to
puppet apply
835f73c Use the name in the search path for looking for metadata
5bab997 maint:rename resource_type to define in internal dsl
654b564 [#4198] Require 'fileutils' everywhere FileUtils is used
a07af2b [#4196] Move the docs into the source directory structure
3c00591 Fix for #4178 - generalize autoloading to include .rb
cea2e5b [#3582] Remove assumption that Puppet.settings would return
values of a consistent type
c58e420 [#4180] Support legacy module structure
b4593f2 Update RDoc parser to reflect change of custom plugin and fact
locations
dda165a Fixed #4180 - Updated old module structure to match correct default
1715f3a [#2730] mount ensure present shouldn't unmount
a282cc3 Fixed subscribe example
2353115 Fix for environments in startup script. - Dropped the forced
--manifest switch in the sus
e startup script to allow for environments to re-define this.
Otherwise, environments will not w
ork as puppet override configuration with command line arguments.
cfca62b Redmine: 2474 - Fix for mount fstype documentation
3ff38df Fix for #4137 -- Oracle needs text for strings > 255
62dbae5 Fix for #2807 Puppet settings available as variables
a5fc364 [#4161] RDoc fails to parse some of our ruby syntax
b7e2580 [#3169] Adds more debugging to SSL cert verification
70af43f Fix for #4167 -- overriding file permissions in conf file
2c88884 [#4114] Fixes test failures caused by previous 4114 fixes
4a6428b saving work for my unit tests. The redhat one still fails...
1e0d922 [4123] - allows self.instances to correctly report state of
services.
8d3ced5 created init provider method self.get_services which accepts an
array of filenames to exclu
de when processing defpath.
cdd4382 [#4114] Fix failures in the unit tests
e419293 [#4114] Added queueing to the log
4b00c6a [#4110] Wrap Type#retrieve calls for backwards compatibility
5f8a242 Fix for #4120 No namevar running puppet doc -r type
6ac36eb [#2370] Allow OpenBSD to add packages with versions and flavors
45a9f37 [#4108] Changed missing Application constant error
a0ea74b [#4149] Don't create two Resource::TypeCollections
7978be5 [#3906] Fixed missing constant Puppet::Rails when using
storeconfigs
fb6f2aa [#4136] Specs should listen on localhost
6d4be90 [#3961] Part two: --destroy should also be local
0598f35 Fix for #4148 (2.6 is greater than 0.25.x)
5971898 Fix for #4142 stray use of JSON instead of PSON
74e5bdc [#3172] Fix the arguments to Application::Kick.new, which I had
broken
4f06e9e Maint: Explicitly put test sqlite files in a temp directory
84a9412 maint: fix stub failure in report_spec.rb
1f48d68 maint: fix stub failures in report_spec.rb
bee843a maint: fix stubbing in package_spec.rb
528b915 maint: fix stubs in transaction_spec.rb
37277a5 maint: fix stubbing in catalog_spec.rb
ea55e83 Maint: Improve the speed of setting settings.
7c7f6da maint: file_spec heisenbugs
d6d726b Heisenbug: settings as catalog trying to create directories
e579aab maint: spec_helper should reset settings directories on *every*
test
298a764 maint: Remove a heisentest that wasn't testing what it claimed
b389392 maint: spec_helper should only get loaded once
3304068 maint: :mutable_defaults to improve spec consistency
08b49c6 [#4090] Fix the run_mode for certs and put tests on the
applications to assert their run_mo
de
e318db6 [#4059] fix the specs to correctly mock the
Puppet::Resource.new call signature
ab3d27c [#4059] Minor errors preventing ralsh from running
59bf5e4 [#2713] Enable ELSIF
ebd0311 [#3172] puppet kick can take hostnames as bare arguments
697508d [#4108] Missing constants fail deliberately and with a message
2639a56 [#4092] Changed notify message to defined instead of changed
223157d Fix for #4091 -- require loop in executables
174e02a [#4090] Change how RunMode instances are created so that an
object for each RunMode is only
created once instead of every time it's called
62e3b61 [#4090] Fix last few tests and renames of mode to run_mode
2a25883 [#4090] Git rid of the idea that run_mode is a configurable
option with defaults
75e0662 [#4090] Rename mode (:master, :agent, :user) to run_mode
3cd48d8 [#4089] Replace internal usage of :check with :audit
e848d41 [#3961] puppet cert --generate implies ca_location = :local
255628e [#3961] Rename cert's @mode to @cert_mode to reduce confusion
b2bd05d maint: Confine a test that depends on sqlite
fdc8c35 [#3994-part 3] rename spec tests from *_spec_spec to *_spec.rb
9a94ee2 Fix for test ordering sporadic failure
9ceb454 [#3994-part 2] rename integration tests to *_spec.rb
06dffc1 maint: A test specified that a file wasn't writeable, but was
writeable when run as root, w
hich caused the test to fail. Changing the test so that a directory is
in place of the writeable fi
le so not even root can write to it.
2baf74e maint: Fixes some noisy specs
0aae5a7 maint: Fixing tests that fail when run as root
0fa10a6 Cleaning up various warnings in specs
2ab123f Removing obsolete nodescope concept
153d7cd Fix #3665 - part 2, node inheritance fixes
dd4fa66 Fix failing tests in spec/unit/resources/type.rb
770a8ea Fix #3665 - main class shouldn't be a subscope of itself
76953d8 maint: Fixes broken order-dependent Tidy specs
9afc67a Fix for pre 1.8.7 compatibility in namvar patch
d62a391 Breaking require-loop
b4af238 Fix for #3985 typo causing warning
9169ef0 Fix: puppet apply trying to use XMLRPC constant
af41beb Remove an old test that had been unintentionally reintroduced
by a mistake in a conflict re
solution
6a8e6fe Tweak an old test due to new error handling.
5f53bfa Restore error handling for value=
e817ad1 Fix tests broken by level-violation fix
e5478d4 Simplify the newattr method by removing a level violation
4ef40b8 maint: Rework testing of Reports http processor to be self
contained
edfcbf9 [#3139] Fixed a problem with the value method for parameters
61e978b [#3139] Fixed a broken integration spec in type tidy
cf9bcad maint: Fixing test to reflect that host environment assignment
now takes an object instead
of a string
c70c96b Fix some tests broken by changing the call to newattr
a72fb14 Fixing oversensitive test
15004f3 maint: Fix failing test that needed more methods stubbed
60932e1 Fixed require warning documentation
6fcb87d Fixed mcx documentation error
15ae389 Documentation fixes
f95169b [#4006] Fix test failures caused by reverting ticket 2890
b5572ae Bug 3731. Applied Fix suggested by Doug Warner to always
flatten out the array
117e6b6 maint: Have 'rake spec' output in color
a7e4fe8 [#3810] Do not create a reports settings block
db44a32 Tweak for fix for #1175 to fix test failures
3bd6f11 maint: Fixing a test typo s/stub/stubs/
ebc3e78 maint: Fixing a failing spec by stubbing a method on a stubbed
object that should have been
stubbed.
3b4d33c remove tests for removed code
c8089f1 [#2646] Fixes the change to onetime made in b96cd6c
4bf6950 [#3139] Make newattr idempotent
51b70c0 [#3994] rename the specs to have _spec.rb at the end
9958c80 [#4064] Modify the Rails spec to use the block form of confine
af8bd77 [#4064] Modify confine to also allow a message and a block
containing the test.
182c003 Fixing #3988 - adding support for watchr
3a44f0e Fix #3932 - Add --charset to puppetdoc for RDoc mode
fb5c1d7 Fix #3907 - Hash couldn't be initialized with an empty hash
9592dd8 Fix #3871 - Add the 'in' operator
3696d95 [#3865] External subcommands
0fc41ae [#3802] Replace rug with zypper
dc1a977 [#3766] Remove YAML fixups
e0e6b64 Provides #3723. Add ability for execs to have several attempts
at a successful execution an
d fix minor bug with logoutput and returns as an array..
c8ca19a [#3674] Make sure that failing to load a feature isn't fatal
2a73b5d [#3674] Part 2: Autoloader load method should propagate failures
7952af5 [#3674] Autoloader should propagate failures
f35c59f Fix #3667 - Fix class namespace
938fbe9 Removing obsolete nodescope concept
49cf2f2 Fixing #3651 failing to pop comment stack for some constructs
0dd4201 Fixing #3072 - Resource generation is recursive
b96cd6c Fixes #2646. Move onetime option from the agent to global
defaults so we can specify it in
the config file.
0a21e1b [#2522] authorized keys owner is verified
738802e Fixing #2337 - Adding 'freeze_main' setting
50a626d Fixing #1545 - Adding 'caller_module_name' variable
5d1934b Fixing #1545 - module_name is now a variable
bba45f1 [#4055] Confine CouchDB-related specs to the couchdb feature
1c5b67d [#4055] Refactor of abstract Couch terminus, more specs
432db25 [#4055] Add CouchDB terminus for facts
35636e9 [#3921] Fix typo "fact_terminus" -> "facts_terminus"
45ca669 Targeted fix for #3851
c00285c [#3810] Add http reports processor and `reporturl` setting
1d49def [#3804] Fixed one failing spec for RackREST
1e89bff Fixes #3514 - CR/LF line ending in puppet.conf cause silent failure
e6709da [#3409] fix test failures from ldap environment patch
a7884b4 [#3409] environment is not checked when nodes are in ldap
c75b219 Fixes #3395 - CR+LF line endings in manifests cause syntax error
8b127b1 [#3388] Setting host_aliases from [] to [] no longer results in
any changes
be7112a Fixing #3139 - all properties can now be audited
986298b Working #3139 - Adding Settings.clear Spec#after
32f6a9d Working #3139 - Removing Property#checkable
58cf8d9 Working #3139 - Catalogs default to host_config
8f3e8bb Working #3139 - ResourceHarness does caching
d6407f4 Working #3139 - removing obsolete checking in Storage
0b95a85 Working #3139 - scheduling moved to resource harness
4627b8f Improving fix for #1175; tightening thread safety
ccc869e Part 2 of fix for #1175 (functions in environments)
7c6b883 [#1621] Composite keys for resources
2396eba Use the 'root' feature rather than directly checking the uid
8128311 fix tests to reflect methods moved from type/file/owner to
provider/file/posix
28702a4 variable name error in refactor
19c70b5 Remove over-eager error branch in a complicated If
09881cf Confine out a lib that puppet was failing to load on non-win32
d72fd9d Confine out tests that fail on unix
d1b86ec Behavior change for //UNC_Paths broke an old test
ba506c1 Resolving conflicts with jes5199:ticket/master/2935-settings-mode
f15a324 Fix Exec type
86bd838 Move syslog into a feature
fc92408 Adapt Util::Storage specs and avoid trying to lock on directories
58100ed Relax path qualification check on FileServing::Fileset
1c016a1 Implement quoting on the exec commands and repair specs
6a92894 Avoid trying to symlink() on windows
47c9dd1 Implement "forking" for Windows
c59d864 Avoid non-win32 signals on win32 runtime
bbba9f9 Avoid trying to set uid/gid on windows
a90bcb0 Start extracting the owner managment for files into providers
b51be28 Expand file type to be able to handle Win32 and UNC paths
17a9ad1 Updated version to 2.6.0
a2e809b Fixed RSpec deprecation notice in lexer tests
f054d5b Make specs work on win32
54c4538 Delete tempfiles on win32
97c043f Fix path handling
f80b4c7 Print stacktraces if requested
1d98e67 Adapt defaults to Win32 environment
ea9bb49 More win32? feature def
1645d8e Define posix and win32 features
b3aa3ec Improve error message
d67f60f Fix ProviderDpkg specs to avoid any real executions
e119b04 Avoid setting the timeout before we know which timeout we
should set.
d40e6d4 Bug: tidy specs need FileBucket::Dipper
a6b52bb Avoid trying to lock on non-files
533ef68 Removing obsolete FCollection stub from Functions
bc90df6 Functions are added to a module instead of Scope
17e40e7 Slightly restructuring "Functions" file
9d0a38e [#3921] Add facts_terminus setting to Puppet settings
2874729 [#3921] Remove unnecessary require 'puppet/resource'
58a3d27 Fix for #3949 and related
b755f7f Fixed #3912 - Added client certificate name as an internal fact
called "clientcert"
b5f14c6 {#3866] Rename the method metaclass to singleton_class to avoid
the deprecation warnings fr
om Rails ActiveSupport
2b5bd49 Fixing #3822 - checksums will be loaded from filebuckets
94390de foo
3b7aac5 For #3822 - Reducing checksum code duplication
ca7b166 Fixed unsupported perlstyle regex and few other minor bugs
85f2565 Signed-off-by: Ross West <we...@connection.ca>
a4eb5d5 Signed-off-by: Ross West <we...@connection.ca>
970fd87 Fixing #3791 - client environment is used
cce63d8 Bug #3748 LDAP group membership
4ba3dc2 Fixing #2655 - Adding default parameter values to resources
20a74bc Refactoring tests - replacing stubs with instances
b5db33b Fix for 3664: interpolating qualified variables.
9ddee72 Fix #3664 - qualified variable parsing in string interpolation
a32381e Feature #2935 remove misleading comment
5937af4 Feature #2935 Unify the codepaths for setting settings
b7d387e Feature #2935 Puppet[:mode] and Puppet[:name] are read-only
342298c Bug: Broken codepath in util/settings
6d5566a Feature #2935 settings are in Mode sections instead of
executable names
9536723 Feature #2935: method extract require_application
c338fef Feature #2935: Test for if we're "puppet cert"
cbb2802 Code cleanup: remove "self." from setdefaults
37a5530 Feature #2935 Modes: root? predicate
ac7efc8 Feature #2935 Puppet::Mode#master?
5665e39 Feature #2276 Single Executable: Update docstrings
fc29049 feature #2276 Single Executable: use new names for settings
sections
631552c Feature #2935: Applications should declare modes
8f4d644 Feature #2935: lazify require graph for applications
6b26a7c Feature #2935: Puppet::Mode
b65d1af Feature #2276 Single Executable: usage message
76304f8 feature #2276 Single Executable: move CommandLine methods
e9627a0 Fixing #2658 - adding backward compatibility for 0.24
61a719f Adding #2658 - Adding support for run stages
d13f8ac Fixing #3671 - --compile Catalogs are pretty-printed
89e8745 Fixing #2655 - Adding default parameter values to resources
edcf429 Refactoring tests - replacing stubs with instances
3dfb762 Fixing Catalog conversion
0d4fd60 Fixing #1903 - metaparam inheritance is much faster
047ebfe Fixing Parser::Resource param validation
2fae0bd Fixes #1999 - Allows the 'apt' provider to downgrade packages.
b10d35d Fixes #3745 Catch unhandled exception in ssh_authorized_key
provider
584961a Fixed #3721 - Removed -u option from crontab on HP-UX
a15a70c Fixing tests broken by conceptual merge conflicts
5988f76 Fixes #3663 - It should be possible to list signed hosts only
2c153b1 Fixing #448 - relationships have their own syntax
052f98f Fix #3408 - enable puppetd http compression
3eaf69c Fix for conflict between fileserving streams and none-checksums
2cf7222 Fix #3373 - Client side file streaming
ee5d7f1 Add master side file content streaming
63c122f Fixing tests broken by Luke's CRL flag patch.
91e6022 Fixes incorrect line in partial CRL fix
379bda0 WIP - trying to fix #3460
3947574 Updated Template documentation link
5fd6e54 Change the main spec to an apply spec
009629f Feature #2276 Single Executable: usage message
5b64d3b feature #2276 Single Executable: optparser should get
CommandLine#args instead of ARGV
5683fd9 Feature #2276 Single Executable: Pass a commandline object to
the application
d038a1d Refactor #3706 Reify eigenclasses of Applications
7656ba7 feature #2276 Single Executable: CommandLine can be instantiated
63e2e56 feature #2276 Single Executable: subcommand method
b6e2ce6 feature #2276 Single Executable: help info
b073722 feature #2276 Single Executable: help for apply
bfad735 feature #2276 Single Executable: rdoc paths on ubuntu
7103378 feature #2276 Single Executable: legacy settings
54c1cc5 feature #2276 Single Executable: "puppet describe"
c79b228 feature #2276 Single Executable: "puppet kick"
6bdda8c feature #2276 Single Executable: "puppet cert"
f9783fc feature #2276 Single Executable: "puppet master"
1d8bd0d Fix #3552 single executable should display usage
722a27f Fixes #3702: the 'log' report now sends the host name as the
log source again.
ddd40bb Fix for #3690 failing to calculate error codes
d61a69a Fixing #3668 - fixed autoloading classes from modules
f66095d Fix #3656 JSON serialization of dependencies
f0a0084 Fixes #3582 - Adds dbport configuration option for specifying
database port
8b99367 Adding indirector support to Resource Types
748aed9 Fix #3552 single executable should display usage
eafde5c Added support for flat packages in the pkgdmg package provider.
Added a test in: ./spec/uni
t/provider/package/pkgdmg.rb
c9e3d75 Fix: the rcvar name is not necessarily the same as the service
name. (More and more I get t
he feeling that FreeBSD's rc system is totally unsuitable for Puppet.
What about porting Upstart or
SMF to FreeBSD ... ?)
861c177 Added proper status command
5f72eb9 Re-included old BSD service provider, made new one default for
FreeBSD
c3cd24b Rewrote FreeBSD service provider
1250f80 Fixed documentation issues exposed in #3772
211782f Updated CHANGELOG for 0.25.5rc3
7c59acf Renamed all references to Reductive Labs to Puppet Labs
e82f5de Fix for #3107 Changing users on AIX
44f1465 Fixing #2864 Added support for AIX System Resource Controller
(SRC) - service start stop
02ed8db Fixes #2836. Add hold support to dpkg provider
0f2d3ce Fixes #1223 Add Zypper support for SuSE machines
a166d50 Fix for #3399 zone type should handle exclusive IP stacks
af521fa Adding #3518 - basic dot format support
9b2b0ec Fix #3551 rake spec fails to run integration specs
6a66d5e Update Red Hat spec file for 0.25.5
46c72bb Updated CHANGELOG for 0.25.5rc2
ee0cc07 Fixing #3533 - Removing all transaction cleanup
11189fb Fix for #2910 -- Tidy/matches is too tricky to use
913b63c Bug #3451: Don't leak the terminus class setting from
Puppet::Resource::Catalog's spec
a228399 Fix to the fix for #3295
ae52005 Write ssh_authorized_keys as user
8c5e80e Fixing bad test
088c801 Fix for #3558 -- source file reading speedup
cd06b87 Fix for #3556 Plussignment value melding
2de7da4 Fixed #3655 - Puppet doesn't find installed packages with
portage provider
d20d5de Fixed #3672 - Error message on duplicate fileserver mounts
incorrect
6ae6821 conf/redhat: Add notifempty to logrotate config
7fc66d5 Fixed stored configuration documentation
14456b4 Fixes #3653 - Changed default factpath value to better reflect
plugins in modules
f3e466b Partial fix to #2837 - changed warning message to debug
686239f Fix #3555 - fix state of purged lists
6f8a1e9 Updated Rake tasks to no longer load puppet.rb
83a8c68 Fix #3540 - name methods correctly
3d395e8 Fixes #3295 - generate() now sets the working directory to the
directory containing the spe
cified command.
0f077c7 Added YARD task
b49c60b Update man pages and partial doc fix to #3491
115f37d Fixed #3532 - Typo in lib/puppet/ssl/host.rb
784dd26 Updated version and CHANGELOG to 0.25.5rc1
4a6474c Modify SuSE spec file for 0.25.x and correct shebang lines for
puppetd/puppetmasterd
385506f Fixes #3460 - Makes Puppet FHS compliant by moving /var/puppet
to /var/lib/puppet
b494427 Fix for #3101 (bug in MRI 1.8.7)
966b269 Fixes #3419. OS X 10.6 Ruby doesn't set supplementary groups
49be54e Revert the guts of #2890
e69b7db Fail gracefully on packages that don't have the HOMEPAGE
variable set (e.g. dev-lang/php).
83ac6b8 Fixed #3443 - Typo in mount type
dfe5c3a Fixes #3135 - darwin doesn't support 'mount -o remount'
2a60e1e Adding :catalog_terminus setting
626945b fixing obsolete comment in puppetd
9fbb69f Adding support for only using cached catalogs
7e1e76e Refactoring Configurer to enable the next feature
b28e21a Fixed changelog Rake task
e93eab8 Fix #3155 - prevent error when using two matching regex in cascade
b883272 Fixed puppetlast typo
67bf142 Fixed README contents to reflect Puppet Labs and docs and wiki
changes
e35e142 Fixed link typo
d40e24c Fixed #3384 - Updated broken link
da00f68 Making a Puppet::Module test more resilient
9792915 Fixing yumrepo type to use 'flush'
9ee4c2d Only trying to retrieve passwords on OS X when root
8c31ebe Removing obsolete tests
aee9c29 Fixing a warning in the aix package provider
232ad8f Removing tests for code that was removed in the REST refactor
94fddbc Fixing and porting Transaction Report tests
13d141a Fixing Property#change_to_s in rare case failures
66858ef Fix test in parser.rb due to API change
0f254be Fixing Hash functionality with non-constant keys
41aeba4 Removing vistigial method in ASTHash
1821187 Porting/removing group test/unit tests
03532e0 Porting a simple set of tests from test/unit
006e6af Removing obsolete test
1a6e08f Fixing Transaction integration test
410b71c Removing invalid File integration test
effa719 Cleaning up content/source code
456447c Protecting spec_helper chmod from failure
fa64774 Redeleting puppetmasterd integration test
797f412 Making SshAuthorizedKeys tests less brittle
622bb70 Markus's patch concerning string interpolation
23adec5 Fix tests that use or stub find_by_checksum, which I just
changed the signature of.
4ac8e2c The pure-ruby YAML lib doesn't accept parameters
e31fe8c Fix a failure in new FileBucket where it was impossible to read
from a bucket with a non-de
fault path.
3797c7a Update YAML dir test to match behavior
83d8bda Fix heisenbug in spec/unit/provider/mount/parsed.rb
dde69c3 Remove test for old RDoc work-around
c5ce824 Fixing various broken Resource::Type tests
6cd6c47 Renaming and fixing puppetrun tests.
a27013a Fixing calls to "class_scope" in Scope tests
84d6892 Fixing all 'require' function tests
b643413 Removing any mentions of :casesensitive setting
fe140a2 Migrating "puppet" executable integration test
edef647 Fixing 'puppet' to directly run manifests
fff8d04 Fixing syntax warning
7c25317 Moving puppet back to bin
a4d1ba0 Puppet::Parser::AST::Leaf#evaluate_match "insensitive" renamed
to "sensitive"
404bdfa Repair validate_checksum codepath, even though it is disabled.
e895494 Puppet::Parser::Resource.new parameters have changed
94651df Add stub to Puppet::Parser::Collector test to prevent runaway
stub failures
40c1fb0 Resolving conflicts with ???
1059370 Fixing a typo from a regex
3eeebf5 Fixing change printing for content/ensure
47c3ca1 Converted File[checksum] to a parameter not property
44cba9c Adding "checksum?" helper method to Checksums module
d05d25c Refactoring File[source] tests somewhat
aab2374 Resolving conflicts with luke:tickets/testing/2954
86cf226 Adding virtual and exported resource support to the DSL
9d5ba41 Cleaning up ResourceAPI tests
9060766 s/DSL::ResourceHelper/DSL::ResourceAPI/g
6d2a10b Adding simplistic pure ruby interface
e515513 Adding environment support to parser resources
30f49bb Resolving conflicts with ???
b7015d7 Moving the string interpolation parsing to the parser/lexer
07cfdd0 Resolving conflicts with jesse:feature/master/3394
ad148d6 Resolving conflicts with luke:tickets/master/2759
922cf1a Resolving conflicts with ???
0d70468 Finishing renaming :params to :parameters internally
ad93d0e Forcing parent evaluation in resource types
6e4db82 Fixing type/title resource resolution
aa659f2 Converging the Resource classes further
5401a7c Adding strictness checking to resources
9c867e6 Fixing most of the broken tests in test/
274d1c5 Adding tmpfile cleanup to tests
7089446 Removing Resource::Reference classes
4871c90 Adding support for class parameters
4709e9b Removing :paramcheck and :typecheck settings
744295d Allowing Environment.new to take an environment
4f907c6 TypeCollection now supports namespace arrays
2fa0a48 Adding parameter validation to Puppet::Resource
aff5992 Fixing failing Environment unit tests
61636e4 Tuning file load order
7a99a1d Removing obsolete Settings comments and require
af9a920 Adding an environment helper
c8e89cc Changing the interface of Puppet::Resource
b7ea180 Partially fixing #2954 - Adding class parameters
cbe2c49 Fixing test structure
4bff506 Indirector/FileBucketFile warnings
0917248 REST: Fix a state leak causing test failures
8f9fc30 REST FileBucket: REST barfs on relative paths
23ccefe REST: hide Request object
d8e1b27 Feature #3394 REST runner, execution
1603f73 Feature #3394 REST Runner, preparation
16658a0 Feature #3383 Part 2: Remove RAL XMLRPC
eda649b Feature #3383 RAL over REST
09b1412 Fix tests on #3347
e5a7800 Feature #3347 REST-ified FileBucket
f838389 Fix a failing test in #3115
9acd0b2 Feature #3115 REST-ified status()
b581c23 Fix #3229 - use original value in case/selector regex matching
490a03d Cleaning up a test.
576accd Removing unused Checksum::File terminus
58920a0 Converting File terminus to use formats.
37fd6ae Fixing datadir defaults to match new standards
bf3359e Adding client and server data dirs
b41d535 Adding filename extension support to formats.
7504f1e Resolving conflicts with ???
d0389f4 Renaming Parser::ResourceType to Resource::Type
67ef78d Removing Interpreter class
b82b4ef All non-transient parser references are gone
644ad7e Fixing callers to Parser to only pass environment
9f8e0c0 Using the RTC helper to find the known resource types
1705366 Always warning if autoloading a file fails
7bef2e0 Adding helper module for finding known resource types
804105d Moving Rails initialization to Compiler terminus
26b272b Parser now uses Environment resource type collection
cb16908 Adding 'known_resource_types' to Environment
201889b Renaming LoadedCode to ResourceTypeCollection
2c2b3c2 Storing per-environment LoadedCode instances
6bf1953 Removing old, never-used DSL code
df2d392 Adding support for parsing ruby files
b938edf Fixing test structure
847233f Adding []/[]= support to Parser::Resource
6e04fba Fix for #3366 - --tags '' treated as boolean 'true'
33b565a Fix for #3424 and tests to prove it.
4820a1b Fix for #2604 Pure Ruby yaml generation
1c5b3d7 Fixes #3113 - When importing a manifest puppet needs to chill
e6a720b Fix for #3412 install.rb should not put "." first in the tmp_dirs
b1b3bcf Resolving conflicts with testing
ba2a3af Fix 2239 (step five): introduce new
Puppet::Transaction#stop_processing? flag and associate
d check thereof within the resource evaluation code. This should allow
for the transaction to bail
out of its processing if it finds that a stop has been requested, based
on the state of Puppet::Appl
ication.stop_requested?.
9cb6841 Fix 2239 (step four): Refactored Puppet::Daemon's stop/restart
methods to set status flags
appropriately in Puppet::Application, and removed call to now-deprecated
@agent.configure_delayed_re
start. This should get the restart and stop behavior for daemons and
their agents working nicely wi
th the new global process status interface of Puppet::Application.
82f852a Fix 2239 (step three): Refactored Puppet::Agent to base
starting/restarting behaviors and p
redicates on new run-status interface of Puppet::Application.
edbe9b6 Fix 2239 (step two): introduce
Puppet::Application.controlled_run method to provide simple
status-restricted execution of a passed in block; this can replace the
process status checks and pro
perly handle delayed restart behavior for Puppet::Agent.
2cf647c Fix 2239 (step one): introduce global settings represeting
application run state with metho
ds for setting the state and appropriately-named predicates for querying
state, all in the Puppet::A
pplication class itself. To be used by Puppet::Daemon and Puppet::Agent
and Puppet::Transaction for
better response to TERM, INT, HUP.
ce944a5 Fix unit tests in file/target.rb
481ddb8 Name change of event in ral/type/exec.rb
1ebc91e Use a helper function to evaluate a resource since the API has
changed
bfb1fa5 Allow skipped resources to process events
a18b05d Actually invoke the allow_changes? method in ResourceHarness
bf2f088 Generated resources' events are actually bound to the resource
that generated them.
50ed75b Remove test that tests internal class structures which have
changed.
1779079 Remove stale set_trigger
9154aca Since the types stored in resource's @parameters have changed,
we need to also change inclu
de? method to be more robust.
2a2ab75 Fix test failures due to name changes of event symbols
0a72a98 Remove rollback test, since rollback was removed.
010907b Mark resource/status as failed if they are associated with a
failing event.
17bccb0 Restore noop non-behaviours
8465cd0 Resolving conflicts with reinh:feature/master/single_executable
0f768ed Removing now-obsolete user tests
7627441 Fixing most failing test/ tests.
9d9b20f Fixing Configurer interface to transaction report
eb0a4b5 Fixing fingerprint tests to work with new log validation
f4ef039 Changing REST report integration test to use new interface
fdefb64 Fixing "require" function to use new class interface
266bc08 Removing now-obsolete "retrieve" method on package type
67a75db Fixing broken selinux tests
2777e1f Fixing feature validation when passed one item
5aa26d0 Changing method profile for other event queueing
ec7ea27 Refactoring event queueing for performance
68ce086 Changing the method profile of EventManager#queue_event
9919b14 Moving Metric management to the reports
a9fc134 Removing mention of @changes in Transaction
a18769d Cleaning up the report tests a bit
386b3e5 Fixing #2759 - reports now have complete change info
fbd5b0a ResourceHarness now doesn't check params with no 'should'
3f6c948 Changing Transaction to use the new ResourceHarness
6051599 Fixing log message when changes fail
149d5ef Fixing some compatibility and old tests
c30494f Renaming some methods in Transaction::Change
8d5f052 Adding Transaction::ResourceHarness class
6651aa4 Adding first version of Resource::Status class
4bb35a7 Fixing File type indentation
796d882 Removing last event collection transaction code
e838bcc Solidifying the RAL/Event integration.
977595b Refactoring the Change/Event/Property interface
5776fe4 Cleaning up the Log initialization code.
2292b76 Refactoring the RAL interface to logging
d93d80a Using Logging module in main Puppet module
c6dd180 Adding tests for "Logging" module
242209d Correcting comments and making report timestamp internal
a4b77f6 Failing in app/puppet if facts are not found
f925475 Fixing file content logs
73f57f2 removing extraneous comment
4be8601 Adding Transaction events to Transaction reports
2aa579b Removing a redundant method in Report
5a8b460 Removing unused code and adding a couple of tests
9a78bee Adding tests for the 'report' log destination
f2ed655 Extracting event management into a separate class
329527f Changing SimpleGraph.matching_edges to expect one event
f8d7c44 Moving event creation to the resource
ee9cff9 Reorganizing Property class to match current style
4212f1c Cleaning up Event creation
8280987 Adding "type" instance method to enhance Demeterness
ad90900 Random code cleanup
32d34e9 Moving Ensure property into separate file
3c86666 Moving Parameter utility classes into separate files
2cbd9e8 Switching transactions to callback-based events
6a450c5 removing never-used code
379ac8f Moving log destination code into separate files
b2d1728 fixed a couple of typos
7ab29c4 Unit tests for path changes
a8245d8 Handle path elements with ticks and spaces
98581ad Fix builtins glob in single executable
b4b07f5 Fix failing specs
e7bc19a Rename puppet application spec to main
c014c29 Renaming the old puppet executable
deff92d Find both bin and sbin usage docs, fail gracefully
3c8d012 Fix application name in bin/ralsh
be0ecf8 Initial puppet single executable
7a32777 Renaming applications, mostly removing 'puppet'
b19a044 Some tests were leaking state when the test failed
5b2802c Typo in method call in test.
6a148e2 Supressing warnings (not really failures) in test/unit
06deee7 Fix test using wrong Puppet util filesetting group
74f5167 Mock user in SUIDManager tests
000d37a Removing resources generate tests
11379c0 Removing old test for service/debian provider
2b8125c Replace test/unit file write test with spec
164f1ce Allow adding single key to hashes
fd427a5 Raise an error when appending not a hash to a hash
75c32f9 Fix #2389 - Enhance Puppet DSL with Hashes
9122ac5 Fix #2929 - Allow checksum to be "none"
73c8d0d Fix #3186 - require function set relationship only on the last
class
c5a4de2 Fixing #3185 Rakefile is loading puppet.rb twice
c694c4d Fix #3150 - require function doesn't like ::class syntax
075f3c8 Added time module to tagmail report
dfb8082 Fixed the return types were valid, and removed the copy paste
error with the exception logi
c
6e16ea1 Resolving conflicts with ???
bca7e2c Add AIX package management support (installp&nim)
b2c9455 Fixing #3148 Settings#without_noop when run with no noop setting
8bafc37 Move scope parenting & class_scope from Compiler to Scope
7403c6e [#3392] Better Rakefile, remove puppetmasterd spec
de94f68 Fixing tests in pkg provider
4b55fb0 bug #3407 Part 2
f891ba2 Fixing #3407 Failing tests in spec/unit/node/environment.rb
af9c19a Bug #3406 augeas spec fails if there is not a default provider
718a87a Bug #3402 Stub returning invalid type for :noop
88d6cd5 Bug #3401 Spec failed due to missing manditory setting in mock
d9920bc Bug #3400 Bad mocks causing failing tests
c6f02f2 Fix #3167 Duplicate constant warnings in dpkg.rb
70c71c5 Fixed Rails database tests
46f9d00 Fix #3117 - cert fingerprinting uses a method not available in
ruby <= 1.8.6
04842ef Fixed test error message.
fcce222 First shot at the OpenSolaris pkg(5) provider
3e9677f Feature #2839 - fingerprint certificate
91c44b4 Fix a few puppetd specs tests
d77c9ac Revert "Feature #2839 - fingerprint certificate"
58a81ba Fixing #1054 - transaction reports are always sent
282b4b3 Removing some unneeded validation code from Transaction.new
66a3e6a Removing unused configurer code
2044550 Fix #2894 - exclude .pp files under modules files directories
d31ff7e Adapt to method name change since 8971d8
a9fb82b Feature #2839 - fingerprint certificate
a967b93 Feature #2395 - revoke when cleaning a certificate with puppetca
e26e831 Updated test series
53869e9 Fix #2818 - scope variable assigned with undef are not "undef"
4226e01 Fix for #2959 (calling exit status on a nil report)
8971d8b Fixing #2596 - Node, Class, Definition are not AST
39d4a93 Adding a context method to the Errors module
22c642d Extracting language doc support into a module
adc211a Adding module metadata
bf40f4f Upgrading rspec for tests to 1.2.9
61d1911 Fix 2841 - Puppetdoc/RDoc parses realize function
e63d23e Added tickets/master/2596 to the testing branch
41da962 Feature 2827 Option to disable managing internal files
c9f40be Fixed #2568 - Add database option 'dbconnections'
2d137e2 Fixing #1507 - Adding a :ca_name setting
089ac3e Fixing #2617 - using the searched-for REST name
28e1bc6 Always using the CA_name constant instead of "ca"
2d4b795 Fix #1934 - detailed-exitcodes for puppetd
0f61816 Fix #2649 Allow ssl dir creation in --noop mode
53be6f8 Fix #2796 - Fix puppetdoc rdoc selector parsing
391786f Fix #2795 - puppetdoc rdoc reports a better error message
b832d81 Fix #2784 - puppetdoc/rdoc didn't parse mono-instruction class
content
b1deb89 Covers the RDoc Puppet Parser with specs
ced5a78 Fix #2376 - Display class/node inheritance in puppetdoc
8d9fbbd Fix #2703 - add 'require' to puppetdoc
41b7c3c Adding an example yaml node script
66a44dd type augeas: add 'incl' and 'lens' parameters
c61335f Patch to address feature #2571 to add Oracle support to Puppet

Regards

James Turnbull

-- Author of: * Pro Linux System Administration
(http://tinyurl.com/linuxadmin) * Pulling Strings with Puppet
(http://tinyurl.com/pupbook) * Pro Nagios 2.0
(http://tinyurl.com/pronagios) * Hardening Linux
(http://tinyurl.com/hardeninglinux)

-- Puppet Labs - http://www.puppetlabs.com C: 503-734-8571

James Turnbull

unread,
Jul 10, 2010, 3:11:26 AM7/10/10
to puppet...@googlegroups.com, puppe...@googlegroups.com, puppet-...@googlegroups.com
James Turnbull wrote:
> Welcome back again to the Puppet release cycle with the long-awaited
> eleventy times better 2.6.0rc1 release!
>
> The 2.6.0 release is a major feature release and includes a huge variety
> of new features, fixes, updates and enhancements. These include the
> complete cut-over from XMLRPC to the REST API, numerous language
> enhancements, a complete rewrite of the events and reporting system, an
> internal Ruby DSL, a single binary, a new HTTP report processor, and a
> myriad of other enhancements.
>

Oh and because I always miss something ... basic Windows support!

Regards

James Turnbull

Ryan Dooley

unread,
Jul 10, 2010, 3:58:06 AM7/10/10
to puppet...@googlegroups.com
Awesome :)

Mike Pountney

unread,
Jul 10, 2010, 4:43:39 AM7/10/10
to puppet...@googlegroups.com
+1 to that!

I'm particularly interested in using hashes and stages.

Any knowledge of known gotchas going from 0.25 manifests would be appreciated, if available :)

>> Note that while it’s confusing, you don’t have to have all of the arrows


>> be the same direction:
>>
>> File[/foo] -> Service[bar] <~ Package[baz]
>>
>> This can provide some succinctness at the cost of readability.
>>
>> You can also specify full resources, rather than just resource references:
>>
>> file { "/foo": ensure => present } -> package { bar: ensure => installed }
>>

>> But wait! There’s more! You can also specify a subscription on either


>> side of the relationship marker:
>>
>> yumrepo { foo: .... }
>> package { bar: provider => yum, ... }
>> Yumrepo <| |> -> Package <| provider == yum |>
>>
>> This, finally, provides easy many to many relationships in Puppet, but
>> it also opens the door to massive dependency cycles. This last feature
>> is a very powerful stick, and you can considerably hurt yourself with it.
>>
>> Run Stages
>>
>> Run Stages are a way for you to provide coarse-grained ordering in your
>> manifests without having to specify relationships to every resource you

>> want in a given order. It’s most useful for setup work that needs to be
>> done before the vast majority of your catalog even works – things like


>> configuring yum repositories so your package installs work.
>>

>> Run Stages are currently (intentionally) a bit limited – you can only
>> put entire classes into a run stage, you can’t put individual resources
>> there.
>>
>> There’s a main stage that resources all exist in by default; if you
>> don’t use run stages, everything’s in this, but it doesn’t matter to


>> you. You can define new stages via the new stage resource type:
>>
>> stage { pre: before => Stage[main] }
>>

>> Here we’ve used the before metaparameter but you could also use after,


>> require, etc to establish the necessary relationships between stages.
>>
>> Now you just specify that your class belongs in your new run stage:
>>
>> class yum { ... }
>> class redhat {
>> ...
>> class { yum: stage => pre }
>> }
>>
>> This will make sure that all of the resources in the yum are applied
>> before the main stage is applied.
>>

>> Note that we’re using the new parameterized classes here – this is


>> necessary because of the class-level limitations of Run Stages. These
>> limitations are present because of the complication of trying to
>> untangle resource dependencies across stage boundaries if we allowed
>> arbitrary resources to specify stages.
>>
>> On a related note, if you specify a stage for a given class, you should
>> specify as few as possible explicit relationships to or from that class.
>> Otherwise you risk a greater chance of dependency cycles.
>>

>> This can all be visualized relatively easily using the —graph option to


>> puppetd and opening the graphs in OmniGraffle or GraphViz.
>>
>> Specifying the ordering of Run Stages also works much better when
>> specified using the new relationship syntax, too:
>>
>> stage { [pre, post]: }
>> Stage[pre] -> Stage[main] -> Stage[post]
>>

>> This way it’s very easy to see at a glance exactly how the stages are

>> Puppet now supports pure Ruby manifests as equivalent to Puppet’s custom


>> language. That is, you can now have Ruby programs along side your Puppet

>> manifests. As is our custom, it’s a limited first version, but it covers


>> most of the specification functionality of the current language. For

>> instance, here’s a simple ssh class:


>>
>> hostclass :ssh do
>> package "ssh", :ensure => :present
>> file "/etc/ssh/sshd_config", :source => "puppet:///ssh/sshd_config",
>> :require => "Package[ssh]"
>> service :sshd, :ensure => :running, :require =>
>> "File[/etc/ssh/sshd_config]"
>> end
>>

>> Similar to the ‘hostclass’ construct here, you can specify defined


>> resource types:
>>
>> define "apache::vhost", :ip, :docroot, :modperl => false do
>> file "/etc/apache2/sites-enabled/#{@name}.conf", :content =>
>> template("apache/vhost.erb")
>> end
>>
>> As you can see from this code, the parameters for the resources become
>> instance variables inside of the defined resource types (and classes,
>> now that we support parameterized classes).
>>
>> We can do nodes, too:
>>

>> node “mynode” do
>> include “apache”


>> end
>>
>> Ruby has become a first-class citizen alongside the existing external
>> DSL. That means anywhere you can put a manifest, you should be able to

>> put Ruby code and have it behave equivalently. So, the ‘ssh’ class above
>> could be put into ‘$modules/ssh/manifests/init.rb’, the apache vhost
>> type should be placed in ‘$modules/apache/manifests/vhost.rb’, and the
>> node should probably be in your ‘site.pp’ file.


>>
>> You can also apply Ruby manifests directly with puppet:
>>
>> puppet -e mystuff.rb
>>
>> Note that the Ruby support does not yet cover all of the functionality

>> in Puppet’s language. For instance, there is not yet support for


>> overrides or defaults, nor for resource collections. Virtual and
>> exported resources are done using a separate method:
>>
>> virtual file("/my/file", :content => "something")
>>
>> All of the standard functions are also pulled into Ruby and should work

>> fine — e.g., ‘include’, ‘template’, and ‘require’.


>>
>> Stored Configuration
>>
>> Support is now added for using Oracle databases as a back-end for your
>> stored configuration.
>>
>> Facts
>>
>> There are three new facts available in manifests:
>>

>> $clientcert – the name of the client certificate
>> $module_name – the name of the current module (see #1545)
>> $caller_module_name – the name of the calling module (see #1545)


>>
>> In addition all puppet.conf configuration items are now available as
>> facts in your manifests. These can be accessed using the structure:
>>
>> $settings::setting_name
>>

>> Where setting_name is the name of the configuration option you’d like to


>> retrieve.
>>
>> Types and Providers
>>
>> A new provider for pkg has been added to support Solaris and OpenSolaris
>> (pkgadd).
>>
>> A new package provider has been added to support AIX package management.
>>

>> The augeas type has added the ‘incl’ and ‘lens’ parameters. These


>> parameters allow loading a file anywhere on the filesystem; using them
>> also greatly speeds up processing the resource.
>>
>> Binaries and Configuration
>>
>> Single Binary
>>
>> Puppet is now available as a single binary with sub-arguments for the
>> functions previously provided by the seperate binaries (the existing
>> binaries remain for backwards compatibility). This includes renaming
>> several Puppet functions to better fit an overall model.
>>
>> List of binary changes
>>

>> puppetmasterd –> puppet master
>> puppetd –> puppet agent
>> puppet –> puppet apply
>> puppetca –> puppet cert
>> ralsh –> puppet resource
>> puppetrun –> puppet kick
>> puppetqd –> puppet queue
>> filebucket –> puppet filebucket
>> puppetdoc –> puppet doc
>> pi –> puppet describe

> --
> 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.
>

James Turnbull

unread,
Jul 10, 2010, 5:16:04 AM7/10/10
to puppet...@googlegroups.com
Mike Pountney wrote:
> +1 to that!
>
> I'm particularly interested in using hashes and stages.
>
> Any knowledge of known gotchas going from 0.25 manifests would be appreciated, if available :)

Well the best way to find gotchas is to test the release candidate ...
then you'll know and you can communicate them to others. :)

Regards

James Turnbull

Gary Larizza

unread,
Jul 10, 2010, 10:29:49 AM7/10/10
to puppet...@googlegroups.com
James,

Has the -no-daemonize option been changed?  See below:

bash-3.2# puppet master -v -d -no-daemonize
ambiguous option: -no-daemonize
Try 'puppet master --help'
bash-3.2# puppet master --help
grep: /Library/Ruby/Site/1.8/puppet/util/command_line/*: No such file or directory
No help available for puppet master

-Gary

Peter Meier

unread,
Jul 10, 2010, 10:39:00 AM7/10/10
to puppet...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Has the -no-daemonize option been changed? See below:
>
> bash-3.2# puppet master -v -d -no-daemonize
>
> ambiguous option: -no-daemonize

wasn't it --no-daemonize?

> Try 'puppet master --help'
>
> bash-3.2# puppet master --help
>
> grep: /Library/Ruby/Site/1.8/puppet/util/command_line/*: No such file or
>> directory
>
> No help available for puppet master

- -> projects.puppetlabs.com

cheers pete
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkw4hfcACgkQbwltcAfKi3/s1wCgqgtZ+tDus2s7pxuOM4JPZ0ex
qEYAnRO29EX3csI4eaoPCCGsIEdXVQG4
=IJp8
-----END PGP SIGNATURE-----

Gary Larizza

unread,
Jul 10, 2010, 10:42:18 AM7/10/10
to puppet...@googlegroups.com
Dammit.  I ALWAYS do that.  Thanks!


--
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.




--
Gary Larizza

Director of Technology
Huron City Schools
http://www.huronhs.com


Patrick Mohr

unread,
Jul 10, 2010, 10:54:41 AM7/10/10
to puppet...@googlegroups.com
On Jul 9, 2010, at 11:58 PM, James Turnbull wrote:

> Certificates cleaned with puppetca (or puppet cert) are now also revoked.

Is there some way to clean a cert (using puppet cert) without revoking it? Something like "puppet cert --clean hostname.domain --no-revoke".

File streaming means the client and server don't load the whole file into RAM to send or receive it?

Thanks for all the great work. Puppet has made my life so much easier.
-Patrick

Brice Figureau

unread,
Jul 10, 2010, 10:57:17 AM7/10/10
to puppet...@googlegroups.com
On 10/07/10 10:43, Mike Pountney wrote:
> +1 to that!
>
> I'm particularly interested in using hashes and stages.
>
> Any knowledge of known gotchas going from 0.25 manifests would be appreciated, if available :)

I just tried with my production manifests (on a test env) and found only
3 issues so far:

#4205: impossible to manually import twice the same manifest/module
(yes, I have stuff I never re-written after the autoloader was fully
working back in 0.23.x)
http://projects.reductivelabs.com/issues/4205

#4206: import "path/*" is importing twice the same manifests, which by
vertue of #4205 fails hard (patch sent to puppet-dev)
http://projects.reductivelabs.com/issues/4205

#4207: storeconfigs has a big issue, it wants to store the whole
environment (including full catalog) in the environment column of the
hosts table (patch sent to puppet-dev).
http://projects.reductivelabs.com/issues/4205

Besides those, the puppetmaster part worked fine (I was testing with my
modified puppet-test as a client). I didn't had time to test the client
part, nor a 0.25.x client to a 2.6.0 master, so YMMV.

--
Brice Figureau
My Blog: http://www.masterzen.fr/

Peter Meier

unread,
Jul 10, 2010, 10:57:34 AM7/10/10
to puppet...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/10/2010 04:54 PM, Patrick Mohr wrote:
> On Jul 9, 2010, at 11:58 PM, James Turnbull wrote:
>
>> Certificates cleaned with puppetca (or puppet cert) are now also
>> revoked.
>
> Is there some way to clean a cert (using puppet cert) without
> revoking it? Something like "puppet cert --clean hostname.domain
> --no-revoke".

afaik, not. But could be a feature request. On the other hand, what's
the use case?

> File streaming means the client and server don't load the whole file
> into RAM to send or receive it?

exactly.

cheers pete
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkw4il0ACgkQbwltcAfKi3+3agCfRHC63H607LD8tn8olws7Xcr2
VCsAnisOI4CJj3JYeq5dAKdgmLI7oTtV
=oIyN
-----END PGP SIGNATURE-----

Brice Figureau

unread,
Jul 10, 2010, 10:59:11 AM7/10/10
to puppet...@googlegroups.com
On 10/07/10 16:54, Patrick Mohr wrote:
> On Jul 9, 2010, at 11:58 PM, James Turnbull wrote:
>
>> Certificates cleaned with puppetca (or puppet cert) are now also revoked.
> Is there some way to clean a cert (using puppet cert) without revoking it? Something like "puppet cert --clean hostname.domain --no-revoke".

No. If that's an issue, the workaround is to remove the file manually.
You can file a feature request for this.

> File streaming means the client and server don't load the whole file into RAM to send or receive it?

Correct. You can now serve gigabytes files through puppet without
impacting the RAM usage of both the client and the server.

James Turnbull

unread,
Jul 10, 2010, 11:10:58 AM7/10/10
to puppet...@googlegroups.com
Patrick Mohr wrote:
> On Jul 9, 2010, at 11:58 PM, James Turnbull wrote:
>
>> Certificates cleaned with puppetca (or puppet cert) are now also revoked.
>
> Is there some way to clean a cert (using puppet cert) without revoking it? Something like "puppet cert --clean hostname.domain --no-revoke".

There isn't currently - but happy to take a feature request.

>
> File streaming means the client and server don't load the whole file into RAM to send or receive it?

Yes.

>
> Thanks for all the great work. Puppet has made my life so much easier.

You're welcome!

Regards

James Turnbull

Patrick Mohr

unread,
Jul 10, 2010, 1:11:12 PM7/10/10
to puppet...@googlegroups.com

On Jul 10, 2010, at 7:57 AM, Peter Meier wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 07/10/2010 04:54 PM, Patrick Mohr wrote:
>> On Jul 9, 2010, at 11:58 PM, James Turnbull wrote:
>>
>>> Certificates cleaned with puppetca (or puppet cert) are now also
>>> revoked.
>>
>> Is there some way to clean a cert (using puppet cert) without
>> revoking it? Something like "puppet cert --clean hostname.domain
>> --no-revoke".
>
> afaik, not. But could be a feature request. On the other hand, what's
> the use case?

This isn't my usecase so I don't care, but since you ask...

Suppose you have machines that:
*) Don't get any sensitive information through puppet.
*) Are re-imaged often using PXE+preseeding or PXE+kickstart
*) All the computers have names in the form of "lab-client-*.domainname"

Someone said that in this case you can put "puppetca --clean lab-client-*.domainname" as a cron job, and put "lab-client-*.domainname" in autosign.conf.

Again, I don't do this, so don't do it for me.

Jesús M. Navarro

unread,
Jul 10, 2010, 3:34:56 PM7/10/10
to puppet...@googlegroups.com
Hi:

I don't see that to be a use case in need of a "no-revoke" option. Once you
delete the old machine and re-image it with "PXE+preseeding or PXE+kickstart"
it won't get the old certkey so it'll need to be resigned anyway: to all
practical purposes it's a new machine, so no benefit on not revoking the old
one.

Cheers

Patrick Mohr

unread,
Jul 10, 2010, 9:26:10 PM7/10/10
to puppet...@googlegroups.com


2010/7/10 Jesús M. Navarro <jesus....@andago.com>

But I was saying clean out all client certs and private keys (for clients in this group) off the server once per hour.  Meaning you are running clean while the client exists and has a valid cert/key combo.

I guess you would always do the same thing with two "rm" statements in the cron job instead.
Reply all
Reply to author
Forward
0 new messages