small medium large xlarge

The latest version of the book is P1.0, released over 7 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (20-Sep-12)
PDF page: every
The book is based on the idiom of using a shared directory and git repo but every example uses a puppet:// scheme rather than a file:// scheme implyin...more...
  • Reported in: P1.0 (24-Mar-13)
PDF page: 22
Hello, running on Vagrant 1.1.2 MacOS 10.8.3, VB 4.2.10 According to the PDF: "For forwarding the ssh port, we include the :auto option, whic...more...
  • Reported in: P1.0 (04-Feb-13)
PDF page: 28
In section 3.2 "Setting Up Puppet", the listing for "git branch -a" shows a branch named "empty", however when I executed the command on my local clon...more...
  • Reported in: P1.0 (19-Jul-12)
PDF page: 33
sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline-dev \ git-core curl libyaml-dev libcurl4-dev libsqlite3-dev apache2-dev...more...
  • Reported in: P1.0 (12-Dec-12)
PDF page: 50
For an alternative passenger installation when using puppet 3.0.1, system wide rvm installation and a debian/ubuntu base box I have put some modified ...more...
  • Reported in: P1.0 (23-Jul-12)
PDF page: 53
The passenger installation process uses gem to install the passenger gem. With the box exactly as specified in the text (that is, ruby 1.9.3 compiled ...more...
  • Reported in: P1.0 (13-Dec-12)
PDF page: 55
For the sentence: "The node name, which must be unique, must be the same as the host name of the server" wouldn't it be easier to understand if ...more...
  • Reported in: P1.0 (06-Nov-12)
PDF page: 63
This sentence is not correct: This is a file resource but has different parameters than the earlier file resources, so we can’t just com- bine it t...more...
  • Reported in: P1.0 (21-Aug-12)
PDF page: 68
Should the example Vagrantfile use massiveapp instead of massiveapp_ops: ... config.vm.share_folder "puppet", "/etc/puppet", "../massiveapp_ops...more...
  • Reported in: P1.0 (24-Feb-13)
PDF page: 69

In the last paragraph, "Figure 2, The deploy:code task flow," - should read "deploy:cold". Same for the caption on Figure 2 on page 70.

  • Reported in: P1.0 (03-Aug-12)
PDF page: 83
Capistrano deploy:symlink tasks is bronken. It has an error on symlink and it uses the current_path instead of the latest_release path. It should b...more...
  • Reported in: B4.0 (12-Jul-12)
PDF page: 84

symlink_command += { |directory| "mkdir -p #{directory} }

missing " after #{directory}--Rawane ZOSSOU

  • Reported in: B4.0 (24-Jun-12)
PDF page: 92

iThe code example has a namespace called 'deploy', while the bottom page paragraph talks about a 'passenger' namespace.--Claudio Ortolina

  • Reported in: P1.0 (28-Mar-13)
PDF page: 99
On PDF site 99 you're including a memcached class which havn't been discussed anywhere. Would be nice to have more infos about that: monitoring/ini...more...
  • Reported in: P1.0 (14-Feb-13)
PDF page: 104
mem = capture("free -m | grep Mem").squeeze.split(' ')[1..-1] should be mem = capture("free -m | grep Mem").squeeze(' ').split(' ')[1..-1] be...more...
  • Reported in: P1.0 (14-Oct-12)
PDF page: 112
About NRPE, the example plugin, which is check_ssh, doesn't work. I suppose it's check_user here (in fact, this plugin is using for this section's con...more...
  • Reported in: P1.0 (07-Nov-12)
PDF page: 168
We’re customizing apache2.conf, so we’ll need to copy it into modules/apache/files and make a change to the CustomLog directive. --- I believe ...more...
  • Reported in: P1.0 (07-Nov-12)
PDF page: 169
class apache2 { # other resources file { "/etc/apache2/apache2.conf": mode => "0644", owner => "root", group => "...more...
  • Reported in: P1.0 (07-Nov-12)
PDF page: 171
class apache2 { # other resources file { "/etc/apache2/apache2.conf": mode => "0644", owner => "root", group => "...more...
  • Reported in: P1.0 (11-Dec-12)
PDF page: 174

Should we also delete the file /etc/profile.d/ after removing the default Ruby version?--Kosmas Chatzimichalis

  • Reported in: P1.0 (07-Nov-12)
PDF page: 185 do |config| config.vm.define :mysql_master do |m| = "lucid32" m.vm.host_name = 'mysql_master' m.vm.forward_port 3306, 3...more...

Stuff To Be Considered in the Next Edition

  • Reported in: B3.0 (18-May-12)
PDF page: 12

Should the version of Ubuntu being used for this demo be upgraded to the new LTS, 12.04 Precise Pangolin?--Rebecca Skinner

Tom Copeland says: That would be tough... would be a really widespread change and I hate to introduce it at this point. Such are the pitfalls of a tools book. Hm, maybe I can do a branch in the massiveapp_ops repo and do that, though.
  • Reported in: B3.0 (14-Jun-12)
PDF page: 30
Suggestion about rvm ruby version and puppet: According to the puppet documentation the 2.7.x puppet is supported with ruby version 1.8.7. The pup...more...
Tom Copeland says: Kosmas, thanks. You're right, looks like they recently made an explicit statement on 2.7.x and 1.9.3. I think we'll probably leave the book's suggestions in place; the examples all work with 2.7 and 1.9.3 (despite the warning messages), and seems like Puppet 3.0 will be out pretty soon. I see they're on rc3 currently. We'll try to make a point of doing a blog post and updating the massiveapp_ops repo once 3.0 comes out. Another approach would be to have one Ruby version for Puppet and one for the Rails app. Not a bad idea, although adds some complexity.
  • Reported in: B3.0 (01-Jun-12)
PDF page: 30
Just checking out the puppet installation documentation and it is suggested that the gem installation is not recommended, but instead the system packa...more...
Tom Copeland says: Hm, probably too late to change it now, but I'll put in a sidebar about that, thanks for the heads up.
  • Reported in: B3.0 (30-May-12)
PDF page: 65
Just after require 'bundler/capistrano' I think it would be nice to spend some more words to explain the structure of shared/bundle and current/.bundl...more...
Tom Copeland says: Hm, yeah, maybe something for a blog entry. It'd be good to nail that down further.