From 9f79e6b25b36463f2e1644e9f6c765c95c36bdb5 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Mon, 19 Jun 2017 15:33:27 +0100 Subject: [PATCH] added some directory control, testing --- README.md | 9 ++- manifests/params.pp | 24 +++++++ manifests/server/dirs.pp | 131 ++++++++++++++++++++++++++++++++++++++ manifests/server/files.pp | 1 + 4 files changed, 164 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c28142..129d34b 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ * [native Puppet deployment](#native-puppet-deployment) * [through Foreman](#through-foreman) * [Parameters](#parameters) + * [Mandatory Parameters](#mandatory-parameters) + * [Optional Parameters](#optional-parameters) * [SELINUX](#selinux) * [Known Problems](#known-problems) * [Support](#support) @@ -26,7 +28,7 @@ ### Features * install required binaries and dependencies -* manage user +* manage user settings (optional) ### Repo Structure @@ -56,6 +58,11 @@ See [more details about class deployment on Confdroid.com](https://confdroid.com ### Parameters The following parameters are editable via params.pp or through ENC (**__recommended__**). Values changed will take immediate effect at next puppet run. Services will be restarted where neccessary. +#### Mandatory Parameters + +#### Optional Parameters +* `$ae_manage_user` : Whether or not to manage the user settings. Important when accessing shared resources accross nodes. Defaults to `false`. + ### SELINUX All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. diff --git a/manifests/params.pp b/manifests/params.pp index a4519e9..d2fc9b8 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -34,6 +34,11 @@ $ae_u_groups = undef, $ae_user_home = '/opt/rh/httpd24/root/usr/share/httpd', $ae_user_shell = '/bin/false', +# configuration files +$ae_manage_cfg = false, +$ae_manage_dirs = true, + + ) { # installation section @@ -45,6 +50,25 @@ $reqpackages = $::operatingsystem ? { # service $ae_service = 'httpd' +# directories +$ae_main_dir = '/etc/httpd' +$ae_conf_dir = "${ae_main_dir}/conf" +$ae_conf_d_dir = "${ae_main_dir}/conf.d" +$ae_conf_mods_d = "${ae_main_dir}/conf.modules.d" +$ae_var_logs_dir = '/var/log/httpd' +$ae_logs_dir = "${ae_main_dir}/logs" +$ae_logs_link = '../../var/log/httpd' +$ae_usr_lib_dir = '/usr/lib64/httpd', +$ae_usr_mods_dir = "${ae_usr_lib_dir}/modules" +$ae_mods_dir = "${ae_main_dir}/modules" +$ae_mods_link = '../../usr/lib64/httpd/modules', + + + + +# files + + # includes must be last include cd_apache::main::config diff --git a/manifests/server/dirs.pp b/manifests/server/dirs.pp index f16bf54..20f8895 100644 --- a/manifests/server/dirs.pp +++ b/manifests/server/dirs.pp @@ -28,4 +28,135 @@ class cd_apache::server::dirs ( require cd_apache::server::user + if $ae_manage_dirs == true { + + # create main dir + + file { $ae_main_dir: + ensure => directory, + path => $ae_main_dir, + owner => 'root', + group => 'root', + mode => '0755', + selrange => s0, + selrole => object_r, + seltype => httpd_config_t, + seluser => system_u, + } + + # conf dir + + file { $ae_conf_dir: + ensure => directory, + path => $ae_conf_dir, + owner => 'root', + group => 'root', + mode => '0755', + selrange => s0, + selrole => object_r, + seltype => httpd_config_t, + seluser => system_u, + } + + # conf.d dir + + file { $ae_conf_d_dir: + ensure => directory, + path => $ae_conf_d_dir, + owner => 'root', + group => 'root', + mode => '0755', + selrange => s0, + selrole => object_r, + seltype => httpd_config_t, + seluser => system_u, + } + + # conf.modules.d + + file { $ae_conf_mods_d: + ensure => directory, + path => $ae_conf_mods_d, + owner => 'root', + group => 'root', + mode => '0755', + selrange => s0, + selrole => object_r, + seltype => httpd_config_t, + seluser => system_u, + } + + # /var/log/httpd + + file { $ae_var_logs_dir: + ensure => directory, + path => $ae_var_logs_dir, + owner => 'root', + group => 'root', + mode => '0700', + selrange => s0, + selrole => object_r, + seltype => httpd_log_t, + seluser => system_u, + } + + # logs dir link + + file { $ae_logs_dir: + ensure => link, + path => $ae_logs_dir, + target => $ae_logs_link, + owner => 'root', + group => 'root', + mode => '0777', + selrange => s0, + selrole => object_r, + seltype => httpd_log_t, + seluser => system_u, + } + + # /usr/lib/httpd + + file { $ae_usr_lib_dir: + ensure => directory, + path => $ae_usr_lib_dir, + owner => 'root', + group => 'root', + mode => '0700', + selrange => s0, + selrole => object_r, + seltype => httpd_modules_t, + seluser => system_u, + } + + # mods dir + + file { $ae_mods_dir: + ensure => directory, + path => $ae_mods_dir, + owner => 'root', + group => 'root', + mode => '0700', + selrange => s0, + selrole => object_r, + seltype => httpd_modules_t, + seluser => system_u, + } + + # logs dir link + + file { $ae_mods_dir: + ensure => link, + path => $ae_mods_dir, + target => $ae_mods_link, + owner => 'root', + group => 'root', + mode => '0777', + selrange => s0, + selrole => object_r, + seltype => httpd_modules_t, + seluser => system_u, + } + + } } diff --git a/manifests/server/files.pp b/manifests/server/files.pp index 938ef0e..0644fbc 100644 --- a/manifests/server/files.pp +++ b/manifests/server/files.pp @@ -28,4 +28,5 @@ class cd_apache::server::files ( require cd_apache::server::dirs + }