Puppet: System Administration Automated

Support

Pulling Strings with Puppet - Errata

Please post errata for "Pulling Strings with Puppet - System Administration Made Easy" by James Turnbull.

Please post errata by chapter with page references. Errata should also be submitted at the Apress site.

General Notes

Where you see a ~CCC - this is a code continuation character that means the line is broken and continued on the next line. Should all be fixed 23/2.

Cover Page

The front cover states 192 pages, but there are only 169. - This is a print versus PDF issue. They are different page counts.

Chapter 2

Page 17, David Lutterkort, not David Lutter. Fixed 23/2 - apologies David.

Page 25, After this paragraph

"Puppet detects if you have any nodes defined. If you don’t have any defined, as we have here, Puppet turns off node designation. With node designation turned off, all configuration resources (excluding configuration in classes and definitions, which we’ll talk about in Chapter 3) defined will be applied to all nodes that connect to the master. As we don’t have any nodes, nor any substantive configuration, it’s easiest to turn off nodes until we’re ready to define our first node. We’ll look at node definition in Chapter 3."

There should be this note:

NOTE In versions older than 0.24.x you will also need to add the --nonodes option to disable node definition. This option is deprecated in 0.24 and later.

Page 25, After this paragraph

"This time we’ve started puppetmasterd with the --verbose and --no-daemonize options. The --verbose option turns on verbose logging, and the --no-daemonize option forces the master daemon to run in the foreground. This mode is ideal for troubleshooting your master daemon."

There should be this note:

NOTE The --no-daemonize option was introduced in version 0.24 of Puppet. Prior to this the --verbose option alone causes the puppetmasterd not to daemonize.

Chapter 3

Page 59, Listing 3-11, Conditional Selectors, "name" in the selector should be "$name" as used in later examples. - Example is correct.

Page 60, Listing 3-13, Case Statements, each conditional statement is missing a closing brace. Fixed 23/2

Page 61, Example Case statement , "true" => { include class } should in-fact be "true": { include class } as according to the current language guide.

Page 67, Listing 3-17, Node Inheritance and Variable Scope, "node1" should be "webserver" Fixed 20/5

Page 68, Listing 3-18, Node and Variable Scoping Workaround, "base_node" should be "basenode" Fixed 20/5

Chapter 4

Page 105, Listing 4-11, The listing has "mysql_user" and "mysql_group". According to page 102 and the wiki page "PuppetBestPractice#managing-users", these should be "user_mysql" and "group_mysql", prefixed with user / group.

Page 116, Listing 4-19, The apache Module's init.pp, the paragraph following the listing says that the service statement includes a "hasstatus" attribute, when it isn't present. Fixed 23/2.