diff --git a/manifests/attr.pp b/manifests/attr.pp index ed39f179846a79d8560066d08c3d9ea088832c43..06a0cd62f13dcef68f3cdd1f62180769d15f0665 100644 --- a/manifests/attr.pp +++ b/manifests/attr.pp @@ -1,16 +1,16 @@ # Install FreeRADIUS config snippets define freeradius::attr ($source) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/attr.d/${name}": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, - require => File["${fr_basepath}/attr.d"], + require => [File["${fr_basepath}/attr.d"], Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } } diff --git a/manifests/client.pp b/manifests/client.pp index d44ed9f0478e5ef211e337ca76424c4ac5fade1a..0b5e61ccfe12b493d35ab322fcf5e156d0e0c957 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -2,28 +2,27 @@ define freeradius::client ( $shortname, $secret, - $ip=undef, - $ip6=undef, - $net=undef, - $server=undef, - $virtual_server=undef, - $nastype=undef, - $netmask=undef, - $redirect=undef, - $port=undef, - $srcip=undef, -) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service + $ip = undef, + $ip6 = undef, + $net = undef, + $server = undef, + $virtual_server = undef, + $nastype = undef, + $netmask = undef, + $redirect = undef, + $port = undef, + $srcip = undef,) { + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/clients.d/${shortname}.conf": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, content => template('freeradius/client.conf.erb'), - require => File["${fr_basepath}/clients.d"], + require => [File["${fr_basepath}/clients.d"], Group[$fr_group]], notify => Service[$fr_service], } } diff --git a/manifests/config.pp b/manifests/config.pp index 25d8854bc4889807a63f78b207b2a0232f44b5ef..01ea9de16e635be72f8b817469e02ea2b939589c 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -1,16 +1,16 @@ # Install FreeRADIUS config snippets define freeradius::config ($source) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/conf.d/${name}": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, - require => File["${fr_basepath}/conf.d"], + require => [File["${fr_basepath}/conf.d"], Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } } diff --git a/manifests/dictionary.pp b/manifests/dictionary.pp index 28fe8ec2f7676e8ddf977cfcd95e423b9612f4c2..fa0f04d8924dc65e8f846c5285871ea75c8a3e80 100644 --- a/manifests/dictionary.pp +++ b/manifests/dictionary.pp @@ -1,16 +1,17 @@ # Install FreeRADIUS custom dictionaries -define freeradius::dictionary ($source, $order=50) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service +define freeradius::dictionary ($source, $order = 50) { + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath + $fr_group = $::freeradius::params::fr_group - # Install dictionary in dictionary.d + # Install dictionary in dictionary.d file { "${fr_basepath}/dictionary.d/dictionary.${name}": mode => '0644', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, - require => Package[$fr_package], + require => [File["${fr_basepath}/dictionary.d"], Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } diff --git a/manifests/init.pp b/manifests/init.pp index 274b48b84c26944ed00a6dcedb7b4d1da6629d6f..d5665bc0e3f4a3c541cb2615e4c0f2232a2d521e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,9 +15,9 @@ class freeradius ( name => "${fr_basepath}/radiusd.conf", mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, content => template('freeradius/radiusd.conf.erb'), - require => Package[$fr_package], + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } @@ -38,17 +38,18 @@ class freeradius ( ensure => directory, mode => '0750', owner => 'root', - group => 'radiusd', - require => Package[$fr_package], + group => $fr_group, + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } # Set up concat policy file, as there is only one global policy # We also add standard header and footer concat { "${fr_basepath}/policy.conf": - owner => 'root', - group => 'radiusd', - mode => '0640', + owner => 'root', + group => $fr_group, + mode => '0640', + require => [Package[$fr_package], Group[$fr_group]], } concat::fragment { 'policy_header': target => "${fr_basepath}/policy.conf", @@ -64,9 +65,10 @@ class freeradius ( # Install a slightly tweaked stock dictionary that includes # our custom dictionaries concat { "${fr_basepath}/dictionary": - owner => 'root', - group => 'radiusd', - mode => '0640', + owner => 'root', + group => $fr_group, + mode => '0640', + require => [Package[$fr_package], Group[$fr_group]], } concat::fragment { 'dictionary_header': target => "${fr_basepath}/dictionary", @@ -116,12 +118,7 @@ class freeradius ( service { 'radiusd': ensure => running, name => $fr_service, - require => [ - Exec['radiusd-config-test'], - File['radiusd.conf'], - User['radiusd'], - Package[$fr_package], - ], + require => [Exec['radiusd-config-test'], File['radiusd.conf'], User[$fr_user], Package[$fr_package],], enable => true, hasstatus => true, hasrestart => true, @@ -130,7 +127,7 @@ class freeradius ( # We don't want to create the radiusd user, just add it to the # wbpriv group if the user needs winbind support. We depend on # the FreeRADIUS package to be sure that the user has been created - user { 'radiusd': + user { $fr_user: ensure => present, groups => $winbind_support ? { true => $fr_wbpriv_user, @@ -139,6 +136,14 @@ class freeradius ( require => Package[$fr_package], } + # We don't want to add the radiusd group but it must be defined + # here so we can depend on it. WE depend on the FreeRADIUS + # package to be sure that the group has been created. + group { $fr_group: + ensure => present, + require => Package[$fr_package] + } + # Install a few modules required on all FR installations freeradius::module { 'always': source => 'puppet:///modules/freeradius/modules/always', @@ -181,18 +186,19 @@ class freeradius ( } file { "${fr_logpath}/radius.log": - owner => 'radiusd', - group => 'radiusd', + owner => $fr_user, + group => $fr_group, seltype => 'radiusd_log_t', + require => [Package[$fr_package], User[$fr_user], Group[$fr_group]], } # Updated logrotate file to include radiusd-*.log file { '/etc/logrotate.d/radiusd': mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, content => template('freeradius/radiusd.logrotate.erb'), - require => Package[$fr_package], + require => [Package[$fr_package], Group[$fr_group]], } # Generate global SSL parameters @@ -230,8 +236,8 @@ class freeradius ( content => "# FILE INTENTIONALLY BLANK\n", mode => '0644', owner => 'root', - group => 'radiusd', - require => Package[$fr_package], + group => $fr_group, + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } diff --git a/manifests/instantiate.pp b/manifests/instantiate.pp index 6df6f1cc622839fa815abc1115ed438b085750ed..0b1c24275dc8cb101a326ec03976a961894d025a 100644 --- a/manifests/instantiate.pp +++ b/manifests/instantiate.pp @@ -1,16 +1,16 @@ # Instantiate a module in global config define freeradius::instantiate { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/instantiate/${name}": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, content => $name, - require => Package[$fr_package], + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } } diff --git a/manifests/module.pp b/manifests/module.pp index 73f6c4fbf2872dcdaceb29739138105a45af7db6..3211bee45dac5efc7d7fac108546a5c5e4c634a7 100644 --- a/manifests/module.pp +++ b/manifests/module.pp @@ -1,16 +1,16 @@ # Install FreeRADIUS modules define freeradius::module ($source) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/modules/${name}": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, - require => Package[$fr_package], + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } } diff --git a/manifests/policy.pp b/manifests/policy.pp index 124d4db5b362d0f37011207cc77e0b080be0ecf7..71bd549caa2c0a19c5e71a6ef246d2a289292fff 100644 --- a/manifests/policy.pp +++ b/manifests/policy.pp @@ -1,17 +1,17 @@ # Install FreeRADIUS policies -define freeradius::policy ($source, $order=50) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service +define freeradius::policy ($source, $order = 50) { + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group - # Install policy in policy.d + # Install policy in policy.d file { "${fr_basepath}/policy.d/${name}": mode => '0644', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, - require => Package[$fr_package], + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } diff --git a/manifests/script.pp b/manifests/script.pp index 59caf1da94c2db79a72a977653ce23f334eebf7f..e355994312ee1c7e3fb3fcb3ceccc3bdceeec090 100644 --- a/manifests/script.pp +++ b/manifests/script.pp @@ -1,15 +1,16 @@ # Install FreeRADIUS helper scripts define freeradius::script ($source) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/scripts/${name}": mode => '0750', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, - require => File["${fr_basepath}/scripts"], + require => [File["${fr_basepath}/scripts"], Package[$fr_package], Group[$fr_group]], + notify => Service[$fr_service], } } diff --git a/manifests/site.pp b/manifests/site.pp index 12e7ea85a9e075f79598e99db04355de55bf149a..957d6048b4252e74416e685e2d370ca89eafc95d 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -1,20 +1,17 @@ # Install FreeRADIUS virtual servers (sites) -define freeradius::site ( - $source = undef, - $content = undef, -) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service +define freeradius::site ($source = undef, $content = undef,) { + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/sites-enabled/${name}": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, source => $source, content => $content, - require => Package[$fr_package], + require => [Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } } diff --git a/manifests/statusclient.pp b/manifests/statusclient.pp index 0fdf15819e3a88c572c645ecbbca2482adaef9ce..ac6cae401143b35719034cb643bbbe0881668c91 100644 --- a/manifests/statusclient.pp +++ b/manifests/statusclient.pp @@ -1,23 +1,16 @@ # Install FreeRADIUS clients (WISMs or testing servers) -define freeradius::statusclient ( - $secret, - $ip=undef, - $ip6=undef, - $port=undef, - $shortname=$name, - $netmask = undef, -) { - $fr_package = $::freeradius::params::fr_package - $fr_service = $::freeradius::params::fr_service +define freeradius::statusclient ($secret, $ip = undef, $ip6 = undef, $port = undef, $shortname = $name, $netmask = undef,) { + $fr_package = $::freeradius::params::fr_package + $fr_service = $::freeradius::params::fr_service $fr_basepath = $::freeradius::params::fr_basepath - $fr_user = $::freeradius::params::fr_user + $fr_group = $::freeradius::params::fr_group file { "${fr_basepath}/statusclients.d/${name}.conf": mode => '0640', owner => 'root', - group => 'radiusd', + group => $fr_group, content => template('freeradius/client.conf.erb'), - require => File["${fr_basepath}/clients.d"], + require => [File["${fr_basepath}/clients.d"], Package[$fr_package], Group[$fr_group]], notify => Service[$fr_service], } }