Drawing dependency graphs
Dependencies can get complicated quickly, and it's easy to end up with a
circular dependency (where A depends on B, which depends on A) that will cause Puppet to complain and stop working. Fortunately, Puppet's --graph
option makes it easy to generate a diagram of your resources and the dependencies between them, which can be a big help in fixing such problems.
Getting ready…
Install the graphviz
package for viewing the diagram files:
ubuntu@cookbook:~/puppet$ sudo apt-get install graphviz
How to do it…
Follow these steps to generate a dependency graph for your manifest:
Create the directories for a new
admin
module:ubuntu@cookbook:~/puppet$ mkdir modules/admin ubuntu@cookbook:~/puppet$ mkdir modules/admin/manifests ubuntu@cookbook:~/puppet$ mkdir modules/admin/files
Create the file
modules/admin/manifests/ntp.pp
with the following code containing a deliberate circular dependency (can you spot it?):# Manage NTP class admin::ntp { package { 'ntp': ensure =>...