Puppet Class: selinux
- Inherits:
- selinux::params
- Defined in:
- manifests/init.pp
Overview
Class: selinux
This class manages SELinux on RHEL based systems.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'manifests/init.pp', line 33
class selinux (
$mode = $::selinux::params::mode,
$type = $::selinux::params::type,
$sx_mod_dir = $::selinux::params::sx_mod_dir,
$makefile = $::selinux::params::makefile,
$manage_package = $::selinux::params::manage_package,
$package_name = $::selinux::params::package_name,
### START Hiera Lookups ###
$boolean = undef,
$fcontext = undef,
$module = undef,
$permissive = undef,
$port = undef,
### END Hiera Lookups ###
) inherits selinux::params {
$mode_real = $mode ? {
/\w+/ => $mode,
default => 'undef',
}
$type_real = $type ? {
/\w+/ => $type,
default => 'undef',
}
validate_absolute_path($sx_mod_dir)
validate_re($mode_real, ['^enforcing$', '^permissive$', '^disabled$', '^undef$'], "Valid modes are enforcing, permissive, and disabled. Received: ${mode}")
validate_re($type_real, ['^targeted$', '^minimum$', '^mls$', '^undef$'], "Valid types are targeted, minimum, and mls. Received: ${type}")
validate_string($makefile)
validate_bool($manage_package)
validate_string($package_name)
class { '::selinux::package':
manage_package => $manage_package,
package_name => $package_name,
}
class { '::selinux::config': }
if $boolean {
create_resources ( 'selinux::boolean', hiera_hash('selinux::boolean') )
}
if $fcontext {
create_resources ( 'selinux::fcontext', hiera_hash('selinux::fcontext') )
}
if $module {
create_resources ( 'selinux::module', hiera_hash('selinux::module') )
}
if $permissive {
create_resources ( 'selinux::fcontext', hiera_hash('selinux::permissive') )
}
if $port {
create_resources ( 'selinux::port', hiera_hash('selinux::port') )
}
# Ordering
anchor { 'selinux::start': } ->
Class['selinux::package'] ->
Class['selinux::config'] ->
anchor { 'selinux::module pre': } ->
anchor { 'selinux::module post': } ->
anchor { 'selinux::end': }
}
|