clarified: Manually merge clarified module from parameterize

This commit is contained in:
Ossi Salmi 2015-03-18 13:53:00 +02:00
parent af0968f811
commit c12f48fc31

View file

@ -2,137 +2,149 @@
# #
class clarified::analyzer { class clarified::analyzer {
if ! $clarified_analyzer_package { if ! $clarified_analyzer_package {
if $clarified_analyzer_package_latest { if $::clarified_analyzer_package_latest {
$clarified_analyzer_package = $clarified_analyzer_package_latest $clarified_analyzer_package = $::clarified_analyzer_package_latest
} else { } else {
fail("Must define \$clarified_analyzer_package or \$clarified_analyzer_package_latest") fail('Must define $clarified_analyzer_package or $clarified_analyzer_package_latest')
}
} }
}
file { "/usr/local/src/clarified-analyzer-linux.sh": file { '/usr/local/src/clarified-analyzer-linux.sh':
ensure => present, ensure => present,
mode => "0755", mode => '0755',
owner => "root", owner => 'root',
group => "root", group => 'root',
source => "puppet:///files/packages/${clarified_analyzer_package}", source => "puppet:///files/packages/${clarified_analyzer_package}",
before => Exec["/usr/local/src/clarified-analyzer-linux.sh"], nofity => Exec['rm -f /usr/local/clarified-analyzer'],
} }
exec { "rm -f /usr/local/clarified-analyzer": exec { 'rm -f /usr/local/clarified-analyzer':
path => "/bin:/usr/bin:/sbin:/usr/sbin", refreshonly => true,
onlyif => "test -h /usr/local/clarified-analyzer", path => '/bin:/usr/bin:/sbin:/usr/sbin',
subscribe => File["/usr/local/src/clarified-analyzer-linux.sh"], onlyif => 'test -h /usr/local/clarified-analyzer',
before => Exec["/usr/local/src/clarified-analyzer-linux.sh"], before => Exec['/usr/local/src/clarified-analyzer-linux.sh'],
refreshonly => true, }
} exec { '/usr/local/src/clarified-analyzer-linux.sh':
exec { "/usr/local/src/clarified-analyzer-linux.sh": creates => '/usr/local/clarified-analyzer',
creates => "/usr/local/clarified-analyzer", }
}
} }
# Install Clarified Recorder. # Install Clarified Recorder.
# #
class clarified::recorder { # === Parameters
#
# $enable:
# Install and enable init script. Defaults to true.
#
# $datadir:
# Recorder data directory. Defaults to /var/lib/recorder.
#
class clarified::recorder(
$enable=true,
$datadir=undef,
) {
if ! $clarified_recorder_package { if ! $clarified_recorder_package {
if $clarified_recorder_package_latest { if $::clarified_recorder_package_latest {
$clarified_recorder_package = $clarified_recorder_package_latest $clarified_recorder_package = $::clarified_recorder_package_latest
} else {
fail("Must define \$clarified_recorder_package or \$clarified_recorder_package_latest")
}
}
if $recorder_datadir {
file { $recorder_datadir:
ensure => directory,
mode => "0700",
owner => "root",
group => "root",
}
file { "/var/lib/recorder":
ensure => link,
target => $recorder_datadir,
require => File[$recorder_datadir],
}
} else { } else {
file { "/var/lib/recorder": fail('Must define $clarified_recorder_package or $clarified_recorder_package_latest')
ensure => directory, }
mode => "0700", }
owner => "root",
group => "root", if $datadir {
} file { $datadir:
ensure => directory,
mode => '0700',
owner => 'root',
group => 'root',
} }
file { [ "/etc/clarified", file { '/var/lib/recorder':
"/etc/clarified/probe.d", ensure => link,
"/etc/clarified/remote.d", ]: target => $datadir,
ensure => directory, }
mode => "0644", } else {
owner => "root", file { '/var/lib/recorder':
group => "root", ensure => directory,
before => Exec["/usr/local/src/clarified-recorder-linux.sh"], mode => '0700',
owner => 'root',
group => 'root',
}
}
file { [
'/etc/clarified',
'/etc/clarified/probe.d',
'/etc/clarified/remote.d',
]:
ensure => directory,
mode => '0644',
owner => 'root',
group => 'root',
before => Exec['/usr/local/src/clarified-recorder-linux.sh'],
}
File['/etc/clarified/probe.d', '/etc/clarified/remote.d'] {
purge => true,
force => true,
recurse => true,
source => 'puppet:///modules/custom/empty',
}
file { '/usr/local/src/clarified-recorder-linux.sh':
ensure => present,
mode => '0755',
owner => 'root',
group => 'root',
source => "puppet:///files/packages/${clarified_recorder_package}",
notify => Exec['rm -f /usr/local/probe'],
}
exec { 'rm -f /usr/local/probe':
refreshonly => true,
path => '/bin:/usr/bin:/sbin:/usr/sbin',
onlyif => 'test -h /usr/local/probe',
before => Exec['/usr/local/src/clarified-recorder-linux.sh'],
}
exec { '/usr/local/src/clarified-recorder-linux.sh':
creates => '/usr/local/probe',
}
exec { 'clarified-functions':
refreshonly => true,
path => '/bin:/usr/bin:/sbin:/usr/sbin',
cwd => '/usr/local/probe',
command => 'sed s:@PREFIX@:/usr/local/probe: clarified-functions.in > /etc/clarified/clarified-functions',
subscribe => Exec['/usr/local/src/clarified-recorder-linux.sh'],
}
if $enable == true {
file { '/etc/init.d/clarified-probe':
ensure => present,
mode => '0755',
owner => 'root',
group => 'root',
source => '/usr/local/probe/probe-init.sh',
require => Exec['/usr/local/src/clarified-recorder-linux.sh'],
notify => Exec['add-service-clarified-probe'],
}
exec { 'add-service-clarified-probe':
refreshonly => true,
path => '/bin:/usr/bin:/sbin:/usr/sbin',
command => $::operatingsystem ? {
'debian' => 'update-rc.d clarified-probe defaults',
'ubuntu' => 'update-rc.d clarified-probe defaults',
default => 'chkconfig --add clarified-probe',
},
before => Service['clarified-probe'],
} }
File["/etc/clarified/probe.d", "/etc/clarified/remote.d"] { service { 'clarified-probe':
purge => true, enable => true,
force => true,
recurse => true,
source => "puppet:///modules/custom/empty",
}
file { "/usr/local/src/clarified-recorder-linux.sh":
ensure => present,
mode => "0755",
owner => "root",
group => "root",
source => "puppet:///files/packages/${clarified_recorder_package}",
notify => Exec["rm -f /usr/local/probe"],
}
exec { "rm -f /usr/local/probe":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
onlyif => "test -h /usr/local/probe",
before => Exec["/usr/local/src/clarified-recorder-linux.sh"],
refreshonly => true,
}
exec { "/usr/local/src/clarified-recorder-linux.sh":
creates => "/usr/local/probe",
}
exec { "clarified-functions":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
cwd => "/usr/local/probe",
command => "sed s:@PREFIX@:/usr/local/probe: clarified-functions.in > /etc/clarified/clarified-functions",
subscribe => Exec["/usr/local/src/clarified-recorder-linux.sh"],
before => Service["clarified-probe"],
refreshonly => true,
}
file { "/etc/init.d/clarified-probe":
ensure => present,
mode => "0755",
owner => "root",
group => "root",
source => "/usr/local/probe/probe-init.sh",
require => Exec["/usr/local/src/clarified-recorder-linux.sh"],
notify => Exec["add-service-clarified-probe"],
}
exec { "add-service-clarified-probe":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
command => $::operatingsystem ? {
"debian" => "update-rc.d clarified-probe defaults",
"ubuntu" => "update-rc.d clarified-probe defaults",
default => "chkconfig --add clarified-probe",
},
refreshonly => true,
before => Service["clarified-probe"],
}
service { "clarified-probe":
enable => true,
} }
}
} }
@ -141,122 +153,131 @@ class clarified::recorder {
# #
# === Parameters # === Parameters
# #
# $name: # $name:
# Probe name. # Probe name.
# $interface: #
# Capture interface. Defaults to probe name. # $interface:
# $snaplen: # Capture interface. Defaults to probe name.
# Snaplen. Defaults to 65535. #
# $keeptime: # $snaplen:
# Amount of data to keep. Defaults to 100GB. # Snaplen. Defaults to 65535.
# $blocksize: #
# Storage block size. Defaults to 1GB. # $keeptime:
# $filter: # Amount of data to keep. Defaults to 100GB.
# Optional filter expression. #
# $remoteport: # $blocksize:
# Remote port. Defaults to 10000. # Storage block size. Defaults to 1GB.
# $collab: #
# List of collabs for authentication. # $filter:
# $probe: # Optional filter expression.
# Enable probe. Defaults to true. #
# $remote: # $remoteport:
# Enable remote. Defaults to true. # Remote port. Defaults to 10000.
#
# $collab:
# List of collabs for authentication.
#
# $probe:
# Enable probe. Defaults to true.
#
# $remote:
# Enable remote. Defaults to true.
# #
# === Sample usage # === Sample usage
# #
# clarified::probe { "eth0": # clarified::probe { 'eth0':
# keeptime => "500GB", # keeptime => '500GB',
# blocksize => "10GB", # blocksize => '10GB',
# filter => "host 192.168.1.1", # filter => 'host 192.168.1.1',
# collab => [ "collabname:PageName" ], # collab => [ 'collabname:PageName' ],
# } # }
# #
define clarified::probe( define clarified::probe(
$interface=undef, $interface=undef,
$snaplen="65535", $snaplen='65535',
$keeptime="100GB", $keeptime='100GB',
$blocksize="1GB", $blocksize='1GB',
$filter="", $filter='',
$remoteport="10000", $remoteport='10000',
$collab=[], $collab=[],
$probeopt="", $probeopt='',
$remoteopt="", $remoteopt='',
$probe=true, $probe=true,
$remote=true $remote=true
) { ) {
Class["clarified::recorder"] -> Clarified::Probe[$name] Class['clarified::recorder'] -> Clarified::Probe[$name]
if $interface { if $interface {
$interface_real = $interface $interface_real = $interface
} else { } else {
$interface_real = $name $interface_real = $name
} }
file { "/var/lib/recorder/${name}": file { "/var/lib/recorder/${name}":
ensure => directory, ensure => directory,
mode => "0700", mode => '0700',
owner => "root", owner => 'root',
group => "root", group => 'root',
} }
file { "/etc/clarified/probe.d/${name}": file { "/etc/clarified/probe.d/${name}":
ensure => $probe ? { ensure => $probe ? {
true => present, true => present,
false => absent, false => absent,
}, },
mode => "0755", mode => '0755',
owner => "root", owner => 'root',
group => "root", group => 'root',
content => template("clarified/probe.erb"), content => template('clarified/probe.erb'),
require => File["/var/lib/recorder/${name}"], require => File["/var/lib/recorder/${name}"],
notify => $probe ? { notify => $probe ? {
true => Service["probe-${name}"], true => Service["probe-${name}"],
false => undef, false => undef,
}, },
} }
service { "probe-${name}": service { "probe-${name}":
ensure => $probe ? { ensure => $probe ? {
true => running, true => running,
false => stopped, false => stopped,
}, },
provider => "base", provider => 'base',
start => "/etc/clarified/probe.d/${name} start", start => "/etc/clarified/probe.d/${name} start",
restart => "/etc/clarified/probe.d/${name} restart", restart => "/etc/clarified/probe.d/${name} restart",
stop => "pkill -f /var/run/probe/${name}.pid", stop => "pkill -f /var/run/probe/${name}.pid",
status => "pgrep -f /var/run/probe/${name}.pid", status => "pgrep -f /var/run/probe/${name}.pid",
subscribe => Exec["/usr/local/src/clarified-recorder-linux.sh"], subscribe => Exec['/usr/local/src/clarified-recorder-linux.sh'],
} }
file { "/etc/clarified/remote.d/${name}": file { "/etc/clarified/remote.d/${name}":
ensure => $remote ? { ensure => $remote ? {
true => present, true => present,
false => absent, false => absent,
}, },
mode => "0755", mode => '0755',
owner => "root", owner => 'root',
group => "root", group => 'root',
content => template("clarified/remote.erb"), content => template('clarified/remote.erb'),
require => File["/var/lib/recorder/${name}"], require => File["/var/lib/recorder/${name}"],
notify => $remote ? { notify => $remote ? {
true => Service["remote-${name}"], true => Service["remote-${name}"],
false => undef, false => undef,
}, },
} }
service { "remote-${name}": service { "remote-${name}":
ensure => $remote ? { ensure => $remote ? {
true => running, true => running,
false => stopped, false => stopped,
}, },
provider => "base", provider => 'base',
start => "/etc/clarified/remote.d/${name} start", start => "/etc/clarified/remote.d/${name} start",
restart => "/etc/clarified/remote.d/${name} restart", restart => "/etc/clarified/remote.d/${name} restart",
stop => "pkill -f /var/run/remote/${name}.pid", stop => "pkill -f /var/run/remote/${name}.pid",
status => "pgrep -f /var/run/remote/${name}.pid", status => "pgrep -f /var/run/remote/${name}.pid",
require => Service["probe-${name}"], require => Service["probe-${name}"],
subscribe => Exec["/usr/local/src/clarified-recorder-linux.sh"], subscribe => Exec['/usr/local/src/clarified-recorder-linux.sh'],
} }
} }