initial commit

This commit is contained in:
Arne Teuke
2017-07-20 12:38:15 +01:00
commit 2226eee672
9 changed files with 690 additions and 0 deletions

25
manifests/init.pp Normal file
View File

@@ -0,0 +1,25 @@
## 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.
##############################################################################
class cd_selinux {
include cd_selinux::params
}

30
manifests/main/config.pp Normal file
View File

@@ -0,0 +1,30 @@
## 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.
##############################################################################
class cd_selinux::main::config (
) inherits cd_selinux::params {
require cd_selinux::main::install
}

39
manifests/main/install.pp Normal file
View File

@@ -0,0 +1,39 @@
## 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_selinux::main::yumrepo
package {$reqpackages_main:
ensure => $pkg_ensure,
}
if $sx_install_setools == true {
package {$reqpackages_tools:
ensure => $pkg_ensure,
}
}
}

49
manifests/params.pp Normal file
View File

@@ -0,0 +1,49 @@
## 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
# 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
# tools, i.e. for troubleshooting.
##############################################################################
class cd_selinux::params (
$pkg_ensure = 'latest',
$sx_install_setools = false,
) {
# installation section
$reqpackages_main = $::operatingsystem ? {
/(?i-mx:centos|fedora|redhat)/ => ['selinux-policy','policycoreutils'],
}
$reqpackages_tools = $::operatingsystem ? {
/(?i-mx:centos|fedora|redhat)/ => ['setroubleshoot-server',
'policycoreutils-python'],
}
# includes must be last
include cd_selinux::main::config
}