1
0
mirror of https://github.com/krislamo/puppet-fluentd synced 2024-12-16 13:20:35 +00:00

added definition to install plugins

This commit is contained in:
Max Wilhelm 2015-12-03 11:59:51 +01:00
parent 98f55bd1fd
commit b0a98aa149
4 changed files with 88 additions and 0 deletions

View File

@ -9,6 +9,7 @@
* [Source](#source)
* [Filter](#filter)
* [Match](#match)
* [Plugin Installation](#plugin-installation)
* [Requirements](#requirements)
1. [Limitations - OS compatibility, etc.](#limitations)
1. [Development - Guide for contributing to the module](#development)
@ -112,6 +113,24 @@ include '::fluentd'
</match>
```
### Plugin Installation
This module gives you the possibility to install plugins as gem or files.
**gem installation**
```puppet
::fluentd::plugin { 'fluent-plugin-elasticsearch':
type => 'gem'
}
```
**file installation**
```puppet
::fluentd::plugin { 'fluent-plugin-elasticsearch':
type => 'file',
source => 'puppet:///path/to/plugin'
}
```
### Requirements
Modules:

33
manifests/plugin.pp Normal file
View File

@ -0,0 +1,33 @@
# Install fluentd plugins
#
define fluentd::plugin (
$ensure = present,
$type = 'gem',
$source = undef,
) {
# parameter validation
if ! ($ensure in [ 'present', 'absent' ]) {
fail('ensure parameter must be present or absent')
}
case $type {
'gem': {
fluentd::plugin::gem { $name:
ensure => $ensure,
require => Class['Fluentd::Install']
}
}
'file': {
validate_string($source)
fluentd::plugin::file { $name:
ensure => $ensure,
require => Class['Fluentd::Install']
}
}
default: {
fail("plugin type: '${type}' is currently not supported, use gem or file")
}
}
}

20
manifests/plugin/file.pp Normal file
View File

@ -0,0 +1,20 @@
# Install fluentd file plugins
#
define fluentd::plugin::file (
$ensure = present,
$source = undef,
) {
if $caller_module_name != $module_name {
fail("Use of private fluentd::plugin::file by ${caller_module_name}")
}
file { "/etc/td-agent/plugin/${name}":
ensure => $ensure,
owner => 'td-agent',
group => 'td-agent',
mode => '0640',
source => $source,
notify => Class['Fluentd::Service'];
}
}

16
manifests/plugin/gem.pp Normal file
View File

@ -0,0 +1,16 @@
# Install fluentd gem plugins
#
define fluentd::plugin::gem (
$ensure = present,
) {
if $caller_module_name != $module_name {
fail("Use of private fluentd::plugin::gem by ${caller_module_name}")
}
package { $name:
ensure => $ensure,
provider => 'fluentd_gem',
notify => Class['Fluentd::Service'];
}
}