Puppet Dashboard – Inventory Service

As a user of the free version of the Puppet Dashboard, I’m always looking for little tips and tricks that can make it more useful in my day to day job. Some of the features that you find in the Puppet Enterprise (PE) version are available in the free version, it just takes a bit of time and effort to get working for you.

One of those features was recently brought to my attention by a co-worker. In the Puppet Dashboard, its possible to have the facts of your node presented within the web UI. PE does this by default, but in the open source version you have to do a little wrench turning to get it working. My co-worker had already gotten it working on our production environment, but I wanted to see what it took to get running in my lab.

Here’s the great part about all of this…its really freaking easy to setup!

The Setup

  1. First and foremost, read the documentation found at http://docs.puppetlabs.com/dashboard/manual/1.2/configuring.html

  2. Update your /etc/puppet/auth.conf to allow for the dashboard to connect to the service. The docs state to use this:

    path /facts
    auth yes
    method find, search
    allow dashboard
</div>

but I found other examples online that used the following. My guess is they changed the auth and allow lines when they got a permission denied error like I initially did. This second one did the trick for my lab and since its all internal networking and not accessible to anyone on the outside world&#8230;I felt it safe to not use the SSL auth between puppet and the dashboard running on the same host.

<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;width:435px;">
  <div class="text codecolorer">
    path /facts<br /> auth any<br /> method find, search<br /> allow *
  </div>
</div>
  1. Update your Puppet Dashboard settings.yml (mine was in /usr/share/puppet-dashboard/config/settings.yml) This one is pretty simple to do. Change the enable_inventory_service from false to true. Also double check your inventory_server line to make sure it has a valid entry. I forced mine to localhost.

    • Restart Puppet-dashboard (CentOS start up scripts do a crappy job of this. actually had to stop, then start the process)

    • Go to your dashboard and find a node. You should see some extra bits. Check out the before and after shots below.

## The Results

**Before:**

Before we had our Recent Reports followed by our Dashboard Activity. 

[<img src="http://usrlocal.com/wp-content/uploads/2013/03/inventory_before-300x300.png" alt="inventory_before" width="300" height="300" class="aligncenter size-medium wp-image-2175" srcset="http://usrlocal.com/wp-content/uploads/2013/03/inventory_before-300x300.png 300w, http://usrlocal.com/wp-content/uploads/2013/03/inventory_before-150x150.png 150w, http://usrlocal.com/wp-content/uploads/2013/03/inventory_before.png 778w" sizes="(max-width: 300px) 100vw, 300px" />][1]

**After:**

And after we have a nice invetory section between them. _(NOTE: I did have to cut out the node names in the following image to protect the innocent)_

[<img src="http://usrlocal.com/wp-content/uploads/2013/03/inventory_after-300x215.png" alt="inventory_after" width="300" height="215" class="aligncenter size-medium wp-image-2174" srcset="http://usrlocal.com/wp-content/uploads/2013/03/inventory_after-300x215.png 300w, http://usrlocal.com/wp-content/uploads/2013/03/inventory_after.png 780w" sizes="(max-width: 300px) 100vw, 300px" />][2]

<div class="sharedaddy sd-sharing-enabled">
  <div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing">
    <h3 class="sd-title">
      Share this:
    </h3>
    
    <div class="sd-content">
      <ul>
        <li class="share-facebook">
          <a rel="nofollow" data-shared="sharing-facebook-2156" class="share-facebook sd-button share-icon no-text" href="http://usrlocal.com/2013/03/puppet-dashboard-inventory-service/?share=facebook" target="_blank" title="Click to share on Facebook"><span></span><span class="sharing-screen-reader-text">Click to share on Facebook (Opens in new window)</span></a>
        </li>
        <li class="share-linkedin">
          <a rel="nofollow" data-shared="sharing-linkedin-2156" class="share-linkedin sd-button share-icon no-text" href="http://usrlocal.com/2013/03/puppet-dashboard-inventory-service/?share=linkedin" target="_blank" title="Click to share on LinkedIn"><span></span><span class="sharing-screen-reader-text">Click to share on LinkedIn (Opens in new window)</span></a>
        </li>
        <li class="share-google-plus-1">
          <a rel="nofollow" data-shared="sharing-google-2156" class="share-google-plus-1 sd-button share-icon no-text" href="http://usrlocal.com/2013/03/puppet-dashboard-inventory-service/?share=google-plus-1" target="_blank" title="Click to share on Google+"><span></span><span class="sharing-screen-reader-text">Click to share on Google+ (Opens in new window)</span></a>
        </li>
        <li class="share-pinterest">
          <a rel="nofollow" data-shared="sharing-pinterest-2156" class="share-pinterest sd-button share-icon no-text" href="http://usrlocal.com/2013/03/puppet-dashboard-inventory-service/?share=pinterest" target="_blank" title="Click to share on Pinterest"><span></span><span class="sharing-screen-reader-text">Click to share on Pinterest (Opens in new window)</span></a>
        </li>
        <li class="share-twitter">
          <a rel="nofollow" data-shared="sharing-twitter-2156" class="share-twitter sd-button share-icon no-text" href="http://usrlocal.com/2013/03/puppet-dashboard-inventory-service/?share=twitter" target="_blank" title="Click to share on Twitter"><span></span><span class="sharing-screen-reader-text">Click to share on Twitter (Opens in new window)</span></a>
        </li>
        <li class="share-email">
          <a rel="nofollow" data-shared="" class="share-email sd-button share-icon no-text" href="http://usrlocal.com/2013/03/puppet-dashboard-inventory-service/?share=email" target="_blank" title="Click to email this to a friend"><span></span><span class="sharing-screen-reader-text">Click to email this to a friend (Opens in new window)</span></a>
        </li>
        <li class="share-end">
        </li>
      </ul>
    </div>
  </div>
</div>