## cd_apache::params.pp # Module name: cd_apache # Author: Arne Teuke (arne_teuke@confdroid.com) # @summary This class holds all parameters for the cd_apache module, which are # inherited by all classes except defines. # @param [String] pkg_ensure Specify which # [package type] (https://confdroid.com/2017/05/puppet-type-package/) # to use, i.e. `latest`, `present` or `absent`. # @param [Boolean] ae_manage_user Whether or not to manage details for the # httpd service user. This is generally only required when using httpd on # a number of servers sharing storage resources, i.e. NFS, where UID and GID # settings must be same across all nodes. # @param [String] ae_user_name Specify the user name for the httpd user. # only active if ae_manage_user is set to true. # @param [String] ae_user_uid Specify the UID for the httpd service user. # only active if `ae_manage_user` is set to true. # @param [String] ae_u_comment Specify the user comment for /etc/passwd. # Shows up in email notifications as sender information. # only active if `ae_manage_user` is set to true. # @param [String] ae_u_groups Specify any secondary groups the httpd service # user should be in. Must not contain the primary group. # only active if `ae_manage_user` is set to true. # @param [String] ae_user_home Specify the home of the httpd service user. # only active if `ae_manage_user` is set to true. # @param [String] ae_user_shell Specify the shell for the httpd service user, # which normally should not be allowed to log in . # only active if `ae_manage_user` is set to true. # @param [Boolean] ae_manage_cfg Whether or not to manage the httpd # configuration. httpd is very often a sub system used by many other services, # and the required configuration depends on the use case. If using httpd as # sub-service ( i.e. for phpmyadmin, Nagios etc.), the main configuration # should be done on that end, not in cd_apache. IN that case, set `ae_manage_cfg` # to `false`. # @param [Boolean] ae_manage_dirs Whether or not main directories required # to run httpd should be managed. Typically this should be set to true. # @param [Boolean] ae_allow_user_dirs Whether or not to allow user directories # should be allowed to share content through httpd. Usually this is a security # problem and as such should be disabled. # @param [Boolean] ae_incl_target whether or not to allow nagios monitoring. # @param [String] ae_order_no the order number for the firewall rules # @param [String] ae_http_port the port to use for the http protocol # @param [String] ae_https_port the port to use for the https protocol # @param [String] ae_target_service which service to monitor with nagios # @param [Boolean] ae_manage_fw whether to manage firewall settings # @param [String] reqpackages List of packages to install. ########################################################################### class cd_apache::params ( # installation String $pkg_ensure = 'latest', String $reqpackages = ['httpd','mod_ssl'], Boolean $ae_manage_user = false, String $ae_user_name = 'apache', String $ae_user_uid = '48', String $ae_u_comment = 'Apache', String $ae_u_groups = undef, String $ae_user_home = '/usr/share/httpd', String $ae_user_shell = '/bin/false', # configuration files Boolean $ae_manage_cfg = false, Boolean $ae_manage_dirs = true, Boolean $ae_allow_user_dirs = false, # nagios Boolean $ae_incl_target = true, String $ae_target_service = '/etc/nagios/conf.d/httpd_service.cfg', # firewall Boolean $ae_manage_fw = false, String $ae_order_no = '50', String $ae_http_port = '80', String $ae_https_port = '443', ) { # 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_usr_lib_dir = '/usr/lib64/httpd' $ae_usr_mods_dir = "${ae_usr_lib_dir}/modules" $ae_mods_dir = "${ae_main_dir}/modules" $ae_run_dir = '/run/httpd' $ae_run_link = "${ae_main_dir}/run" $ae_share_httpd = '/usr/share/httpd' $ae_cache_httpd = '/var/cache/httpd' # files $ae_conf_file = "${ae_conf_dir}/httpd.conf" $ae_conf_file_erb = 'cd_apache/httpd_conf.erb' $ae_magic_file = "${ae_conf_dir}/magic" $ae_magic_file_erb = 'cd_apache/magic.erb' $ae_ssl_file = "${ae_conf_d_dir}/ssl.conf" $ae_ssl_file_erb = 'cd_apache/ssl_conf.erb' $ae_autoindex_file = "${ae_conf_d_dir}/autoindex.conf" $ae_autoindex_erb = 'cd_apache/autoindex_conf.erb' $ae_userdir_file = "${ae_conf_d_dir}/userdir.conf" $ae_userdir_erb = 'cd_apache/userdir_conf.erb' $ae_index_file = '/var/www/html/index.html' $ae_index_erb = 'cd_apache/index_html.erb' # includes must be last include cd_apache::main::config }