By Developers, For Developers
| PDF Pg | Paper Pg | Type | Description | Fixed on | Comments |
|---|---|---|---|---|---|
| 10 | SUGGEST | points 2 and 3 are equal | 2012-01-25 | ||
| 11 | SUGGEST | $vagrant | 2012-01-25 | ||
| 24 | TYPO | cp deployingrails/first_box/ | 2012-01-25 | ||
| 14 | SUGGEST | In the “VirtualBox Guest Additions” box, between these two steps: | 2012-01-25 | I made this change instead, same effect I think: \n \n-vm $ sudo mount -o loop VBoxGuestAdditions.iso vbox/ \n+vm $ sudo mount -o loop /vagrant/VBoxGuestAdditions.iso vbox/ \n \nAlso fixed this: \n \n-$ cp deployingrails/first_box/ \n+$ cd deployingrails/first_box/ \n \nThanks David! \n | |
| 24 | ERROR | In the VirtualBox Guest Additions section, it was first non-obvious to me that if you’re running VirtualBox on Mac OS X, then you also first had to install the dkms package on the Ubuntu VM. It required an apt-get update first though. The error I had was the line used to mount the VBoxGuestAdditions.iso file in the VM. Copying the iso to the first_box directory on the host didn’t make it visible in the vagrant home directory on the VM. After some googling, I got it to work by putting the vm in a folder on the host (under the first_box directory) called guest_additions and then adding to my Vagrantfile: config.vm.share_folder “guest-additions”, “/guest_additions”, “guest_additions” Then rebooting the VM with: vagrant reload This mounted the guest_additions folder on the host to the /guest_additions directory on the VM, then I could mount the ISO with: sudo mount -o loop /guest_additions/VBoxGuestAdditions.iso vbox/ I also had to do a: sudo aptitude install linux-headers-2.6.32-33-server because the installer couldn’t find the correct kernel headers and my VM was using version 2.6.32-33-server of the kernel (as revealed by uname -a). After this you’ll need to remount the VBoxGuestAdditions.iso (if you already mounted it) as installing the kernel headers makes the mount no longer operational (you get input/output errors). After all this running the installer worked and as recommended by the installer, I rebooted the VM using: vagrant reload | 2012-02-03 | Right on, this sidebar has been rewritten to clearly show how to make the iso available via the shared dir. | |
| ii | TYPO | In the second page of the preface, first paragraph, third sentence, there is a missing word “to” after the word “learn”. It should read, “You’ll also learn to pick up …”. | 2012-01-26 | ||
| ii | TYPO | In the second page of the Preface, last paragraph, first sentence, you have used the word “primarily” when you probably wanted to use the word “primary”. It should read, “… where the primary deliverable is a Rails application …”. | 2012-01-26 | ||
| 4 | TYPO | In the paragraph after the “Colocation and building your own servers” heading, first sentence, there are extra words “in a” before the word “either”. It should read, “… and host them either in a colocation facility …” | 2012-01-26 | ||
| 4 | OK | I notice that the “report erratum” links at the bottom of the PDF pages do not automatically fill in the page number as some of the other PragProg books do. I find it nice to have the page numbers automatically filled in. | 2012-05-16 | Asked Brian Hogan about this. \n \nBrian Says: This isn't something we can fix for this book - due to changes in the formatting system, the errata links don't work anymore on many books. It's being addressed at a higher level so I'm marking this as not a problem for this book. | |
| 7 | TYPO | In the second paragraph, last sentence, it looks like there is a missing word “done” after the word “job”. I think it should read, “… a script that gets the job done in ten minutes, …” | 2012-01-26 | ||
| 9 | TYPO | In the first paragraph, last sentence, it looks like there is a missing word “would” before the words “be handy”. I think it should say, “… it would be handy to run it …”. | 2012-01-26 | ||
| 15 | TYPO | In the second paragraph, first sentence, the word “using” is repeated. It should say, “… and connecting to them using ssh.” | 2012-01-26 | ||
| 20 | TYPO | In the second paragraph after the “Running Multiple VMs” heading, second sentence, you need a space between “the” and “define”. It should say, “… is to call the define method …”. | 2012-01-26 | ||
| 58 | SUGGEST | I think it would be better to include in the book a full deploy.rb configuration file for reference (in Appendix?), exhaustively commented including more common options in production environments, like scm through :subversion or :none, etc. | 2012-03-11 | We've got an appendix that does just that; it'll appear in the next beta. Thanks for the suggestion! | |
| 26 | TYPO | In the first paragraph, last sentence, the last word “command” should be plural. | 2012-01-26 | ||
| 27 | TYPO | In the paragraph after the console output for the vagrant commands, you refer to version 0.25.x of puppet, twice, when I believe you want to refer to version 2.5.x. | 2012-01-26 | Actually, the Puppet version is really wild, they went from 0.25 to 2.6 in one leap. So the text is weird, but correct :-) | |
| 32 | TYPO | In the paragraph after the site.pp listing, fourth sentence, I think you have used the word “that” when you wanted to use the word “to” before the word “ensure”. I think you wanted to say, “We’ve also added an enable parameter with a value of true to ensure …” | 2012-01-26 | ||
| 63 | TYPO | At middle page there is a double $, in $ $ cap -h | 2012-01-26 | ||
| 18 | ERROR | Version 0.9.3 of vagrant does not support using a block for the config.vm.customize method. When you try to use a Vagrantfile that has a block for the customize method, you get the following error: You are using a feature that has been removed in this version. Explanation: `config.vm.customize` now takes an array of arguments to send to config.vm.customize [“modifyvm”, :id, “—memory”, “1024”] The above will run `VBoxManage modifyvm 1234 —memory 1024` where Note that this error message will not appear in the next version of Vagrant. | 2012-02-03 | Right on, this will be fixed in the next beta release. | |
| 19 | ERROR | In Vagrant 0.9.3, the forward_port method does not take a parameter for the label, so instead of: config.vm.forward_port “ssh”, 22, 2222, :auto => true It needs to be: config.vm.forward_port 22, 2222, :auto => true | 2012-02-03 | Right on, I've removed these labels throughout and they'll go away in the next beta release. | |
| 29 | ERROR | Vagrant 0.9.3 needs a network type argument in calls to the network method. If you leave it out and just specify the IP address, you get this error message: You are using a feature that has been removed in this version. Explanation: `config.vm.network` changed in 0.9.0 where the first argument is config.vm.network :hostonly, “172.24.24.24” Please change your configurations to match this new syntax. Note that this error message will not appear in the next version of Vagrant. | 2012-02-03 | Right on, these will all prefixed with :hostonly in the next beta release. | |
| 33 | ERROR | I believe the source parameter in site.pp should be “puppet:///modules/apache2/files/apache2.conf” instead of “puppet:///modules/apache2/apache2.conf”. | 2012-01-27 | Actually, Puppet automatically inserts the "files" directory in this case. It's weird, but that's the way it works. | |
| 34 | TYPO | In the paragraph after the “Organizing Manifests with Modules” heading, last sentence, the word “the” is repeated before the word “basic”. It should say, “… which is one of the basic components …”. | 2012-01-27 | ||
| 45 | TYPO | In the paragraph before the passenger_init.pp listing, first sentence, you have used the word “patter” when I think you wanted to use the word “pattern”. It should say, “… complete the package-file-service pattern by adding …”. | 2012-01-27 | ||
| 49 | TYPO | In the paragraph after the “Sample Apache Module” heading, the word “ensure” should be “ensures”. It should say, “Here’s a sample Apache module that ensures Apache is installed, …”. | 2012-01-27 | ||
| 14 | TYPO | In the box “VirtualBox Guest Additions” the shell cmd for Mac OS X seems to be wrong. This $ cp deployingrails/first_box/ should read $ cd deployingrails/first_box/ Cheers Andy | 2012-01-28 | ||
| 16 | TYPO | the tar command vm $ tar -zxf ruby-1.9.2-p290.tar.gz should read vm $ tar zxf ruby-1.9.2-p290.tar.gz | 2012-01-28 | Ha, I've been prepending my tar args with "-" for a long time by habit... need to break that habit. | |
| 40 | ERROR | Did you mean : | 2012-02-27 | You're exactly right; that'll be fixed in the next beta. Thanks! | |
| 55 | ERROR | The text says the git repository is in the local file system, but the code snippet shows : set :repository, “git://github.com/deployingrails/massiveapp.git” Looking at the deploy.rb on master, I assume this is meant to read set :repository, “.” | 2012-03-11 | Thanks! I've modified this part to reflect that the code's on Github. | |
| 16 | SUGGEST | Isn’t better and cleaner installing the Ruby ecosystem through RVM instead of compiling it separately? | 2012-02-03 | I think RVM is most useful for either dev mode or on a server where you're sharing the box with a variety of Ruby versions. | |
| 55 | SUGGEST | I’d spend two rows explaining what the bundler workflow does when setting “require ‘bundler/capistrano’”, might be not immediate for newer Ruby users understanding that bundle places things into #{shared_path}/bundle according to #{release_path}.bundle/config by default. | 2012-03-14 | I've added some notes on that, thanks! | |
| 14 | ERROR | In VirtualBox Guest Additions call out box right after switching from host to vm $ - you now need to switch to /vagrant (cd /vagrant) to see the shared file. It’s not available in /home/vagrant. I’m using Vagrant version 0.9.4 & VirtualBox 4.1.8r75467 on Mac Lion | 2012-02-03 | Right on. I've rewritten this section to mount the iso in a directory in the vagrant user's home dir. | |
| 29 | ERROR | Setting up Puppet 3rd chunk of code That should probably be commit not ci. | 2012-02-03 | ||
| 33 | ERROR | Output from app $ sudo puppet apply —verbose —noop manifests/site.pp | 2012-02-04 | It doesn't; that was removed recently. We can still see diffs with the show_diff argument, although it's not quite as useful as before since the diff includes the puppet state files. I'm updating the examples to Puppet 2.7.10 and will include this, thanks! | |
| 38 | ERROR | puppetrails/massiveapp.pp should be surrounded by file {}. Also there is a unneeded trailing semicolon - this is ruby not C. | 2012-02-21 | I've reworked the way we display these resource declarations to show the context better. Thanks! | |
| 40 | SUGGEST | At this point: “In addition to our standard package-file-service resources we’ll also add two exec resources.” Just where are I supposed to put this? Insert in a existing file or new file and in what folder? Not at all clear. This is similar to page 38 insert of file of puppetrails/massiveapp.pp being vague enough to cause errors. If that snippet is inserted at top of existing file{} it works because of semi but not in second place (where I tried) because existing file doesn’t end in semi colon and we have never seen an example of two files in one file {}. | 2012-02-21 | I've reworked these to better show the context for each snippet. Thanks! | |
| 40 | TYPO | include apache should be include apache2 | 2012-02-29 | Will be fixed in next beta, thank you! | |
| 40 | SUGGEST | “Now when we run Puppet it installs the MySQL package ” but you don’t say to run puppet at this point BUT you do run it at the bottom of page 41. So we install MySQL and create the directories for massive app at this point. The amount of time puppet takes to install mysql is over 1.5 DSL is 5 minutes. Puppet give no sign of being alive (not your fault). This almost led me to believe puppet had crashed. I used ps axf to check and found apt-get running under puppet - whew. Then I got a error about creating massivedb in mysql via puppet. Groan. root@lucid64:/etc/puppet# sudo puppet apply —verbose manifests/site.pp I suspect that you need to define ${massiveapp_production} some how before running mysql module. | 2012-02-27 | Sorry for the issues and thanks for the comments. I've expanded that section a bit to explain the bootstrapping problem, to fix the typo in the password, and to make that unless parameter actually work. Will be good in the next beta. Thanks! | |
| 42 | ERROR | Probably the creation of database.yml here on p42 should come before p40’s mysql module so there is a chance of creating the database. At this point (page 42) we still get an error about create database because ${massiveapp_production} is still undefined. root@lucid64:/etc/puppet# sudo puppet apply —verbose manifests/site.pp | 2012-03-14 | Thanks! This is all sorted out in the next beta. | |
| 1 | SUGGEST | Be consistent wherever there is a green download line like: You need to tell us where to put store or insert every file (or fragment). If you are going to use the download names as the key - then explain how to interpret them. | 2012-02-04 | That's an excellent point, thanks. I've reorganized the files in this chapter so that all of them have the name that you'll need to use when you download them. Also, most of the files are now in a standard Puppet manifests/modules directory structure. There are a few places where I created one-off directories to hold complete, but intermediate, file examples, but even in those cases the files are named properly. | |
| 40 | ERROR | Couldn’t get the mysql service started on the Ubuntu lucid64 box. Did some digging around and found that since the MySQL service is an upstart service on Ubuntu, you have to provide the ‘provider => upstart’ option to puppet’s mysql service definition (otherwise it tries to start mysql using /etc/init.d mysql start, which will fail). Also had trouble starting the mysql upstart service, then found this post (google ‘sudo service mysql start hangs’ and click on the link titled “upstart failing to manage mysqld on Ubuntu 10.04”). Followed Ryan’s comment on that article and changed the exec line in /etc/init/mysql.conf to run mysqld as the mysql server and rebooted the box. Now puppet can start the mysql service. Also the book tries to use a puppet variable (which isn’t defined) for setting the name of the database, so I had to hardcode the database name. So now my modules/mysql/manifests/init.pp file looks like this (and it works): class mysql { | 2012-03-16 | I've reworked a lot of the content around the mysql install (including that variable fix). Should be good in the next beta. | |
| 46 | ERROR | Before the passenger apache module would install I had to install 2 of its dependencies: sudo apt-get install build-essential Then puppet ran everything fine. | 2012-03-16 | build-essential comes with the lucid64 base box, and zlib1g-dev is installed in chapter 2 as part of the new Vagrant base box. | |
| 8 | TYPO | s/primarily deliverable/primary deliverable/ | 2012-02-21 | ||
| 14 | ERROR | In VBox Guest Additions callout box: and So I checked the v-root in the shared area of the VirtualBox application and found that it mounts the root at /vagrant | 2012-02-21 | ||
| 19 | ERROR | Vagrant api change: config.vm.network “33.33.13.37” now requires type of network (‘hostonly’ or ‘bridged’). Example: For: vagrant >=0.9.4 (possible earlier) The message we see is: `config.vm.network` changed in 0.9.0 where the first argument is config.vm.network :hostonly, “172.24.24.24” Please change your configurations to match this new syntax. Note that this error message will not appear in the next version of Vagrant. | 2012-02-21 | ||
| 27 | SUGGEST | I think the box “Puppet alternatives: Chef” in page 27 might be a bit longer, with a URL at least, and explaining that there is an open source Chef and a hosted solution by Opscode. | 2012-02-22 | Thanks for the suggestion, I've added a few sentences and a URL. | |
| 35 | TYPO | the puppetrails/modules/apache2/manifests/init.pp code listing should not yet have the reference to file massiveapp.conf: that comes a few pages later. Running it here throws a puppet error about a missing file. | 2012-02-27 | Thanks, yup, I had switched around those two init.pp files by mistake. Will be fixed in the next beta, thanks! | |
| 39 | ERROR | In the init.pp file listing where we’re installing the massiveapp vhost file: In following the vhost .conf convention, it would seem to me that the | 2012-02-26 | An excellent suggestion, will be fixed in next beta, thanks! | |
| 39 | ERROR | When you create mysql/manifests/init.pp the declaration of the module class is missing, the file should start by: class mysql { | 2012-02-27 | Yup, I was attempting to shorten the code example by just showing the resource declaration... but I think it's just confusing, and it really doesn't shorten it very much. These will be expanded in the next beta, thanks! | |
| 41 | ERROR | Hi, When running the exec of mysql_password, the following error is reported: err: /Stage[main]/Mysql/Exec[mysql_password]/returns: change from notrun to 0 failed: mysqladmin -uroot password root returned 1 instead of one of [0] at /etc/puppet/modules/mysql/manifests/init.pp:32 | 2012-02-27 | Sorry, that'll be fixed in the next beta. Thanks! | |
| 46 | ERROR | Hello (again) Installation of phusion passenger fails when running puppet: info: /Stage[main]/Passenger/File[/etc/apache2/conf.d/passenger.conf]: Scheduling refresh of Service[apache2] When looking further through the apache2 command, the error is as follow: vagrant@app:/etc/puppet$ sudo apache2 -k stop Hoping it helps (now I am stuck anyway). Best regards | 2012-03-16 | I think these were dependencies problems; I've reworked this module a bit and this should "just work (tm)" in the next beta. | |
| 7 | TYPO | First full paragraph, second line. ‘then’ should be ‘than’. | 2012-02-21 | ||
| 73 | ERROR | Something unclear: The Puppet will create an entry for the database config (database.yml) in the /var/massiveapp/shared/config, which is fine. However capistrano (cap deploy:cold) will execute the db migrate from the release directory, which leads to the following error: * [err :: localhost] rake aborted! * [err :: localhost] * [err :: localhost] No such file or directory - /var/massiveapp/releases/20120211152125/config/database.yml Which indeed makes sense, as the database.yml is not physically transferred from GIT. A workaround consisted in copying the file database.yml in the current release: and then rerun a cap employ:migrate, but this does not sound like the purpose of automating deployment. | 2012-03-14 | I've added a section here about an after_symlink hook that copies in the database.yml. | |
| 25 | SUGGEST | Out of sync guest additions: The guest additions on this VM do not match the install version of Guest Additions Version: 4.1.0 I did the following on the vm: The above appears to work for the ubuntu 64 base box and a centos 6 64 base box I am using. I hope the above helps someone. Great book. | 2012-02-21 | Yup, there's a sidebar with notes on updating the guest additions. | |
| 62 | ERROR | “We defined an after_symlink hook, so Capistrano runs that hook now and copies in database.yml:” dont see earlier in the text where this is defined or talked about. | 2012-03-14 | Fixed, thanks! | |
| 40 | ERROR | must be “include apache2” not “include apache” | 2012-02-21 | ||
| 55-57 | TYPO | I think the headings above the sample code should say config/deploy.rb not capistrano/deploy.rb. | 2012-02-21 | Good idea, change made. It'll still have "capistrano" in there since that's the chapter name, but now it's "capistrano/config/deploy.rb". | |
| 33 | ERROR | When adding the file resource in the “manifests/site.pp” file, you list the source as “puppet:///modules/apache2/apache2.conf”. However, later on in that same page you have us copy the apache2.conf file to the “modules/apache2/files/” folder. This mistake is repeated on page 35 in the init.pp listing as well. | 2012-02-21 | Ah, you see, that's the way Puppet does this; the files directory is implicit. | |
| 35 | ERROR | You list “/etc/apache2/conf.d/massiveapp.conf” in the listing for init.pp, but that is the first mention of the file in the book. | 2012-02-27 | Thanks, yup, I had switched around those two init.pp files by mistake. Will be fixed in the next beta, thanks! | |
| 41 | TYPO | The manifest for massiveapp (puppetrails/just_directories/modules/massiveapp/manifests/init.pp) has not commented out most of the START/END comments. | 2012-02-27 | Oh yes, I missed some leading "#" characters there. Will be fixed in the next beta, thanks! | |
| 40 | ERROR | unless => “mysqladmin -uroot -p status” prompts for a password. Maybe you meant unless => “mysqladmin -uroot status” which would tell you if no password is set. | 2012-02-29 | Will be fixed in next beta, thank you! | |
| 40 | ERROR | Used ${massiveapp_production} instead of massiveapp_production. | 2012-02-21 | What a mistake, sorry about that... will be fixed in the next beta. Thanks! | |
| 46 | ERROR | when I ran puppet on this page I received an error on the “/usr/local/bin/passenger-install-apache2-module —auto”: line. When I ran outside of puppet passenger prompted me to install build-essential. Once I installed build-essential, the puppet command completed without errors. | 2012-03-16 | build-essential comes with the lucid64 base box. | |
| 32 | SUGGEST | I have two related suggestions. I think this is a great time to verify apache, locally and from the host. I would also suggest that we group all the apache2 related configs together. However, I also see that adding the port forward now will require another `vagrant reload`. I highly suggest ensuring we test our progress here. | 2012-03-16 | Thanks for the suggestion. I've added a section where we do this - add the forwarded port, bounce the VM, browse in. Always nice to verify that things are actually working! | |
| 13 | TYPO | In the 3rd paragraph (the one that starts with “Chapter 7”) the second sentence starts with “We’lll” It has one to many l’s. | 2012-02-21 | ||
| 60 | TYPO | The second sentence in the third paragraph reads “To get Puppet to install Apache we need to define a resource to tells Puppet about what needs to be installed.” The s should be removed from tells or the to just in front of tells could be changed to ‘that’ | 2012-02-21 | ||
| 64 | TYPO | The last sentence before the code reads “but our focus on on the changes we’re making:” should the first on be “is” instead? | 2012-02-21 | ||
| 17 | ERROR | Before the ‘$ cat > Vagrantfile’ the addition of | 2012-02-27 | Thanks for the tip! I did not know that vagrant init took a box name... that decluttered a few places in the book, thanks! | |
| 39 | SUGGEST | Might want to mention the DocumentRoot doesn’t exist but it will be created later. | 2012-03-16 | Thanks, will definitely mention that! | |
| 12 | TYPO | I don’t think I’ve ever heard lucid referred to as ‘10.4’, it’s ‘10.04’. | 2012-02-27 | Fixed, thanks! Just goes to show what a Red Hatter I am... | |
| 46 | ERROR | On page 46 after configuring the passenger module and including it in site.pp, passenger fails to install. After a few tests, I’ve noticed that the passenger install always fails the first time and always succeeds the second time. If you destroy the vm and then run puppet, the passenger install fails the first time and succeeds the second time. With a fresh vm, comment out the “include passenger” line and run puppet. The install will finish without errors. If you uncomment the line and run again, the passenger install will finish without errors. | 2012-03-16 | I think these were dependencies problems; I've reworked this module a bit and this should "just work (tm)" in the next beta. | |
| 52 | SUGGEST | After cloning massiveapp, it would be helpful if you directed the reader to cd in to the massiveapp directory. | 2012-03-12 | Good catch, fixed, thanks! | |
| 52 | SUGGEST | It might be helpful to readers to provide a brief explanation regarding git branches. Also, have the users run the ‘git branch -a’ command to see that ‘before_capistrano’ is listed there and that ‘checkout’ lets you switch to that branch. | 2012-03-16 | That's a good idea, added a note on that. | |
| 57 | SUGGEST | Here we use a Vagrant file that is the same as that on pg. 27. If you haven’t destroyed the previous vm you will get an error because that vm already exists. | 2012-03-14 | Good point, added a note about that in the text, thanks! | |
| 44 | ERROR | Passenger v3.0.9 is set here. I’m using the latest stable version of ruby (1.9.3p125) which passenger appears to have trouble with. If I use passenger v3.0.11 I don’t have an issue. Problems with ruby 1.9.3 in general are being reported at [http] groups.google.com/group/phusion-passenger/browse_thread/thread/d1bc0b413fe1c2b3?pli=1 | 2012-03-12 | Thanks, yeah, the next beta will reference Passenger 3.0.11. | |
| 8 | SUGGEST | The book discusses Apache (rather than nginx), MySQL (rather than PostgreSQL), Nagios (rather than Monit), Ganglia (rather than Munin). The book needs a general account for these choices (I am imagining it mindshare) but also some defense of the specifics. E.g., one might defend MySQL because it is important to show a master/slave setup, which is easier with MySQL than some other “free” databases. Meanwhile, when a choice is made an there is a significant alternative (nginx, PostgreSQL, especially), provide some pointers for Puppet configs for those alternatives. For my money, a key bit of information would be whether alternative configs are very easy or are problematic. The reader can’t tell if MySQL is just a choice or if it’s the only viable choice because (say) PostgreSQL might have issues with Puppet. An evaluation of Puppet really depends on broadening the reader’s understand of its scope, and whether it supports alternatives as well as what you have selected as a happy path. Related to this: The book is barely about Rails. Indeed, there is so little that it might be educational for the reader to see a Puppet deploy of a Sinatra or even bare Rack app. | 2012-03-15 | That's an excellent point about the applicability of the book to non-Rails apps. We should discuss in the forums. \n \nBy the way, did you get an email notification from this? I hesitate to write a long response here if you won't see it. | |
| 25 | SUGGEST | You say: If you can’t find the Guest Additions ISO, copy them from the app directory (etc.). Another way: wget -c htt p:// download.virtualbox.org/virtualbox/4.1.8/VBoxGuestAdditions_4.1.8.iso (had to put a space in there ’cos this discussion doesn’t allow links.) It would be nice to provide scripts for this pre-setup in the massiveapp-ops repo. As an aside, when I have scripted the guest additions installation, I have noticed that during the install, one loses ones shares. So if I put the script to do the additions in a share (e.g., vagrant/) I have to copy the script to /tmp or somewhere else so that it will not “disappear” during setup. | 2012-03-12 | Interesting, thanks! I hope that the reader will build that base box and then not have to fool with it any more... but I think that's a nice alternative to copying the ISO image around on the filesystem, just added it to the chapter. \n \nHa, that is interesting about the setup as well. Definitely worth doing as part of a new base box then. | |
| 79 | TYPO | You don’t put the good code in deploy hook block set :cap_gun_email_envelope, { | 2012-03-13 | Seems to be working for me; messaged @chussenot to see what he noticed that was wrong. | |
| 31 | TYPO | Not sure about the puppet share. Based on the repo, I think what is meant here is: config.vm.share_folder “puppet”, “/etc/puppet”, “puppet” Compare PDF p. 38 where the share is mounted at /etc/puppet | 2012-03-16 | I've reworked this example for the next beta, thanks! | |
| 27 | ERROR | Your instructions say: Remove the old Ruby (udo apt-get remove ruby ruby1.9.1…) With the current version of the Lucid64 box, though, ruby is still installed (maybe the postinstall.sh I see in the vagrant user’s dir does the source install?). In any case, what is described doesn’t seem sufficient. | 2012-03-12 | Interesting, thanks. Looking at the vagrant user's shell history, it seems like the lucid64 base box includes rubygems 1.3.7 installed from source, so those "apt-get remove"s don't clear it out. \n \nI've added an rm -rf /usr/local/lib/site_ruby; that should do it. Thanks! | |
| 39 | ERROR | Unless I’m mistaken you never install rubygems. Ruby gets installed on PDF p. 27 . . . Then on p. 39 there’s an attempt to install the puppet gem. | 2012-03-14 | This is related to your other errata comment about not completely uninstalling Ruby from the lucid64 base box. RubyGems had been installed manually by whoever built the base box. I've added more "rm -rfs" and added notes on installing RubyGems. Thanks! \n \n[further edit] 1.9.3 p194 comes with rubygems, so I removed that section in installing rubygems. | |
| 39 | ERROR | The book specifies puppet 2.7.10, which has apparently been pulled — See h ttp://projects.puppetlabs.com/projects/1/wiki/Release_Notes | 2012-03-12 | Thanks, yup, the next beta will show 2.7.11. | |
| 46 | SUGGEST | Your setup to colorize your code quotations is changing the color of “ensure” in the .pp file because it thinks it’s Ruby. But it’s not really Ruby. If, in this situation, ensure should get a special color, so should the other parameter names for packages and services such as “enable” Meanwhile, see p. 43 where “ensure” does not get the special color. So it’s at least inconsistent. | 2012-03-12 | Hm, I had some of them highlighted using Ruby and some of them highlighted using a more generic setting. I've switched them all to use the more generic setting, thanks! | |
| 12 | SUGGEST | In the section of Installing Vagrant, the version mentioned (0.9.4) is out of date. Should it be changed to the most recent version ie 1.0.1? | 2012-03-15 | Thanks, yup, version will be bumped in next beta. | |
| 12 | SUGGEST | Again on the installation of Vagrant section, the documentation on the Vagrant website states that: — So should the package be the preferred method of installation? | 2012-03-15 | Good point, text changed to reflect that, thanks! | |
| 14 | SUGGEST | on the VirtualBox Guest Additions section there is a list with suggestions that work with different systems and it is located here: I’ve followed the instructions for the debian-lenny package I’m trying out and the commands needed to have the guest additions installed were: sudo apt-get update and then logout, do a vagrant reload and it was fine. Wouldn’t an inclusion to that link with the instructions from Virtual Box cover a bigger range of OSs? | 2012-04-17 | Added a link to that page, thank you! | |
| 16 | SUGGEST | Wouldn’t a ruby installation using rvm be preferable as that is also the way that the ‘Agile Web Development’ describes as the easiest way to install ruby 1.9.3 ? | 2012-03-21 | We discuss RVM a bit in a later chapter. Generally, we prefer to avoid RVM on the server unless we have a specific use case for it - i.e., when it's a shared server with a bunch of apps running different versions. | |
| 19 | SUGGEST | On the last sentence of the paragraph before the last Vagrantfile_with_options code, it says that: Whenever we add new forward_port directives we need to restart the VM via vagrant halt and vagrant up. Wouldn’t that work by using vagrant reload ? | 2012-03-21 | Right on, yup, and there are a few other places in b2 where we recommend a halt/up where reload would work. Those will all be fixed in the next beta. | |
| 16 | ERROR | I couldn’t remove default ruby from lucid64. dpkg -l does not show any ruby package, but ruby -v returns ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] Here is my console output: vagrant@lucid64:~$ ruby -v | 2012-03-21 | Hm, interesting... I get this (pasting the output here resulted in bad formatting): \n \nhttps://gist.github.com/2144026 | |
| 16 | ERROR | Early version of vagrants’ lucid64 has ruby installed at /opt/ruby . You can’t manage it from apt-get or dpkg. | 2012-03-26 | Interesting, thanks for the info! Looks like the current version doesn't include that, which is nice: \n \n$ vagrant init lucid64 \nvA `Vagrantfile` has been placed in this directory. You are now \nready to `vagrant up` your first virtual environment! Please read \nthe comments in the Vagrantfile as well as documentation on \n`vagrantup.com` for more information on using Vagrant. \nfoo> $ vagrant up \n[default] Importing base box 'lucid64'... \n[default] The guest additions on this VM do not match the install version of \nVirtualBox! This may cause things such as forwarded ports, shared \nfolders, and more to not work properly. If any of those things fail on \nthis machine, please update the guest additions and repackage the \nbox. \n \nGuest Additions Version: 3.2.8 \nVirtualBox Version: 4.1.10 \n[default] Matching MAC address for NAT networking... \n[default] Clearing any previously set forwarded ports... \n[default] Fixed port collision for 22 => 2222. Now on port 2200. \n[default] Forwarding ports... \n[default] -- 22 => 2200 (adapter 1) \n[default] Creating shared folders metadata... \n[default] Clearing any previously set network interfaces... \n[default] Booting VM... \n[default] Waiting for VM to boot. This can take a few minutes. \n[default] VM booted and ready for use! \n[default] Mounting shared folders... \n[default] -- v-root: /vagrant \nfoo> $ vagrant ssh \nLast login: Wed Aug 11 17:51:58 2010 \nvagrant@vagrantup:~$ ls -l /opt/ruby/ \nls: cannot access /opt/ruby/: No such file or directory \nvagrant@vagrantup:~$ ls -l /opt/ \ntotal 4 \ndrwxr-xr-x 8 root root 4096 2010-08-11 17:51 VBoxGuestAdditions-3.2.8 \nvagrant@vagrantup:~$ \n | |
| 19 | TYPO | 193.168.* should probably be 192.168.* | 2012-03-26 | Right on, thanks, will be fixed in next beta. | |
| 79 | TYPO | Two identical blocks with capistrano2/cap_gun.rb, the actual hook is not shown. | 2012-03-30 | Thanks for the note. I've removed the cap_gun section (at least temporarily) since it's not compatible with Rails 3.2 due to ActionMailer API changes. Hm, need to look at cap_gun_reloaded though. | |
| 114 | ERROR | If you’ve run the Vagrantfile from the nagios chapter and then try to run the one on this page you’ll get an error like: A customization command failed: [“modifyvm”, “dd30edd4-b4af-4290-aa36-92ed367278f5”, “—name”, “app”, “—memory”, “512”] The following error was experienced: VBoxManage: error: Could not rename the directory ‘/var/root/VirtualBox VMs/ganglia_1334609734’ to ‘/var/root/VirtualBox VMs/app’ to save the settings file (VERR_ALREADY_EXISTS) Please fix this customization and try again. To workaround it, I changed the vm customization on the ganglia Vagrantfile to use a different name than “app”, for example: app_config.vm.customize [“modifyvm”, :id, “—name”, “app2”, “—memory”, “512”] This seems to get the VMs to startup. | 2012-04-17 | Added a note about the unique constraint on VM names, thanks! | |
| 121 | SUGGEST | When I tried to access the ganglia web frontend, I got an error saying: There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused It turned out to be that the gmetad wasn’t staying up because the /var/lib/ganglia/rrds directory needed to be owned by nobody and it was owned by a ganglia user account. So I was able to add this to my puppet manifest for the ganglia::server under the file section: \t\t“/var/lib/ganglia/rrds”: This allowed the daemon to stay running and I can now see the ganglia web frontend. | 2012-05-03 | Thanks! I had made a gmetad.conf configuration change in the massiveapp_ops repo but not mentioned it in the text. Fixed! | |
| 121 | TYPO | The port of the web frontend will be the forwarded port for port 80 as specified in the ganglia Vagrantfile. It should be 4568 instead of 5678. | 2012-04-28 | Thank you, fixed! | |
| 124 | TYPO | The curl command at the bottom of the page will download the HTML page you see in the browser instead of the raw file itself. It should be the URL that you get when you click the Raw button in the upper right corner of the file’s content box on the HTML page. | 2012-05-08 | Good catch, fixed, thanks! | |
| 1 | OK | Managing and deploying multiple VM’s would be an apt addition. E.G I have two different apps I need to deploy to the same physical box. How to do that with vagrant VM’s and how to manage port forwarding etc. | 2012-06-13 | Interesting! I kind of feel like we've covered some of the tooling around that since we talk about forwarding various ports and running multi-VM setup. Can you tell me a little more about what you're looking for there? | |
| 143 | ERROR | When I tried to spin up the boxes defined in the Vagrantfile on this page, I got the following error: There was a problem with the configuration of Vagrant. The error message(s) vm:
So bumping up the IP addresses so that they end in 2, 3, and 4 respectively seems to work. | 2012-04-28 | Sorry about that; in next beta the IPs will be in the 33.* subnet. | |
| 508 | SUGGEST | “VM will be much more useful if the host machine can access services running on the guest.” Does ‘guest’ mean the vm? please use the same nomenclature throughout. | 2012-04-28 | Exactly right; the host is the machine that's running VirtualBox (i.e, your laptop) and the "guest" is the virtual machine. | |
| 145 | ERROR | The line: slave $ mysql -uroot -proot -h10.2.1.1 —port 3406 -e “show databases” resulted in the error: ERROR 2003 (HY000): Can’t connect to MySQL server on ‘10.2.1.2’ (111) (Keep in mind I had to make the mysql_master 10.2.1.2 since Vagrant (or maybe VirtualBox) doesn’t like IP addresses that end in 1 as that is a multicast address) When I change the port to 3306, it works. | 2012-05-08 | Thanks! I was fiddling around with ports and left it broken... fixed. | |
| 145 | TYPO | The command at the bottom of the page is missing an “-e” before the “change master to…” statement. | 2012-04-28 | Fixed, thank you! | |
| 1100 | TYPO | though we don’t have any configuration changes to make to my.cnf at this point, we’ll add the default MySQL configuration file contents to modules/mysql/files/my.cnf so that we’re ready for any future additions. Also, to get Puppet to load up our module, we’ll add it to our manifests/init.pp: => should be site.pp right? include apache Anthony Burns; Tom Copeland. Deploying Rails (drew gilliam) (Kindle Locations 1100-1104). The Pragmatic Bookshelf (342670). | 2012-04-28 | Exactly right, that was a typo, will be fixed in next beta, thanks! | |
| 1100 | ERROR | This line in the vagrantfile prevents network access for me (mac osx lion) config.vm.network :hostonly, “33.33.13.37” When I comment it out i’m fine to download packages and run puppet to install apache/mysql et cetera. | 2012-06-13 | I think this has been sorted out... this was a b2 problem and I've been through all the examples since then. | |
| 143 | ERROR | The Vagrantfile on this page needs to have a host name associated with at least the app VM, since if you’re going to run puppet on it, you’ll need the host name to match the node name in the puppet nodes.pp manifest. | 2012-05-08 | Thanks! Added. | |
| 19 | TYPO | Regarding “common router-assigned subnets”, did you mean 192.168.*? | 2012-05-14 | Yup, sure did, will be fixed in the final copy, thanks! | |
| 30 | TYPO | In the last paragraph: “…we need to define a resource to tells Puppet…” | 2012-05-14 | Yup, will be fixed in final copy, thanks! | |
| 32 | TYPO | Very first line of page 32 is $ sudo puppet apply —verbose manifests/site.pp Shouldn’t the prompt be referencing our app VM? Like app $ sudo puppet apply —verbose manifests/site.pp Or is this really suppose to be run from the host prompt? | 2012-05-14 | You're correct, it's supposed to be run in the guest, will be fixed in final copy, thanks! | |
| ix | TYPO | Second to last paragraph, last sentence, needs an indefinite article: “…and decisions which can affect [an] application’s stability.” | 2012-06-12 | Fixed in copyedit, thanks! | |
| 12 | DEFER | Should the version of Ubuntu being used for this demo be upgraded to the new LTS, 12.04 Precise Pangolin? | 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. \n \nHm, maybe I can do a branch in the massiveapp_ops repo and do that, though. | ||
| Prefa | TYPO | probably need an article like “an” before “application’s” there are still plenty of choices to make and decisions which | 2012-06-12 | Fixed in copyedit, thanks! | |
| xii | TYPO | “the” is probably unnecessary here: to an alternative technology stack consisting of the | 2012-06-12 | Fixed in copyedit, thanks! | |
| 176 | SUGGEST | RVM installation method has changed. It is now curl -L get.rvm.io | bash -s stable . It redirects to a github link now but it may not work like that in the future. | 2012-06-13 | Excellent, installation instructions updated, thanks! | |
| 3 | TYPO | “In the Cloud” paragraph: Disk input/output performance…with a data-centric applications." ——- the “a” should be removed. | 2012-06-12 | Good catch, that even got past copyeditor, fixed, thanks! | |
| 3 | TYPO | “In the Cloud” paragraph: “Costs may also increase dramatically as the application resource needs grow.”——- “to” should be added between “needs” and “grow.” | 2012-06-12 | Hm, I think it's correct as written. "resource needs" is the subject, so "grow" is the correct verb. | |
| 65 | DEFER | 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/.bundle - it’s not very clear. | Hm, yeah, maybe something for a blog entry. It'd be good to nail that down further. | ||
| 30 | OK | It seems that the default option when creating a new user without a home directory (at least in lenny32) is like: sudo useradd —comment “Puppet” —system —shell /bin/false puppet instead of: | 2012-06-13 | Hm, I'm not sure, it's a valid command in lucid32: \n \nvagrant@vagrantup:~$ useradd --help |& grep no-crea \n -M, --no-create-home do not create the user's home directory \n | |
| 30 | OK | If you are using rvm in the VM the puppet gem installation should be done without using the sudo command, so instead of using: | 2012-06-13 | Hm, that's true, although in the RVM chapter we don't get into Puppet installation. True enough, though. | |
| 30 | DEFER | Just checking out the puppet installation documentation and it is suggested that the gem installation is not recommended, but instead the system package installation is recommended | Hm, probably too late to change it now, but I'll put in a sidebar about that, thanks for the heads up. | ||
| 24 | TYPO | In the first paragraph under the header ‘Bridged Networking’ the first sentence is: Should the correct text be: | 2012-06-12 | Oops, fixed, thanks! | |
| 24 | TYPO | I think in the first sentence of the “Bridged Networking” section, you meant to say “Vagrant’s” instead of “Puppet’s”. If Puppet’s is correct, then you lost me somewhere. | 2012-06-12 | Oops, fixed, thanks! | |
| 16 | ERROR | Attempt to remove the existing ruby install does not work. Ruby 1.8.7 still installed after apt-get remove command. vagrant@lucid64:~$ sudo apt-get remove ruby ruby1.9.1 ruby-dev \\ | 2012-06-12 | I see the problem - the latest lucid64 base box removes a bunch of clutter and it's all in /opt/vagrant_ruby now. Fixing post-copyedit, thanks! | |
| 17 | ERROR | Installation of ruby 1.9.3 not complete. After running ./configure, make and sudo make install for ruby 1.9.3 ruby 1.8.7 is still active version of ruby. vagrant@lucid64:~/ruby-1.9.3-p194$ ruby -v | 2012-06-12 | I see the problem - the latest lucid64 base box removes a bunch of clutter and it's all in /opt/vagrant_ruby now. Fixing post-copyedit, thanks! | |
| 209 | TYPO | “then” should be “them” in this sentence: “Clients make HTTP requests to nginx, nginx forwards then to Unicorn, Unicorn builds and returns the response, and nginx takes care of feeding data to the client as quickly as the bandwidth allows.” | 2012-06-12 | Fixed in copyedit, thanks! | |
| 36 | TYPO | “manager” should be “manage” in the following sentence “Next let’s see how to manager one of the Apache configuration files using Puppet.” | 2012-06-12 | Fixed in copyedit, thanks! | |
| 30 | DEFER | 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. So it seems that for the time being, and until the puppet 3.x is released as a gem, if installing puppet as a gem, it should be done by using ruby 1.8.7 and puppet 2.7.x | Kosmas, thanks. You're right, looks like they recently made an explicit statement on 2.7.x and 1.9.3. \n \nI 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. \n \nAnother approach would be to have one Ruby version for Puppet and one for the Rails app. Not a bad idea, although adds some complexity. | ||
| 92 | TYPO | iThe code example has a namespace called ‘deploy’, while the bottom page paragraph talks about a ‘passenger’ namespace. | |||
| 84 | TYPO | symlink_command += release_directories.map { |directory| "mkdir -p #{directory} } missing " after #{directory} | |||
| 33 | SUGGEST | sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline-dev \\ I think libcurl4-dev mentioned that it was a virtual package and apt-get forced me to pick 1 of its 2 recommendations. Will throw other users off as the install will not work right off the bat. Makes you initially think the package does not exist or that you have to skip this section of the book as it cannot be completed. I managed to see the output of course, but if other users did not have to go through this same manual step then that’d be great. Thanks. | |||
| 53 | ERROR | 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 from source and installed in /usr/bin/local), this won’t work without sudo. (whether that is a good setup or not is not really the issue, just highlighting the issue) | |||
| 83 | TYPO | 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 be like this: | |||
| 68 | TYPO | Should the example Vagrantfile use massiveapp instead of massiveapp_ops: … or should 4.3 Setting up Deploy be run from massiveapp_ops? | |||
| every | ERROR | 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 implying a puppetmaster. This is a pretty blatant error and I’m surprised it made it to market in this condition | |||
| 112 | ERROR | 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 conclusion). | |||
| 63 | TYPO | 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 them. I think it should be then not them. | |||
| 168 | TYPO | 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 the reference should be modules/apache2/files. | |||
| 169 | TYPO | class apache2 {
I believe this should be /modules/apache2/apache2.conf | |||
| 171 | TYPO | class apache2 {
There is NO such “/usr/bin/logrotate”. I think you mean “/usr/sbin/rotatelogs”. I could be mistaken because in my app VM there is no logrotate. | |||
| 185 | ERROR | Vagrant::Config.run do |config| config.vm.define :mysql_master do |m| Not sure why the VM here refer to lucid32 - thought we should be using at least for APP the lucid64_with_ruby193? | |||
| 174 | ERROR | Should we also delete the file /etc/profile.d/vagrant_ruby.sh after removing the default Ruby version? | |||
| 50 | SUGGEST | 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 instructions here: www.42.mach7x.com/2012/12/12/writing-a-passenger-module-for-puppet-vagrant/ | |||
| 55 | SUGGEST | 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 instead of server, is virtualbox? Can also add that you could get the hostname by typing ‘hostname’ in the virtualbox and then replacing the “app” in the nodes.pp file with the name you get back from the hostname. Of course that would only apply if you haven’t set up the hostname in the Vagranfile as “app” at the start. | |||
| 28 | SUGGEST | 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 cloned copy, “empty” is not listed. I believe this branch is not copied from the GitHub repository because there are no files in the branch, and git ignores it. This caused me confusion, until I tried “git checkout —track origin/empty” on the next page, which magically created the branch in my local repository. I’d suggest either omitting the “empty” branch tag from the listing on page 28, or put a .gitignore file in the branch so git has something to work with (that’s the suggestion here: git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F) | |||
| 104 | ERROR | mem = capture(“free -m | grep Mem”).squeeze.split(’ ’)[1..–1] should be mem = capture(“free -m | grep Mem”).squeeze(’ ‘).split(’ ’)[1..–1] because “123 444 566”.squeeze => “123 4 56” | |||
| 69 | TYPO | 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. | |||
| 22 | ERROR | 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, which tells Vagrant that if the port isn’t available, it should search for another available port.” Therefor writing: app_config.vm.forward_port 22, 2222, :auto => true should result in: [output]… But on my machine I got following error: vm:
Cheers, | |||
| 99 | SUGGEST | 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/initial_node/manifests/nodes.pp node “app” inherits basenode { include apache2 |