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:
parent
98f55bd1fd
commit
b0a98aa149
19
README.md
19
README.md
@ -9,6 +9,7 @@
|
|||||||
* [Source](#source)
|
* [Source](#source)
|
||||||
* [Filter](#filter)
|
* [Filter](#filter)
|
||||||
* [Match](#match)
|
* [Match](#match)
|
||||||
|
* [Plugin Installation](#plugin-installation)
|
||||||
* [Requirements](#requirements)
|
* [Requirements](#requirements)
|
||||||
1. [Limitations - OS compatibility, etc.](#limitations)
|
1. [Limitations - OS compatibility, etc.](#limitations)
|
||||||
1. [Development - Guide for contributing to the module](#development)
|
1. [Development - Guide for contributing to the module](#development)
|
||||||
@ -112,6 +113,24 @@ include '::fluentd'
|
|||||||
</match>
|
</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
|
### Requirements
|
||||||
|
|
||||||
Modules:
|
Modules:
|
||||||
|
33
manifests/plugin.pp
Normal file
33
manifests/plugin.pp
Normal 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
20
manifests/plugin/file.pp
Normal 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
16
manifests/plugin/gem.pp
Normal 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'];
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user