diff --git a/CHANGELOG b/CHANGELOG index 84768f1..bd09f82 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,117 +1,121 @@ # Changelog -## 0.0.6 - 2014-12-05 +## 0.0.7 - 2014-12-05 This release adds support for DragonFly BSD, FreeBSD, OpenBSD. Other changes listed below, per component. Contributors to this release: Alex Hornung, Chris Roddy, Frank Groeneveld, Fredrik Thulin, Julien Pivotto, Martin Jackson, Sebastian Wiesinger, Stig Sandbeck Mathisen ### munin::node * Add "host_name" parameter to override the host name of the munin node. * Add "file_group" parameter, used for configuration and log files. * Add "log_dir" parameter. * Improved handling of "allow" ACL parameter. ### munin::master * Improved collection logic. Set "collect_nodes" to "mine" to collect nodes which are targeted for this master, or "unclaimed" to pick up nodes not aimed a specific master. * Add global tls_* parameters for connecting to nodes. * Add "dbdir", "htmldir", "rundir" parameters. * Add "extra_config" parameter, which takes an array of extra configuration lines for munin.conf. ### munin::plugin * Support absolute paths as target for a plugin. +## 0.0.6 - 2014-12-05 + +* Retracted, had a breaking bug on older (3.4.x) puppet versions. + ## 0.0.5 - 2014-03-19 * Support multiple masters with different nodes (Thanks: Cristian Gae) * Support older (1.4.6) munin versions (Thanks: Sergio Oliveira) * Update for compatibility with puppet 3.4 (Thanks: Harald Skoglund) * Easier configuration with more parameters. All parameters have trivial validation. ### munin::master - new parameter "config_root". Defaults should match supported operating systems. ### munin::plugin - new parameter "config_root". Defaults should match supported operating systems. ### munin::node - new parameter "address". Default is $::fqdn. This will be used as the "address" when registering with the munin master. - new parameter "config_root". Defaults should match supported operating systems. - new parameter "package_name". Default should match supported operating systems. - new parameter "service_name". Default should match supported operating systems. - new parameter "service_ensure". Default is "". Possible values: "", "running" or "stopped". ### munin::params - new class ## 0.0.4 - 2013-08-13 Bugfix for the munin::plugin define. - Bugfix: Ensure that we can run tests on ruby 1.8. - Bugfix: No longer requires the class `Munin::Plugins`, which does not exist in this module. ([#3](https://github.com/ssm/ssm-munin/issues/3)) - The `ensure` attribute no longer defaults to "link". If not set, a potentially existing plugin with the same name is not touched. - Plugin and configuration directories are now configurable. - Improved rspec tests, which now actually match the documentation. ## 0.0.2 - 2013-06-31 A few pull requests - Bugfix: Install munin package before creating munin-conf.d directory ([#1](https://github.com/ssm/ssm-munin/pull/1)) - Make graph strategy configurable ([#2](https://github.com/ssm/ssm-munin/pull/2)) - Improve documentation ## 0.0.1 - 2013-06-02 Initial release diff --git a/manifests/master.pp b/manifests/master.pp index 287677a..32b760f 100644 --- a/manifests/master.pp +++ b/manifests/master.pp @@ -1,147 +1,147 @@ # munin::master - Define a munin master # # The munin master will install munin, and collect all exported munin # node definitions as files into /etc/munin/munin-conf.d/. # # Parameters: # # - node_definitions: A hash of node definitions used by # create_resources to make static node definitions. # # - host_name: A host name for this munin master, matched with # munin::node::mastername for collecting nodes. Defaults to $::fqdn # # - graph_strategy: 'cgi' (default) or 'cron' # Controls if munin-graph graphs all services ('cron') or if graphing is done # by munin-cgi-graph (which must configured seperatly) # # - html_strategy: 'cgi' (default) or 'cron' # Controls if munin-html will recreate all html pages every run interval # ('cron') or if html pages are generated by munin-cgi-graph (which must # configured seperatly) # # - config_root: the root directory of the munin master configuration. # Default: /etc/munin on most platforms. # # - collect_nodes: 'enabled' (default), 'disabled', 'mine' or # 'unclaimed'. 'enabled' makes the munin master collect all exported # node_definitions. 'disabled' disables it. 'mine' makes the munin # master collect nodes matching $munin::master::host_name, while # 'unclaimed' makes the munin master collect nodes not tagged with a # host name. # # - dbdir: Path to the munin dbdir, where munin stores everything # # - htmldir: Path to where munin will generate HTML documents and # graphs, used if graph_strategy is cron. # # - rundir: Path to directory munin uses for pid and lock files. # # - tls: 'enabled' or 'disabled' (default). Controls the use of TLS # globally for master to node communications. # # - tls_certificate: Path to a file containing a TLS certificate. No # default. Required if tls is enabled. # # - tls_private_key: Path to a file containing a TLS key. No default. # Required if tls is enabled. # # - tls_verify_certificate: 'yes' (default) or 'no'. # # - extra_config: Extra lines of config to put in munin.conf. class munin::master ( $node_definitions = $munin::params::master::node_defintions, $graph_strategy = $munin::params::master::graph_strategy, $html_strategy = $munin::params::master::html_strategy, $config_root = $munin::params::master::config_root, $collect_nodes = $munin::params::master::collect_nodes, $dbdir = $munin::params::master::dbdir, $htmldir = $munin::params::master::htmldir, $logdir = $munin::params::master::logdir, $rundir = $munin::params::master::rundir, $tls = $munin::params::master::tls, $tls_certificate = $munin::params::master::tls_certificate, $tls_private_key = $munin::params::master::tls_private_key, $tls_verify_certificate = $munin::params::master::tls_verify_certificate, $host_name = $munin::params::master::host_name, $extra_config = $munin::params::master::extra_config, ) inherits munin::params::master { if $node_definitions { validate_hash($node_definitions) } if $graph_strategy { validate_re($graph_strategy, [ '^cgi$', '^cron$' ]) } if $html_strategy { validate_re($html_strategy, [ '^cgi$', '^cron$' ]) } validate_re($collect_nodes, [ '^enabled$', '^disabled$', '^mine$', '^unclaimed$' ]) validate_absolute_path($config_root) validate_re($tls, [ '^enabled$', '^disabled$' ]) if $tls == 'enabled' { validate_re($tls_verify_certificate, [ '^yes$', '^no$' ]) validate_absolute_path($tls_private_key) validate_absolute_path($tls_certificate) } if $host_name { validate_string($host_name) - if ! is_domain_name($host_name) { + if ! is_domain_name("${host_name}") { fail('host_name should be a valid domain name') } } validate_array($extra_config) # The munin package and configuration package { 'munin': ensure => latest, } File { owner => 'root', group => 'root', mode => '0644', require => Package['munin'], } file { "${config_root}/munin.conf": content => template('munin/munin.conf.erb'), } file { "${config_root}/munin-conf.d": ensure => directory, recurse => true, purge => true, force => true, } case $collect_nodes { 'enabled': { Munin::Master::Node_definition <<| |>> } 'mine': { # Collect nodes explicitly tagged with this master Munin::Master::Node_definition <<| tag == "munin::master::${host_name}" |>> } 'unclaimed': { # Collect all exported node definitions, except the ones tagged # for a specific master Munin::Master::Node_definition <<| tag == 'munin::master::' |>> } 'disabled', default: { # do nothing } } # Create static node definitions if $node_definitions { create_resources(munin::master::node_definition, $node_definitions, {}) } } diff --git a/metadata.json b/metadata.json index 82b09b3..f47dd22 100644 --- a/metadata.json +++ b/metadata.json @@ -1,52 +1,52 @@ { "name": "ssm/munin", - "version": "0.0.6", + "version": "0.0.7", "author": "ssm", "license": "Apache License, Version 2.0", "summary": "Configure munin master, node and plugins", "source": "https://github.com/ssm/ssm-munin", "dependencies": [ { "name": "puppetlabs/stdlib", "version_requirement": ">= 2.3.0" } ], - "project_page": "https://forge.puppetlabs.com/ssm/munin", + "project_page": "https://github.com/ssm/ssm-munin", "issues_url": "https://github.com/ssm/ssm-munin/issues", "operatingsystem_support": [ { "operatingsystem": "CentOS" }, { "operatingsystem": "Debian" }, { "operatingsystem": "RedHat" }, { "operatingsystem": "Scientific" }, { "operatingsystem": "SmartOS" }, { "operatingsystem": "Ubuntu" }, { "operatingsystem": "FreeBSD" }, { "operatingsystem": "DragonFly" }, { "operatingsystem": "OpenBSD" } ], "tags": [ "munin", "monitoring", "graphing", "performance", "trending" ] }