Learning Puppet 4 is complete, now for some fiction!

by on Mar.26, 2016, under News, Publications

Learning Puppet 4

As I’m sure you saw through my other sites, Learning Puppet 4 has gone to final production.

The online version is already available, and the dead tree version will start shipping next week.

After three technical non-fiction books in 4 years, I’m going to focus on fiction for a while. I had always intended to do both, but that didn’t work out as intended. I’ve learned a lot about working more effectively, and more supportive methods of procrastination. It’s time to indulge my creative brain again.


2 Comments for this entry

  • Patrick Rtyll

    Hi Jo, (tried your email and I got a daemon-mailer)

    Purchased your Learning Puppet 4 book; great so far, thanks! Quick question though: I’m having trouble understanding the options for running puppet with and without sudo. The book seems to indicate that not using sudo is presumed due to the ~/.puppetlabs/etc/puppet/puppet.conf config file (which I see). It also seems to indicate that adding ’sudo chown -R vagrant /etc/puppetlabs’ should make the vagrant user to owner and thus preclude the use of sudo (I think at least…). However, I still seem to need sudo despite adding that command and having the config file. And even using sudo only works if I add the sudo grep secure_path /etc/sudoers … (on page 34).

    So I’m not stuck since I can use sudo; however, I’d like to understand how NOT to use sudo…not really so much for convenience as much as for just understanding how to do it. Any advice would be appreciated.

    Thanks much,

    Patrick Ryll

  • Patrick Rtyll

    Jo, (the email override must not have worked…I hope this method is still okay…figure it is since you have to approve it before it goes live…

    Thanks for getting back to me. I appreciate it.

    I have a question though. And though it may seem somewhat sarcastic and borne of frustration, I’m actually serious, i.e. not a rhetorical question. My question is: Is Puppet truly worth it?

    The reason I ask is that, since being introduced to Puppet, it has caused me nothing but frustration. Granted, there has been a benefit in learning linux and it has certainly made my a more patient debugger/problem solver (!); that said, it has not offset the ridiculous time suck I have had to endure: My Puppet journey began with a course on pluralsight that was actually pretty good, but that I couldn’t finish because of errors involving certificates and the byzantine passenger dependencies, etc. (and I wasn’t the only one with these issues, judging by other comments). I actually waited for your book for this reason. And, no offense, but I’m having just as many issues now. (I say no offense because I don’t think at all your book is the issue; rather, it is the dependency-laden program itself…your book is quite clear)

    To name just one: I can’t even start the puppet server in Chapter 21. I’ve spent a few hours on this and the best I can get is this:

    [vagrant@puppetserver sysconfig]$ sudo tail -f /var/log/puppetlabs/puppetserver/puppetserver.log
    2016-06-01 05:52:33,057 INFO [async-dispatch-2] [p.t.s.w.jetty9-core] Starting web server.
    2016-06-01 05:52:33,081 INFO [async-dispatch-2] [o.e.j.s.Server] jetty-9.2.z-SNAPSHOT
    2016-06-01 05:52:33,166 INFO [async-dispatch-2] [o.e.j.s.h.ContextHandler] Started o.e.j.s.h.ContextHandler@77675880{/puppet-ca,null,AVAILABLE}
    2016-06-01 05:52:33,167 INFO [async-dispatch-2] [o.e.j.s.h.ContextHandler] Started o.e.j.s.h.ContextHandler@703080c1{/puppet-admin-api,null,AVAILABLE}
    2016-06-01 05:52:33,167 INFO [async-dispatch-2] [o.e.j.s.h.ContextHandler] Started o.e.j.s.h.ContextHandler@631f88ec{/puppet,null,AVAILABLE}
    2016-06-01 05:52:33,168 INFO [async-dispatch-2] [o.e.j.s.h.ContextHandler] Started o.e.j.s.h.ContextHandler@5d60d8e1{/,null,AVAILABLE}
    2016-06-01 05:52:33,320 INFO [async-dispatch-2] [o.e.j.s.ServerConnector] Started ServerConnector@56d21983{SSL-HTTP/1.1}{0.0.0.0:8140}
    2016-06-01 05:52:33,321 INFO [async-dispatch-2] [o.e.j.s.Server] Started @69437ms
    2016-06-01 05:52:33,349 INFO [async-dispatch-2] [p.s.m.master-service] Puppet Server has successfully started and is now ready to handle requests
    2016-06-01 05:52:33,350 INFO [async-dispatch-2] [p.s.l.legacy-routes-service] The legacy routing service has successfully started and is now ready to handle requests

    So it seems to be working, but for whatever reason, it is the legacy service (okay….). Which kind of brings me full circle: if you have to be a configuration/linux/command-line/os expert to use Puppet, it is really worth it? It seems to be the ultimate irony that software designed to make configuration seamless and easy is itself the most pull-out-your-hair configuration nightmare I have ever seen.

    I realize that part of the issue is not poor teaching, but is a function of a changing and rapidly updated project…but still.

    At any rate, I am primarily a developer and not a dev ops person; however, I want to learn as much as I can about dev ops, thus my trying to learn Puppet (and Chef…although if it’s anything as hard as Puppet…dear God). I find myself at a fish-or-cut-bait situation…any recommendations? Does Puppet make this purposely difficult and dynamic so people will pay for training? Again…not a rhetorical question…I would gladly pay a reasonable price to learn this stuff…but it seems to me that there is no reason why all of this should be so hard and prone to issues…

    Anyway, just wanted your opinion, should you have the time/inclination. Thanks, Patrick

Leave a Reply