Version information
Start using this module
Add this module to your Puppetfile:
mod 'jhoblitt-ganglia', '1.2.2'
Learn more about managing modules with a PuppetfileDocumentation
Puppet ganglia Module
Table of Contents
Overview
Manages ganglia gmond & gmetad daemons + web front end
Description
This is a puppet module for installation and configuration of the
ganglia
gmond
& gmetad
daemons + web
front end.
Usage
ganglia::gmond
This class manages the configurtion of the Ganglia gmond
daemon.
# unicast
$udp_recv_channel = [
{ port => 8649, bind => 'localhost' },
{ port => 8649, bind => '0.0.0.0' },
]
$udp_send_channel = [
{ port => 8649, host => 'test1.example.org', ttl => 2 },
{ port => 8649, host => 'test2.example.org', ttl => 2 },
]
$tcp_accept_channel = [
{ port => 8649 },
]
# multicast
$udp_recv_channel = [
{ mcast_join => '239.2.11.71', port => 8649, ttl => 1 }
]
$udp_send_channel = [
{ mcast_join => '239.2.11.71', port => 8649, bind => '239.2.11.71' }
]
$tcp_accept_channel = [
{ port => 8649 },
]
class{ 'ganglia::gmond':
cluster_name => 'example grid',
cluster_owner => 'ACME, Inc.',
cluster_latlong => 'N32.2332147 W110.9481163',
cluster_url => 'www.example.org',
host_location => 'example computer room',
udp_recv_channel => $udp_recv_channel,
udp_send_channel => $udp_send_channel,
tcp_accept_channel => $tcp_accept_channel,
}
-
cluster_name
String
defaults to:unspecified
-
cluster_owner
String
defaults to:unspecified
-
cluster_latlong
String
defaults to:unspecified
-
cluster_url
String
defaults to:unspecified
-
host_location
String
defaults to:unspecified
-
udp_send_channel
Array of Hash
defaults to:[ { mcast_join => '239.2.11.71', port => 8649, ttl => 1 } ]
-
udp_recv_channel
Array of Hash
defaults to:[ { mcast_join => '239.2.11.71', port => 8649, bind => '239.2.11.71' } ]
-
tcp_accept_channel
Array of Hash
defaults to:[ { port => 8659 } ]
ganglia::gmetad
$clusters = [
{
name => 'test',
address => ['test1.example.org', 'test2.example.org'],
},
]
class{ 'ganglia::gmetad':
clusters => $clusters,
gridname => 'my grid',
}
-
clusters
Array of Hash
defaults to:[ { 'name' => 'my cluster', 'address' => 'localhost' } ]
-
gridname
String
defaults to:undef
ganglia::web
class{ 'ganglia::web': }
class{ 'ganglia::web':
$ganglia_ip = '192.168.0.1',
$ganglia_port = 8652,
}
-
ganglia_ip
String
defaults to:127.0.0.1
-
ganglia_port
String
defaults to:8652
Limitations
Tested Platforms
It has been tested on:
- el5.x
- el6.x
- ubuntu 12.04
- ubuntu 13.04
- debian 6.07
$::osfamily == RedHat
and EPEL packages
As of 2012-11-16, the stable EPEL repos for el5 and el6 contain, respectively, packages for ganglia 3.0.7 and 3.1.7. The ganglia UDP protocol for communication between gmond daemons changed incompatibly between 3.0.x and 3.1.x. However, the TCP based protocol gmetad uses to poll gmond agents has remained compatible.
If it's desirable to stick with the EPEL packages, a possible way of dealing with this is divide a group of hosts into two clusters based on $::lsbmajdistrelease (which should imply gmond version without having to install a custom fact). The example below divides the previous "mycluster" into "mycluster_el5" and "mycluster_el6". Note that you will also have to configure gmetad to pull a gmond agent from each of these new clusters.
$udp_recv_channel = [
{ port => 8649, bind => 'localhost' },
{ port => 8649, bind => '0.0.0.0' },
]
case $::lsbmajdistrelease {
5: {
# epel for el5.x has 3.0.x, which will not work with gmond in 3.1.x
$udp_send_channel = [
{ port => 8649, host => 'gmond-3-0_host1.example.org', ttl => 2 },
{ port => 8649, host => 'gmond-3-0_host2.example.org', ttl => 2 },
]
$cluster_name = 'mycluster_el5'
}
6, default: {
# epel for el6.x has 3.1.x
$udp_send_channel = [
{ port => 8649, host => 'gmond-3-1_host1.example.org', ttl => 2 },
{ port => 8649, host => 'gmond-3-1_host2.example.org', ttl => 2 },
]
$cluster_name = 'mycluster_el6'
}
}
$tcp_accept_channel = [
{port => 8649},
]
class{ 'ganglia::gmond':
cluster_name => 'example grid',
cluster_owner => 'ACME, Inc.',
cluster_latlong => 'N32.2332147 W110.9481163',
cluster_url => 'www.example.org',
host_location => 'example computer room',
udp_recv_channel => $udp_recv_channel,
udp_send_channel => $udp_send_channel,
tcp_accept_channel => $tcp_accept_channel,
}
Versioning
This module is versioned according to the Semantic Versioning 2.0.0 specification.
Support
Please log tickets and issues at github
See Also
[Current]
- b361ec4 - (Joshua Hoblitt) rm old Changelog (replaced by CHANGELOG.md)
v1.2.1
- 2f3a5c7 - (Joshua Hoblitt) bump version to v1.2.1
- 73457c5 - (Joshua Hoblitt) Merge pull request #11 from jhoblitt/gmond_template_array_checking
change gmond erb templates to gracefully handle nil variables
- 0c0d598 - (Joshua Hoblitt) change gmond erb templates to gracefully handle nil variables
These variables to ganglia::gmond may now safely be undef/nil:
- udp_send_channel
- udp_recv_channel
- tcp_accept_channel
v1.2.0
- 2555891 - (Joshua Hoblitt) bump version to v1.2.0
- ad95594 - (Joshua Hoblitt) update README param docs + boilerplate sections
- fe92cb2 - (Joshua Hoblitt) add param validation to ganglia::web class
- e4ed800 - (Joshua Hoblitt) Merge pull request #10 from jhoblitt/debian_support
add debian support
- 33aec0b - (Joshua Hoblitt) add debian support
v1.1.0
- 724099c - (Joshua Hoblitt) bump version to v1.1.0
- 25f68d1 - (Joshua Hoblitt) remove outdated 'all inherent from base' inheritance pattern
- a81c8a4 - (Joshua Hoblitt) add ubuntu compatibility to rspec-system tests
Conflicts: spec/classes/params_spec.rb
add extremely basic rspec-system tests
- ebccc4b - (Joshua Hoblitt) fix gmetad.conf handling of an undefined gridname param
- be89a48 - (Joshua Hoblitt) fix ganglia::gmetad::{install,config} ordering issue
ganglia::gmetad
would fail on el6.x when the /etc/ganglia dir wasn't present
as it was trying to create the configuration file before the RPM was installed
(which may create that dir). This wasn't seen in my test env as ganglia::gmond
/ the gmond RPM were always creating that dir. Turned up by the rspec-system
tests.
-
4380df1 - (Joshua Hoblitt) add extremely basic rspec-system tests
-
6c8d64f - (Joshua Hoblitt) resolve rspec-puppet > 1 deprecation warnings
DEPRECATION: include_class is deprecated. Use contain_class instead.
-
aed3ee5 - (Jeremy Kitchen) ubuntu has this fact set, so should the test
-
eb26bf1 - (Jeremy Kitchen) custom status command only applies to <= 12.10
-
106167c - (Jeremy Kitchen) fixed broken test for debian, added ubuntu/solaris
-
b70a999 - (Jeremy Kitchen) gmetad doesn't have a good status command on ubuntu
-
a9c4271 - (Jeremy Kitchen) ganglia-monitor service on ubuntu doesn't have a status command
-
91103d2 - (Jeremy Kitchen) I cant' tyep
-
a64c126 - (Jeremy Kitchen) port to ubuntu
v1.0.2
- e878d16 - (Joshua Hoblitt) bump version to v1.0.2
- fc74fe2 - (Joshua Hoblitt) implement anchor pattern
- 94b920c - (Joshua Hoblitt) update travis matrix
v1.0.1
- ed4fe88 - (Joshua Hoblitt) bump version to v1.0.1
- d327d2b - (Joshua Hoblitt) update erb templates to use instance variables
v1.0.0
- 0b6c068 - (Joshua Hoblitt) bump version to v1.0.0
- 2e4a9d4 - (Joshua Hoblitt) remove usage of $::lsbmajdistrelease fact
Instead use $::operatingsystemmajrelease as this fact is not dependant on redhat-lsb being present on the system.
- cd410c3 - (Joshua Hoblitt) tidy Rakefile quotes
- 3e285c8 - (Joshua Hoblitt) add GFMD highlighting to README
- e073c40 - (Joshua Hoblitt) set stdlib requirement to 3.0.0
- 0e49b51 - (Joshua Hoblitt) add puppet 3.3.0 to travis test matrix
- 49bb2c3 - (Joshua Hoblitt) puppet-lint should ignore pkg/**
- bad4cbb - (Joshua Hoblitt) exclude spec/fixtures/** from puppet-syntax checking
- dfa9fb2 - (Joshua Hoblitt) rm default init.pp from skel
- e36c256 - (Joshua Hoblitt) Merge remote-tracking branch 'skel/master'
- ed6a68b - (Joshua Hoblitt) ignore patch related files *{.orig,.rej,.patch}
- 6a67990 - (Joshua Hoblitt) add puppet-syntax support
- bdec024 - (Joshua Hoblitt) add travis-ci build placard
- 435661d - (Joshua Hoblitt) add travis-ci build placard
- fb932f9 - (Joshua Hoblitt) add example spec test
- d230e48 - (Joshua Hoblitt) exclude travis-ci testing of puppet < 3.2 with ruby >= 2.0
- 4050f0d - (Joshua Hoblitt) add a default .travis.yml
- ceb0ed4 - (Joshua Hoblitt) add puppet 3.2.0 to travis test set
- fae0e4a - (Joshua Hoblitt) git ignore Gemfile.lock
- 0005289 - (Joshua Hoblitt) install ruby gems from https://rubygems.org instead of :rubygems
To resolve this warning:
The source :rubygems is deprecated because HTTP requests are insecure.
Please change your source to 'https://rubygems.org' if possible, or
'http://rubygems.org' if not.
- c46ff1e - (Joshua Hoblitt) git ignore Gemfile.lock
- e86f789 - (Joshua Hoblitt) install ruby gems from https://rubygems.org instead of :rubygems
To resolve this warning:
The source :rubygems is deprecated because HTTP requests are insecure.
Please change your source to 'https://rubygems.org' if possible, or
'http://rubygems.org' if not.
- 95df6b6 - (Joshua Hoblitt) first commit
v0.0.2
- ebacad8 - (Joshua Hoblitt) change module version to v0.0.2
- 1f9ae00 - (Joshua Hoblitt) add a simple Changelog for the forge
- 6e4b622 - (Joshua Hoblitt) change license from GPLv2 or later to Apache 2.0
- 5c30593 - (Joshua Hoblitt) enable travis-ci support
- dc5469d - (Joshua Hoblitt) fix gmond template namespace issues with puppet >= 3
- a56b641 - (Joshua Hoblitt) cleanup code to pass puppet-lint and add the 'lint' rake target
- 19c28c4 - (Joshua Hoblitt) fill in Modulefile
- 1ed3432 - (Joshua Hoblitt) s/Redhat/RedHat/
- a3ef635 - (Joshua Hoblitt) add basic README.md
- 179bccb - (Joshua Hoblitt) change gmetad/gmond/web package installation to ensure => present instead of latest
- 69cd720 - (Joshua Hoblitt) add rdoc for ganglia::web
- 497ab53 - (Joshua Hoblitt) minor ganglia::gmetad example cleanups
- e7ee0d2 - (Joshua Hoblitt) fix ganglia::gmond example to be in valid puppet code instead of bastardized ruby
- ae66b95 - (Joshua Hoblitt) add rdoc for ganglia::gmetad
- a804415 - (Joshua Hoblitt) add default params for all ganglia::gmetad values
Defaults are set per the stock values in gmetad.conf from ganglia-gmetad-3.1.7-6.el6.x86_64
- 073c3d1 - (Joshua Hoblitt) stop trying to enforce a ganglia user uid/gid and remove ganglia::config
- 8df46ea - (Joshua Hoblitt) fix uid/gid for el5.x
- 05066dc - (Joshua Hoblitt) trivial grammar/caps
- a6be1fb - (Joshua Hoblitt) add rdoc for ganglia::gmond
- a762490 - (Joshua Hoblitt) add default params for all ganglia::gmond values
Defaults are set per the stock values in gmond.conf from ganglia-gmond-3.1.7-6.el6.x86_64
- c49a049 - (Joshua Hoblitt) add ganglia::web classes + simple test
- 3dfb047 - (Joshua Hoblitt) remove explicit reference to $ganglia::params namespace
- e34b894 - (Joshua Hoblitt) add trivial tests for ganglia::gmond & ganglia::gmetad
- 21884ff - (Joshua Hoblitt) use the same gmetad erb template for el5.x & el6.x
- ab1e680 - (Joshua Hoblitt) refactor gmetad to inherit gmetad::params and all other subclasses inherit it
- f2821e5 - (Joshua Hoblitt) refactor gmond to inherit gmond::params and all other subclasses inherit it
- 975840e - (Joshua Hoblitt) check for $::osfamily and fail() on unsupported platforms
- da86c3c - (Joshua Hoblitt) add forge and test template files
- dda8a6b - (Joshua Hoblitt) add support for setting the "gridname" in gmetad.conf
- 0009771 - (Joshua Hoblitt) add a newline to end of each data_source statement so that multiple statements don't end up on the same line
- 760cf71 - (Joshua Hoblitt) ii
Dependencies
- puppetlabs/stdlib (>= 3.0.0)
Copyright (C) 2012-2013 Joshua Hoblitt <jhoblitt@cpan.org> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.