Breaking old practices
When Puppet Labs decided to work on the parser and on the new features, they also decided to remove some features that had already been deprecated for a couple of releases.
Converting node inheritance
Node inheritance has been considered good practice during older Puppet releases. To avoid too much code on the node level, a generic, nonexistent host was created (basenode
) and the real nodes inherited from basenode
:
node basenode { include security include ldap include base } node 'www01.example.net' inherits 'basenode' { class { 'apache': } include apache::mod::php include webapplication }
This node classification is no longer supported by Puppet 4.
As of 2012, the Roles and Profiles pattern became increasingly popular, bringing new methods on how to allow smart node classification. From a technical point of view, roles and profiles are Puppet classes. The profile module wraps technical modules and adapts their usage to the existing infrastructure by providing...