adjust everything for compliance with puppet-lint

This commit is contained in:
Arne Teuke
2025-05-14 13:34:43 +02:00
parent d039135f4c
commit 20f36a3fd4
27 changed files with 54 additions and 3153 deletions

View File

@@ -1,24 +1,7 @@
## cd_selinux::init.pp
# Module name: cd_selinux
# Author: Arne Teuke (arne_teuke@confdroid.com)
# License:
# This file is part of cd_selinux.
#
# cd_selinux is used for providing automatic configuration of SELINUX.
# Copyright (C) 2017 confdroid (copyright@confdroid.com)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @summary Class initialises the cd_selinux Module.
# @summary Class initializes the cd_selinux Module.
##############################################################################
class cd_selinux {
include cd_selinux::params

View File

@@ -1,38 +1,19 @@
## cd_selinux::main::config.pp
# Module name: cd_selinux
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
# # License:
# This file is part of cd_selinux.
#
# cd_selinux is used for providing automatic configuration of SELINUX.
# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @summary Class manages all aspects of configuring the module logic for
# cd_selinux.
# @summary Class manages the module logic for cd_selinux.
##############################################################################
class cd_selinux::main::config (
) inherits cd_selinux::params {
include cd_selinux::main::files
if $sx_selinux_status == 'enforcing' {
exec { 'set_selinux_status':
command => 'setenforce 1',
path => ['/usr/sbin','/usr/bin'],
provider => shell,
unless => 'getenforce | grep -i "enforcing"'
command => 'setenforce 1',
path => ['/usr/sbin','/usr/bin'],
provider => shell,
unless => 'getenforce | grep -i "enforcing"'
}
}
}

View File

@@ -1,40 +1,22 @@
## cd_selinux::main::dirs.pp
# Module name: cd_selinux
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
# # License:
# This file is part of cd_selinux.
#
# cd_selinux is used for providing automatic configuration of SELINUX
# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @summary Class manages all directories required for cd_selinux.
###############################################################################
class cd_selinux::main::dirs (
) inherits cd_selinux::params {
require cd_selinux::main::install
file { $sx_main_dir:
ensure => directory,
path => $sx_main_dir,
owner => 'root',
group => 'root',
mode => '0755',
selrange => s0,
selrole => object_r,
seltype => selinux_config_t,
seluser => system_u,
ensure => directory,
path => $sx_main_dir,
owner => 'root',
group => 'root',
mode => '0755',
selrange => s0,
selrole => object_r,
seltype => selinux_config_t,
seluser => system_u,
}
}

View File

@@ -1,41 +1,23 @@
## cd_selinux::main::files.pp
# Module name: cd_selinux
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
# # License:
# This file is part of cd_selinux.
#
# cd_selinux is used for providing automatic configuration of SELINUX
# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @summary Class manages all configuration files required for cd_selinux.
##############################################################################
class cd_selinux::main::files (
) inherits cd_selinux::params {
require cd_selinux::main::dirs
file { $sx_main_file:
ensure => file,
path => $sx_main_file,
owner => 'root',
group => 'root',
mode => '0644',
selrange => s0,
selrole => object_r,
seltype => selinux_config_t,
seluser => system_u,
content => template($sx_main_file_erb),
ensure => file,
path => $sx_main_file,
owner => 'root',
group => 'root',
mode => '0644',
selrange => s0,
selrole => object_r,
seltype => selinux_config_t,
seluser => system_u,
content => template($sx_main_file_erb),
}
}

View File

@@ -1,38 +1,20 @@
## cd_selinux::main::install.pp
# Module name: cd_selinux
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
# # License:
# This file is part of cd_selinux.
#
# cd_selinux is used for providing automatic configuration of SELINUX
# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @summary Class manage all aspects of installing binaries required for
# cd_selinux
###############################################################################
class cd_selinux::main::install (
) inherits cd_selinux::params {
require cd_resources
package {$reqpackages_main:
package { $reqpackages_main:
ensure => $pkg_ensure,
}
if $sx_install_setools == true {
package {$reqpackages_tools:
package { $reqpackages_tools:
ensure => $pkg_ensure,
}
}

View File

@@ -1,67 +1,47 @@
## cd_selinux::params.pp
# Module name: cd_selinux
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
# # License:
# This file is part of cd_selinux.
#
# cd_selinux is used for providing automatic configuration of SELINUX.
# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @summary Class holds all parameters for the cd_selinux module and is
# inherited by all classes except defines.
# @param [string] pkg_ensure
# @param [String] pkg_ensure
# which [package type](https://confdroid.com/2017/05/puppet-type-package/)
# to choose, i.e. `latest` or `present`.
# @param [boolean] sx_install_setools Whether to install additional selinux
# @param [Boolean] sx_install_setools Whether to install additional selinux
# tools, i.e. for troubleshooting.
# @param [string] sx_selinux_status The desired selinux status. Used for both
# @param [String] sx_selinux_status The desired selinux status. Used for both
# managing the configuration file as well as the command line (setenforce).
# Valid values are `enforcing` and `permissive`. While the configuration file
# supports another option 'disabled', this option is not available on
# commandline. Note that changing the active selinux status from `disabled`
# to any the other types requires a manual reboot to re-lable the file system.
# to any the other types requires a manual reboot to re-label the file system.
# This module does not do that for you to avoid unexpected outages.
# @param [string] sx_selinux_type The desired selinux type. Valid options are
# @param [String] sx_selinux_type The desired selinux type. Valid options are
# `targeted`, `minimum` and `mls`.
##############################################################################
class cd_selinux::params (
$pkg_ensure = 'latest',
String $pkg_ensure = 'latest',
$sx_install_setools = false,
$sx_selinux_status = 'enforcing',
$sx_selinux_type = 'targeted',
Boolean $sx_install_setools = false,
String $sx_selinux_status = 'enforcing',
String $sx_selinux_type = 'targeted',
) {
# installation section
$reqpackages_main = $::operatingsystem ? {
$reqpackages_main = $::operatingsystem ? {
/(?i-mx:centos|fedora|redhat)/ => ['selinux-policy','policycoreutils'],
}
$reqpackages_tools = $::operatingsystem ? {
/(?i-mx:centos|fedora|redhat)/ => ['setroubleshoot-server',
'policycoreutils-python'],
$reqpackages_tools = $::operatingsystem ? {
/(?i-mx:centos|fedora|redhat)/ => ['setroubleshoot-server','policycoreutils-python'],
}
# directories
$sx_main_dir = '/etc/selinux'
$sx_main_dir = '/etc/selinux'
# files
$sx_main_file = "${sx_main_dir}/config"
$sx_main_file_erb = 'cd_selinux/main/selinux_config.erb'
$sx_main_file = "${sx_main_dir}/config"
$sx_main_file_erb = 'cd_selinux/main/selinux_config.erb'
# includes must be last
include cd_selinux::main::config