introducing puppetboard 0.0.1

625 views
Skip to first unread message

Daniele Sluijters

unread,
Aug 7, 2013, 8:47:23 AM8/7/13
to puppet...@googlegroups.com

Hello everyone,


It’s a lovely grey and rainy day here in the Dutch summer, as good a day as any to release a new little project.


Its name is Puppetboard and has as aim to replace Puppet Dashboard’s reporting functionality. It does not nor will it include ENC features. It does all this without storing any data itself but querying PuppetDB instead.


The whole thing is built in Python and relies on Flask and WTForms. The communication logic has been split of in its own library called pypuppetdb which makes heavy use of the requests library. The interface is powered by Twitter Bootstrap with the Flatly theme.


Though I’ve pushed all the code out and made it public it’s all very young but it works fairly well. However, I’ve committed numerous barbarities in the code just to get things working and to figure out how to handle certain things. For the foreseeable time in the future I’ll be working on cleaning all this up and figuring out what I can do on my side and on PuppetDB’s side to make all this work a little better. Especially when it comes to dealing with big responses from PuppetDB...


This is the first time I’m open sourcing a project so that too is all new to me. I’d welcome the feedback and if someone feels brave enough even commits on the projects but try and be gentle about it :-). I’ll also be at PuppetConf including the Developer Day so feel free to reach out to me in person.


To the code:


 * puppetboard: https://github.com/nedap/puppetboard

 * pypuppetdb:  https://github.com/nedap/pypuppetdb


I realise that puppetboard doesn't have a test suite right now but it will soon. In order to do so I have to restructure a few things about it first. The installation documentation will improve with it.


Pypuppetdb's test suite will be expanding the coming days once I'm done mocking the HTTP requests _query() makes and manage to get a decent and big enough set of test data to feed into PuppetDB. This will allow me to run integration tests and benchmark certain changes I have in mind.


I’m hoping to be able to get a release out every month with improvements to both projects, perhaps even faster in the beginning but it remains to be seen how much time I’ll be able to spend on it.


A special thanks goes out to Ken Barber for helping out with all things PuppetDB and coming up with a way to run PuppetDB on Travis so we can run integration tests. Hunter, thank you for being so interested in this project and pushing me to release it.


— 

Daniele Sluijters

Nedap | Steppingstone

Klavs Klavsen

unread,
Aug 7, 2013, 9:32:48 AM8/7/13
to puppet...@googlegroups.com
It seems very cool. Thank you for sharing.

