diff --git a/manifests/init.pp b/manifests/init.pp index 0ef7a4cf..1fad41e7 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -490,7 +490,7 @@ # This should be fixed in FreeRADIUS 2.2.0 # http://lists.freeradius.org/pipermail/freeradius-users/2012-October/063232.html # Only affects RPM-based systems - if $::osfamily == 'RedHat' { + if $facts['os']['family'] == 'RedHat' { exec { 'delete-radius-rpmnew': command => "find ${freeradius::fr_basepath} -name *.rpmnew -delete", onlyif => "find ${freeradius::fr_basepath} -name *.rpmnew | grep rpmnew", diff --git a/manifests/module/ldap.pp b/manifests/module/ldap.pp index ddf5c156..8ab0995a 100644 --- a/manifests/module/ldap.pp +++ b/manifests/module/ldap.pp @@ -139,7 +139,7 @@ # FR3.1 format server = 'ldap1.example.com' # server = 'ldap2.example.com' # server = 'ldap3.example.com' - $serverconcatarray = $::freeradius_version ? { + $serverconcatarray = $facts['freeradius_version'] ? { /^3\.0\./ => any2array(join($server, ',')), default => $server, } diff --git a/manifests/params.pp b/manifests/params.pp index c584c77f..f71f6a1b 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,9 +1,9 @@ # Default parameters for freeradius class freeradius::params { # Make an educated guess which version of FR we are running, based on the OS - case $::operatingsystem { + case $facts['os']['name'] { /RedHat|CentOS|Rocky|AlmaLinux/: { - $fr_guessversion = $::operatingsystemmajrelease ? { + $fr_guessversion = $facts['os']['release']['major'] ? { 5 => '2', 6 => '2', 7 => '3', @@ -13,7 +13,7 @@ } } 'Debian': { - $fr_guessversion = $::operatingsystemmajrelease ? { + $fr_guessversion = $facts['os']['release']['major'] ? { 6 => '2', 7 => '2', 8 => '2', @@ -22,7 +22,7 @@ } } 'Fedora': { - $fr_guessversion = $::operatingsystemmajrelease ? { + $fr_guessversion = $facts['os']['release']['major'] ? { 21 => '3', 22 => '3', 23 => '3', @@ -30,7 +30,7 @@ } } 'Ubuntu': { - $fr_guessversion = $::operatingsystemmajrelease ? { + $fr_guessversion = $facts['os']['release']['major'] ? { '14.04' => '2', '14.10' => '2', '15.04' => '2', @@ -42,40 +42,40 @@ } } default: { - fail("OS ${::operatingsystem} is not supported") + fail("OS ${facts['os']['name']} is not supported") } } # Use the FR version fact if defined, otherwise use our best estimate from above - if getvar('::freeradius_maj_version') { - $fr_version = $::freeradius_maj_version + if 'freeradius_maj_version' in facts { + $fr_version = $facts['freeradius_maj_version'] } else { $fr_version = $fr_guessversion } # Name of FreeRADIUS package - $fr_package = $::osfamily ? { + $fr_package = $facts['os']['family'] ? { 'RedHat' => 'freeradius', 'Debian' => 'freeradius', default => 'freeradius', } # Name of wpa_supplicant package - $fr_wpa_supplicant = $::osfamily ? { + $fr_wpa_supplicant = $facts['os']['family'] ? { 'RedHat' => 'wpa_supplicant', 'Debian' => 'wpasupplicant', default => 'wpa_supplicant', } # Name of FreeRADIUS service - $fr_service = $::osfamily ? { + $fr_service = $facts['os']['family'] ? { 'RedHat' => 'radiusd', 'Debian' => 'freeradius', default => 'radiusd', } # Whether the FreeRADIUS init.d startup script has a status setting or not - $fr_service_has_status = $::osfamily ? { + $fr_service_has_status = $facts['os']['family'] ? { 'RedHat' => true, 'Debian' => true, default => false, @@ -85,13 +85,13 @@ $fr_pidfile = "/var/run/${fr_service}/${fr_service}.pid" # Default base path for FreeRADIUS configs - case $::osfamily { + case $facts['os']['family'] { 'RedHat': { $fr_basepath = '/etc/raddb' $fr_raddbdir = "\${sysconfdir}/raddb" } 'Debian': { - $fr_basepath = $::operatingsystemmajrelease ? { + $fr_basepath = $facts['os']['release']['major'] ? { '9' => '/etc/freeradius/3.0', '10' => '/etc/freeradius/3.0', '11' => '/etc/freeradius/3.0', @@ -101,7 +101,7 @@ '22.04' => '/etc/freeradius/3.0', default => '/etc/freeradius', } - $fr_raddbdir = $::operatingsystemmajrelease ? { + $fr_raddbdir = $facts['os']['release']['major'] ? { '9' => "\${sysconfdir}/freeradius/3.0", '10' => "\${sysconfdir}/freeradius/3.0", '11' => "\${sysconfdir}/freeradius/3.0", @@ -139,40 +139,40 @@ $fr_moduleconfigpath = "${fr_basepath}/${fr_modconfigdir}" # Path for FreeRADIUS logs - $fr_logpath = $::osfamily ? { + $fr_logpath = $facts['os']['family'] ? { 'RedHat' => '/var/log/radius', 'Debian' => '/var/log/freeradius', default => '/var/log/radius', } # FreeRADIUS user - $fr_user = $::osfamily ? { + $fr_user = $facts['os']['family'] ? { 'RedHat' => 'radiusd', 'Debian' => 'freerad', default => 'radiusd', } # FreeRADIUS group - $fr_group = $::osfamily ? { + $fr_group = $facts['os']['family'] ? { 'RedHat' => 'radiusd', 'Debian' => 'freerad', default => 'radiusd', } # Privileged winbind user - $fr_wbpriv_user = $::osfamily ? { + $fr_wbpriv_user = $facts['os']['family'] ? { 'RedHat' => 'wbpriv', 'Debian' => 'winbindd_priv', default => 'wbpriv', } - $fr_libdir = $::osfamily ? { + $fr_libdir = $facts['os']['family'] ? { 'RedHat' => '/usr/lib64/freeradius', 'Debian' => '/usr/lib/freeradius', default => '/usr/lib64/freeradius', } - $fr_db_dir = $::osfamily ? { + $fr_db_dir = $facts['os']['family'] ? { 'Debian' => "\${raddbdir}", default => "\${localstatedir}/lib/radiusd", } @@ -180,7 +180,7 @@ $radacctdir = "\${logdir}/radacct" # Default radsniff environment file location - $fr_radsniff_envfile = $::osfamily ? { + $fr_radsniff_envfile = $facts['os']['family'] ? { 'RedHat' => '/etc/sysconfig/radsniff', 'Debian' => '/etc/defaults/radsniff', default => undef, diff --git a/manifests/radsniff.pp b/manifests/radsniff.pp index b779d8d2..82f3f7ee 100644 --- a/manifests/radsniff.pp +++ b/manifests/radsniff.pp @@ -8,6 +8,8 @@ String $options = '', # lint:ignore:params_empty_string_assignment Optional[String] $pidfile = undef, ) inherits freeradius::params { + require freeradius + unless $freeradius::utils_support { fail('freeradius::radsniff requires freeradius have utils_support enabled') } diff --git a/manifests/sql.pp b/manifests/sql.pp index 184e7688..bc10298e 100644 --- a/manifests/sql.pp +++ b/manifests/sql.pp @@ -66,7 +66,7 @@ Optional[Integer] $pool_idle_timeout = 60, Optional[Float] $pool_connect_timeout = undef, ) { - require freeradius::params + require freeradius $fr_package = $freeradius::params::fr_package $fr_service = $freeradius::params::fr_service @@ -100,10 +100,10 @@ } else { if $pool_connect_timeout != undef { fail(@("FAIL"/L) - The `pool_connect_timeout` parameter requires FreeRADIUS 3.1.x, \ - i.e. the experimental branch. You are running \ - `${facts['freeradius_version']}`. - |-FAIL + The `pool_connect_timeout` parameter requires FreeRADIUS 3.1.x, \ + i.e. the experimental branch. You are running \ + `${facts['freeradius_version']}`. + |-FAIL ) } } @@ -115,7 +115,7 @@ if ($custom_query_file and $custom_query_file != '') { $custom_query_file_path = "${fr_moduleconfigpath}/${name}-queries.conf" - ::freeradius::config { "${name}-queries.conf": + freeradius::config { "${name}-queries.conf": source => $custom_query_file, } } diff --git a/templates/radsniff.service.erb b/templates/radsniff.service.erb index a9a8064a..3034fb32 100644 --- a/templates/radsniff.service.erb +++ b/templates/radsniff.service.erb @@ -5,9 +5,9 @@ After=radiusd.target [Service] Type=forking -PIDFile=<%=scope['::freeradius::radsniff::final_pidfile']%> -EnvironmentFile=<%=scope['::freeradius::radsniff::final_envfile']%> -ExecStart=/usr/bin/radsniff -P <%=scope['::freeradius::radsniff::final_pidfile']%> -d <%=scope['::freeradius::radsniff::fr_basepath']%> $RADSNIFF_OPTIONS +PIDFile=<%= @final_pidfile %> +EnvironmentFile=<%= @final_envfile %> +ExecStart=/usr/bin/radsniff -P <%= @final_pidfile %> -d <%= @fr_basepath %> $RADSNIFF_OPTIONS [Install] WantedBy=multi-user.target