Ever seen this message?
Puppet: could not find dependency group for user 'foo' at...
Puppet lets you specify a dependency between two resources, or to put it another way, that one thing should happen before another. Sometimes, though, the chain of dependencies becomes so complex that you accidentally create a circular dependency, which Puppet doesn’t like.
err: Could not apply complete catalog: Found dependency cycles in the following relationships: Package[ntp] => Service[ntpd], Service[ntpd] => Package[ntp]
When the chain of dependencies is a long one, it can be hard to debug this. I tweeted mournfully that a diagram of the dependencies would be useful:
The vastly knowledgeable @ripienaar and @adamhjk soon put me right: yes, Virginia, you can get Puppet to draw a graph of your resource dependencies. In fact, this was discussed on the Puppet mailing list some time ago. Read more »
This tutorial is rather out of date, and I’m afraid I haven’t had time to update it, because I’ve been working on a whole book that’ll teach you Puppet!
The Puppet 3 Beginners Guide is available now. I recommend you check it out, but I’ll keep the tutorial content here for historical interest, if nothing else.
If you’re a more advanced Puppet user, you might prefer to go straight to The Puppet Cookbook.
Puppet tutorial series
- Part 1: Powering up with Puppet 2.6
- Part 2: Client and Server
Puppet tutorial part 1: Powering up with Puppet 2.6
This Linux Puppet tutorial will help you install Puppet for the first time and start managing your servers. Server configuration management (CM) is big news in the IT world these days. Rightly so, because Linux automation, devops and CM tools like Puppet and Chef can save you an enormous amount of time and money and help you build a really reliable and automated Linux infrastructure. In this tutorial, I’ll show you how to set up Puppet on Linux.
If you’re a sysadmin, or anyone else who manages a bunch of servers, CM tools can help you create patterns or recipes which you can use to build lots of identical servers, or cloud instances, or re-use in different places and for different applications. Automating Linux servers is a snap with Puppet. Puppet can manage thousands of servers as easily as just one or two - but let’s start with one or two!
If you’re a developer, Linux configuration management lets you write code which describes how servers should be set up - saving you the time and effort of doing it manually, and letting you create large, load-balanced groups of interchangeable servers which are guaranteed to be identically configured.
So much for the sales pitch. Let’s take a look at the steps required to get up and running with your first Puppet install (we’ll come to Chef in a later article). Read more »