Loading .fixtures.yml +1 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,4 @@ fixtures: logrotate: "puppet/logrotate" rsyslog: "saz/rsyslog" stdlib: "puppetlabs/stdlib" systemd: "camptocamp/systemd" README.md +16 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,22 @@ Whether the control socket should be read-only or read-write. Choose from `ro`, } ``` #### `freeradius::radsniff` The `freeradius::radsniff` class configures and runs the [RADSNIFF](https://freeradius.org/radiusd/man/radsniff.html) service. It requires freeradius-utils to be installed, so will fail if `utils_support` is not enabled on the `freeradius` class. Note: This is only supported on RedHat like systems at present. ##### `options` Command line options to be passed to radsniff. Quotes are escaped ```puppet # Enable radsniff, with a filter, sending data to collectd (requires freeradius to be compiled for this) class { 'freeradius::radsniff': options => '-m -p1812,1813 -O unix:/var/run/collectd.sock -N freeradius -W 10 -i eth0 -f "src not 192.0.2.1"', } ``` ### Resources #### `freeradius::attr` Loading manifests/init.pp +1 −1 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ class freeradius ( concat { "${freeradius::fr_basepath}/dictionary": owner => 'root', group => $freeradius::fr_group, mode => '0640', mode => '0644', require => [Package[$freeradius::fr_package], Group[$freeradius::fr_group]], } concat::fragment { 'dictionary_header': Loading manifests/params.pp +10 −0 Original line number Diff line number Diff line Loading @@ -172,4 +172,14 @@ class freeradius::params { } $radacctdir = "\${logdir}/radacct" # Default radsniff environment file location $fr_radsniff_envfile = $::osfamily ? { 'RedHat' => '/etc/sysconfig/radsniff', 'Debian' => '/etc/defaults/radsniff', default => undef, } # Default radsniff pid file location $fr_radsniff_pidfile = "/var/run/${fr_service}/radsniff.pid" } manifests/radsniff.pp 0 → 100644 +57 −0 Original line number Diff line number Diff line # @summary configure and run radsniff # # @param envfile path to the environment file, used by the systemd unit # @param options commandline options passed to radsniff when it runs # @param class freeradius::radsniff ( Optional[String] $envfile = undef, String $options = '', Optional[String] $pidfile = undef, ) inherits freeradius::params { unless $::freeradius::utils_support { fail('freeradius::radsniff requires freeradius have utils_support enabled') } # Calculate the envfile to use - specified, then calculated, then error if none if $envfile { $final_envfile = $envfile } else { if $freeradius::radsniff::fr_radsniff_envfile { $final_envfile = $freeradius::radsniff::fr_radsniff_envfile } else { fail('freeradius::radsniff requires envfile to be explicitly set on this OS') } } # Calculate the pidfile to use - specified, then calculated, then error if none if $pidfile { $final_pidfile = $pidfile } else { if $freeradius::radsniff::fr_radsniff_pidfile { $final_pidfile = $freeradius::radsniff::fr_radsniff_pidfile } else { fail('freeradius::radsniff requires pidfile to be explicitly set on this OS') } } $escaped_cmd = $options.regsubst('"','\\\\"','G') file { $final_envfile: content => @("SYSCONFIG"), RADSNIFF_OPTIONS="${escaped_cmd}" | SYSCONFIG owner => 'root', group => 'root', mode => '0644', require => Package['freeradius-utils'], } ~> service { 'radsniff': ensure => running, enable => true, } systemd::unit_file {'radsniff.service': content => template('freeradius/radsniff.service.erb'), notify => Service['radsniff'], } } Loading
.fixtures.yml +1 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,4 @@ fixtures: logrotate: "puppet/logrotate" rsyslog: "saz/rsyslog" stdlib: "puppetlabs/stdlib" systemd: "camptocamp/systemd"
README.md +16 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,22 @@ Whether the control socket should be read-only or read-write. Choose from `ro`, } ``` #### `freeradius::radsniff` The `freeradius::radsniff` class configures and runs the [RADSNIFF](https://freeradius.org/radiusd/man/radsniff.html) service. It requires freeradius-utils to be installed, so will fail if `utils_support` is not enabled on the `freeradius` class. Note: This is only supported on RedHat like systems at present. ##### `options` Command line options to be passed to radsniff. Quotes are escaped ```puppet # Enable radsniff, with a filter, sending data to collectd (requires freeradius to be compiled for this) class { 'freeradius::radsniff': options => '-m -p1812,1813 -O unix:/var/run/collectd.sock -N freeradius -W 10 -i eth0 -f "src not 192.0.2.1"', } ``` ### Resources #### `freeradius::attr` Loading
manifests/init.pp +1 −1 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ class freeradius ( concat { "${freeradius::fr_basepath}/dictionary": owner => 'root', group => $freeradius::fr_group, mode => '0640', mode => '0644', require => [Package[$freeradius::fr_package], Group[$freeradius::fr_group]], } concat::fragment { 'dictionary_header': Loading
manifests/params.pp +10 −0 Original line number Diff line number Diff line Loading @@ -172,4 +172,14 @@ class freeradius::params { } $radacctdir = "\${logdir}/radacct" # Default radsniff environment file location $fr_radsniff_envfile = $::osfamily ? { 'RedHat' => '/etc/sysconfig/radsniff', 'Debian' => '/etc/defaults/radsniff', default => undef, } # Default radsniff pid file location $fr_radsniff_pidfile = "/var/run/${fr_service}/radsniff.pid" }
manifests/radsniff.pp 0 → 100644 +57 −0 Original line number Diff line number Diff line # @summary configure and run radsniff # # @param envfile path to the environment file, used by the systemd unit # @param options commandline options passed to radsniff when it runs # @param class freeradius::radsniff ( Optional[String] $envfile = undef, String $options = '', Optional[String] $pidfile = undef, ) inherits freeradius::params { unless $::freeradius::utils_support { fail('freeradius::radsniff requires freeradius have utils_support enabled') } # Calculate the envfile to use - specified, then calculated, then error if none if $envfile { $final_envfile = $envfile } else { if $freeradius::radsniff::fr_radsniff_envfile { $final_envfile = $freeradius::radsniff::fr_radsniff_envfile } else { fail('freeradius::radsniff requires envfile to be explicitly set on this OS') } } # Calculate the pidfile to use - specified, then calculated, then error if none if $pidfile { $final_pidfile = $pidfile } else { if $freeradius::radsniff::fr_radsniff_pidfile { $final_pidfile = $freeradius::radsniff::fr_radsniff_pidfile } else { fail('freeradius::radsniff requires pidfile to be explicitly set on this OS') } } $escaped_cmd = $options.regsubst('"','\\\\"','G') file { $final_envfile: content => @("SYSCONFIG"), RADSNIFF_OPTIONS="${escaped_cmd}" | SYSCONFIG owner => 'root', group => 'root', mode => '0644', require => Package['freeradius-utils'], } ~> service { 'radsniff': ensure => running, enable => true, } systemd::unit_file {'radsniff.service': content => template('freeradius/radsniff.service.erb'), notify => Service['radsniff'], } }