Legacy Puppet patterns
This section will highlight some old patterns and their reason for use in old versions of Puppet. This will help you to understand code that can be commonly found in older, unmaintained modules or code that simply has never been refactored over time. Puppet 4 introduced data types, but before this, all variables were strings, and a lot of comparisons and other functions could have quite strange and inconsistent results. To understand the full extent of this, you can view www.youtube.com/watch?v=aU7vjKYqMUo. Therefore, you might see in historic code the odd handling of variables and checks for undefined variables. Originally, facter facts were also just called top-level variables, which could be very confusing with normal variables and created the opportunity for accidental overrides. This changed to the facts hash, which we will show in more detail in Chapter 5.
The platform infrastructure was more complicated and varied with the options of using Rack or WEBrick...