One thing that I would be missing, before being able to switch (as gathered from screenshots - I haven't tested it yet :) - is the overview of failed, unreported and unresponsive hosts.
Also - there would need to be a way to query this - just as I currently do from puppet-dashboard (for my nagios monitoring) - so that I can alert when I started getting failed runs etc.

Daniele Sluijters

unread,
Aug 7, 2013, 9:41:05 AM8/7/13
to puppet...@googlegroups.com
Hi Klavs,

Thanks, I'll think about that. An API that could be used for notifications and such was already on my mind. Unfortunately I don't think I can currently ask PuppetDB for the statistics you mention but perhaps that can be added to PuppetDB.

As far as notifying about failed runs through Nagios, we actually use a plugin that checks the report age and its content on every node.

-- 
Daniele Sluijters

Ellison Marks

unread,
Aug 7, 2013, 2:18:09 PM8/7/13
to puppet...@googlegroups.com
If it's something that means I can finally ditch puppet-dashboard's reporting functionality, I will be on that like jam on toast. Screenshots look very cool, I'll probably try to install it later this week.

Erik Dalén

unread,
Aug 7, 2013, 7:47:07 PM8/7/13
to puppet...@googlegroups.com
Cool stuff will try it out. I think we might have some Python projects at work that would be interested in using the pypuppetdb library as well.


--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.
To post to this group, send email to puppet...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Erik Dalén

Daniele Sluijters

unread,
Aug 8, 2013, 5:19:00 AM8/8/13
to puppet...@googlegroups.com
Hey,

That's awesome, let me know how it goes. I'm not sure how well it will be able to handle itself at the scale of your infrastructure but only one way to find out!

-- 
Daniele Sluijters

Ellison Marks

unread,
Aug 13, 2013, 3:13:17 PM8/13/13
to puppet...@googlegroups.com
So I finally got the time to get this going, and it is indeed, very cool. One hitch though: I grabbed the source from github, and most things seemed to work, but the overview page errored out. It seems that it was using python 3 syntax for it's format strings on line 86 and 88.

86: 'avg_resources_node': "{:10.6f}".format(avg_resources_node['Value']),
87: 'mean_failed_commands': mean_failed_commands['MeanRate'],
88: 'mean_command_time': "{:10.6f}".format(mean_command_time['MeanRate']),

I added a 0 to the format specification and it worked  fine

86: 'avg_resources_node': "{0:10.6f}".format(avg_resources_node['Value']),
87: 'mean_failed_commands': mean_failed_commands['MeanRate'],
88: 'mean_command_time': "{0:10.6f}".format(mean_command_time['MeanRate']),


On Wednesday, August 7, 2013 5:47:23 AM UTC-7, Daniele Sluijters wrote:

Ellison Marks

unread,
Aug 13, 2013, 4:36:35 PM8/13/13
to puppet...@googlegroups.com
Er, excuse me, I misspoke. As it is it relies on having python 2.7+, not 3 for the formatting. Still, the Redhat family, by default, is still on 2.6.

Daniele Sluijters

unread,
Aug 14, 2013, 6:50:49 PM8/14/13
to puppet...@googlegroups.com
Hey,

Good catch, I'll get that fixed asap.

-- 
Daniele Sluijters

Niels Abspoel

unread,
Feb 12, 2014, 3:45:13 PM2/12/14
to puppet...@googlegroups.com
Hi Daniele Sluijters,

I've build some archlinux packages to test this out,
and it works very well on Archlinux.



Op woensdag 7 augustus 2013 14:47:23 UTC+2 schreef Daniele Sluijters:

José Luis Ledesma

unread,
Feb 12, 2014, 4:40:42 PM2/12/14
to puppet...@googlegroups.com

Hey, I lost this instruction ( was not in the group in august)

Really nice software, being using it for a couple of months, although I think it lacks some things to be even more useful( at least for me):
- in the main page nodes are in unchanged, changed or error state, would be nice to have the outofsync state( although I don't know if you can get this state without analyzing the full report)
- in the nodes page be able to filter to show last changed reports, last error reports and so on, showing only last ten reports I think is not useful enough.

And that it's :)

Thanks,

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.

Daniele Sluijters

unread,
Feb 13, 2014, 10:02:53 AM2/13/14
to puppet...@googlegroups.com
Niels: Thank you for the Arch packages, I'll add them to the README's.

Jose: I'm not sure what you're getting at, what do you understand as outofsync? Nodes that haven't checked in in a while show up, if that timeframe is too big for you can modify the settings.

-- 
Daniele Sluijters

José Luis Ledesma

unread,
Feb 13, 2014, 1:38:12 PM2/13/14
to puppet...@googlegroups.com

Out of sync means that there are configurations in the node that doesn't meet the configuration it should have. It is useful if you work in noop mode by default.

I'm the yaml report files when a resource doesn't meet the configuration established in puppet master it appears as out of sync.

Regards,

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.

Niels Abspoel

unread,
Feb 13, 2014, 5:32:38 PM2/13/14
to puppet...@googlegroups.com
Hi Daniele,

Thanks for the update in the Readme with the Archlinux Packages.

Would you like to have opensuse/suse support packages as well?

I'm building these on opensuse build server: https://build.opensuse.org/project/show/home:aboe76
Please do not link from that repository, it's my own rpm build environment. 

If you want I can push these into the devel:languages:python repository of opensuse/suse, that way more people
can test this software, and from that repository it is even possible to add them to the next version of opensuse in the default repositories.

with regards,
Niels

Darin Perusich

unread,
Feb 13, 2014, 10:05:45 PM2/13/14
to puppet...@googlegroups.com

You should SR it for the OpenSUSE systems:management:puppet repo so its available along with puppetdb and puppet.

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.

Niels Abspoel

unread,
Feb 14, 2014, 1:11:18 AM2/14/14
to puppet...@googlegroups.com
Darin no problem, will do
Reply all
Reply to author
Forward
0 new messages