# Install 32-bit compatibility libraries for 64-bit systems. # class clarified { if $architecture == "x86_64" { case $operatingsystem { ubuntu: { package { "ia32-libs": ensure => installed, } } } } } # Install Clarified Analyzer. # class clarified::analyzer inherits clarified { file { "/usr/local/src/clarified-analyzer-linux-i686.sh": ensure => present, mode => 0755, owner => root, group => root, source => "puppet:///files/packages/clarified-analyzer-linux-i686.sh", links => follow, } exec { "/usr/local/src/clarified-analyzer-linux-i686.sh": creates => "/usr/local/clarified-analyzer", require => File["/usr/local/src/clarified-analyzer-linux-i686.sh"], } } # Install Clarified Recorder. # class clarified::recorder inherits clarified { 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 { file { "/var/lib/recorder": ensure => directory, 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/probe-linux-i686.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/probe-linux-i686.sh": ensure => present, mode => 0755, owner => root, group => root, source => "puppet:///files/packages/probe-linux-i686.sh", links => follow, before => Exec["/usr/local/src/probe-linux-i686.sh"], } exec { "/usr/local/src/probe-linux-i686.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", creates => "/etc/clarified/clarified-functions", require => Exec["/usr/local/src/probe-linux-i686.sh"], before => Service["clarified-probe"], } 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/probe-linux-i686.sh"], before => Service["clarified-probe"], } service { "clarified-probe": ensure => running, enable => true, status => "pgrep -f /usr/local/probe", } } # Configure probe. # # === Parameters # # $name: # Probe name. # $interface: # Capture interface. Defaults to probe name. # $snaplen: # Snaplen. Defaults to 65535. # $keeptime: # Amount of data to keep. Defaults to 100GB. # $blocksize: # Storage block size. Defaults to 1GB. # $filter: # Optional filter expression. # $remoteport: # 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 # # clarified::probe { "eth0": # keeptime => "500GB", # blocksize => "10GB", # filter => "host 192.168.1.1", # collab => [ "collabname:PageName", ], # } # define clarified::probe($interface="", $snaplen="65535", $keeptime="100GB", $blocksize="1GB", $filter="", $remoteport="10000", $collab="", $probe=true, $remote=true) { if $interface { $interface_real = $interface } else { $interface_real = $name } if $filter { $miscopts = "-b ${blocksize} -f \"${filter}\"" } else { $miscopts = "-b ${blocksize}" } file { "/etc/clarified/probe.d/${name}": ensure => $probe ? { true => present, false => absent, }, mode => 0755, owner => root, group => root, content => template("clarified/probe.erb"), require => File["/etc/clarified/probe.d"], notify => Service["clarified-probe"], } file { "/etc/clarified/remote.d/${name}": ensure => $remote ? { true => present, false => absent, }, mode => 0755, owner => root, group => root, content => template("clarified/remote.erb"), require => File["/etc/clarified/remote.d"], notify => Service["clarified-probe"], } file { "/var/lib/recorder/${name}": ensure => directory, mode => 0700, owner => root, group => root, require => File["/var/lib/recorder"], before => Service["clarified-probe"], } }