diff --git a/manifests/init.pp b/manifests/init.pp index 3c3a870..f66be48 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,219 +1,220 @@ # Class: nginx # # This module manages NGINX. # # Parameters: # # Actions: # # Requires: # puppetlabs-stdlib - https://github.com/puppetlabs/puppetlabs-stdlib # # Packaged NGINX # - RHEL: EPEL or custom package # - Debian/Ubuntu: Default Install or custom package # - SuSE: Default Install or custom package # # stdlib # - puppetlabs-stdlib module >= 0.1.6 # # Sample Usage: # # The module works with sensible defaults: # # node default { # include nginx # } # # @param nginx_version # The version of nginx installed (or being installed). # Unfortunately, different versions of nginx may need configuring # differently. The default is derived from the version of nginx # already installed. If the fact is unavailable, it defaults to '1.6.0'. # You may need to set this manually to get a working and idempotent # configuration. class nginx ( ### START Nginx Configuration ### Variant[Stdlib::Absolutepath, Boolean] $client_body_temp_path = $nginx::params::client_body_temp_path, Boolean $confd_only = false, Boolean $confd_purge = false, $conf_dir = $nginx::params::conf_dir, Optional[Enum['on', 'off']] $daemon = undef, $daemon_user = $nginx::params::daemon_user, $daemon_group = undef, Array[String] $dynamic_modules = [], $global_owner = $nginx::params::global_owner, $global_group = $nginx::params::global_group, $global_mode = $nginx::params::global_mode, Optional[Variant[String[1], Array[String[1]]]] $limit_req_zone = undef, Stdlib::Absolutepath $log_dir = $nginx::params::log_dir, String[1] $log_user = $nginx::params::log_user, String[1] $log_group = $nginx::params::log_group, Stdlib::Filemode $log_mode = $nginx::params::log_mode, Variant[String, Array[String]] $http_access_log = "${log_dir}/${nginx::params::http_access_log_file}", $http_format_log = undef, Variant[String, Array[String]] $nginx_error_log = "${log_dir}/${nginx::params::nginx_error_log_file}", Nginx::ErrorLogSeverity $nginx_error_log_severity = 'error', $pid = $nginx::params::pid, Variant[Stdlib::Absolutepath, Boolean] $proxy_temp_path = $nginx::params::proxy_temp_path, $root_group = $nginx::params::root_group, $run_dir = $nginx::params::run_dir, $sites_available_owner = $nginx::params::sites_available_owner, $sites_available_group = $nginx::params::sites_available_group, $sites_available_mode = $nginx::params::sites_available_mode, Boolean $super_user = $nginx::params::super_user, $temp_dir = $nginx::params::temp_dir, Boolean $server_purge = false, # Primary Templates $conf_template = 'nginx/conf.d/nginx.conf.erb', ### START Nginx Configuration ### Optional[Enum['on', 'off']] $absolute_redirect = undef, Enum['on', 'off'] $accept_mutex = 'on', $accept_mutex_delay = '500ms', $client_body_buffer_size = '128k', String $client_max_body_size = '10m', $client_body_timeout = '60s', $send_timeout = '60s', $lingering_timeout = '5s', Optional[Enum['on', 'off']] $etag = undef, Optional[String] $events_use = undef, String $fastcgi_cache_inactive = '20m', Optional[String] $fastcgi_cache_key = undef, String $fastcgi_cache_keys_zone = 'd3:100m', String $fastcgi_cache_levels = '1', String $fastcgi_cache_max_size = '500m', Optional[String] $fastcgi_cache_path = undef, Optional[String] $fastcgi_cache_use_stale = undef, Enum['on', 'off'] $gzip = 'off', $gzip_buffers = undef, $gzip_comp_level = 1, $gzip_disable = 'msie6', $gzip_min_length = 20, $gzip_http_version = 1.1, $gzip_proxied = 'off', $gzip_types = undef, Enum['on', 'off'] $gzip_vary = 'off', Optional[Variant[Hash, Array]] $http_cfg_prepend = undef, Optional[Variant[Hash, Array]] $http_cfg_append = undef, Optional[Variant[Array[String], String]] $http_raw_prepend = undef, Optional[Variant[Array[String], String]] $http_raw_append = undef, Enum['on', 'off'] $http_tcp_nodelay = 'on', Enum['on', 'off'] $http_tcp_nopush = 'off', $keepalive_timeout = '65s', $keepalive_requests = '100', $log_format = {}, Boolean $mail = false, Variant[String, Boolean] $mime_types_path = 'mime.types', Boolean $stream = false, String $multi_accept = 'off', Integer $names_hash_bucket_size = 64, Integer $names_hash_max_size = 512, $nginx_cfg_prepend = false, String $proxy_buffers = '32 4k', String $proxy_buffer_size = '8k', String $proxy_cache_inactive = '20m', String $proxy_cache_keys_zone = 'd2:100m', String $proxy_cache_levels = '1', String $proxy_cache_max_size = '500m', Optional[Variant[Hash, String]] $proxy_cache_path = undef, Optional[Integer] $proxy_cache_loader_files = undef, Optional[String] $proxy_cache_loader_sleep = undef, Optional[String] $proxy_cache_loader_threshold = undef, Optional[Enum['on', 'off']] $proxy_use_temp_path = undef, $proxy_connect_timeout = '90s', Integer $proxy_headers_hash_bucket_size = 64, Optional[String] $proxy_http_version = undef, $proxy_read_timeout = '90s', $proxy_redirect = undef, $proxy_send_timeout = '90s', Array $proxy_set_header = [ 'Host $host', 'X-Real-IP $remote_addr', 'X-Forwarded-For $proxy_add_x_forwarded_for', 'Proxy ""', ], Array $proxy_hide_header = [], Array $proxy_pass_header = [], Array $proxy_ignore_header = [], Optional[Nginx::Size] $proxy_max_temp_file_size = undef, Optional[Nginx::Size] $proxy_busy_buffers_size = undef, Enum['on', 'off'] $sendfile = 'on', Enum['on', 'off'] $server_tokens = 'on', Enum['on', 'off'] $spdy = 'off', Enum['on', 'off'] $http2 = 'off', Enum['on', 'off'] $ssl_stapling = 'off', Stdlib::Absolutepath $snippets_dir = $nginx::params::snippets_dir, Boolean $manage_snippets_dir = true, $types_hash_bucket_size = '512', $types_hash_max_size = '1024', Integer $worker_connections = 1024, Enum['on', 'off'] $ssl_prefer_server_ciphers = 'on', Variant[Integer, Enum['auto']] $worker_processes = 'auto', Integer $worker_rlimit_nofile = 1024, $ssl_protocols = 'TLSv1 TLSv1.1 TLSv1.2', $ssl_ciphers = 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS', # lint:ignore:140chars Optional[Stdlib::Unixpath] $ssl_dhparam = undef, ### START Package Configuration ### $package_ensure = present, $package_name = $nginx::params::package_name, $package_source = 'nginx', $package_flavor = undef, Boolean $manage_repo = $nginx::params::manage_repo, Hash[String[1], String[1]] $mime_types = $nginx::params::mime_types, Boolean $mime_types_preserve_defaults = false, Optional[String] $repo_release = undef, $passenger_package_ensure = 'present', + $passenger_package_name = $nginx::params::passenger_package_name, Optional[Stdlib::HTTPUrl] $repo_source = undef, ### END Package Configuration ### ### START Service Configuation ### $service_ensure = running, $service_enable = true, $service_flags = undef, $service_restart = undef, $service_name = 'nginx', $service_manage = true, ### END Service Configuration ### ### START Hiera Lookups ### Hash $geo_mappings = {}, Hash $geo_mappings_defaults = {}, Hash $string_mappings = {}, Hash $string_mappings_defaults = {}, Hash $nginx_locations = {}, Hash $nginx_locations_defaults = {}, Hash $nginx_mailhosts = {}, Hash $nginx_mailhosts_defaults = {}, Hash $nginx_servers = {}, Hash $nginx_servers_defaults = {}, Hash $nginx_streamhosts = {}, Hash $nginx_streamhosts_defaults = {}, Hash $nginx_upstreams = {}, Nginx::UpstreamDefaults $nginx_upstreams_defaults = {}, Boolean $purge_passenger_repo = true, String[1] $nginx_version = pick(fact('nginx_version'), '1.6.0'), ### END Hiera Lookups ### ) inherits nginx::params { contain 'nginx::package' contain 'nginx::config' contain 'nginx::service' create_resources( 'nginx::resource::geo', $geo_mappings, $geo_mappings_defaults ) create_resources( 'nginx::resource::location', $nginx_locations, $nginx_locations_defaults ) create_resources( 'nginx::resource::mailhost', $nginx_mailhosts, $nginx_mailhosts_defaults ) create_resources( 'nginx::resource::map', $string_mappings, $string_mappings_defaults ) create_resources( 'nginx::resource::server', $nginx_servers, $nginx_servers_defaults ) create_resources( 'nginx::resource::streamhost', $nginx_streamhosts, $nginx_streamhosts_defaults ) create_resources( 'nginx::resource::upstream', $nginx_upstreams, $nginx_upstreams_defaults ) # Allow the end user to establish relationships to the "main" class # and preserve the relationship to the implementation classes through # a transitive relationship to the composite class. Class['nginx::package'] -> Class['nginx::config'] ~> Class['nginx::service'] Class['nginx::package'] ~> Class['nginx::service'] } diff --git a/manifests/package/debian.pp b/manifests/package/debian.pp index 62ab5b6..3a7b352 100644 --- a/manifests/package/debian.pp +++ b/manifests/package/debian.pp @@ -1,98 +1,89 @@ # Class: nginx::package::debian # # This module manages NGINX package installation on debian based systems # # Parameters: # # There are no default parameters for this class. # # Actions: # # Requires: # # Sample Usage: # # This class file is not called directly class nginx::package::debian { $package_name = $nginx::package_name $package_source = $nginx::package_source $package_ensure = $nginx::package_ensure $package_flavor = $nginx::package_flavor $passenger_package_ensure = $nginx::passenger_package_ensure + $passenger_package_name = $nginx::passenger_package_name $manage_repo = $nginx::manage_repo $release = $nginx::repo_release $repo_source = $nginx::repo_source $distro = downcase($facts['os']['name']) package { 'nginx': ensure => $package_ensure, name => $package_name, } if $manage_repo { include 'apt' Exec['apt_update'] -> Package['nginx'] case $package_source { 'nginx', 'nginx-stable': { $stable_repo_source = $repo_source ? { undef => "https://nginx.org/packages/${distro}", default => $repo_source, } apt::source { 'nginx': location => $stable_repo_source, repos => 'nginx', key => {'id' => '573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62'}, release => $release, } } 'nginx-mainline': { $mainline_repo_source = $repo_source ? { undef => "https://nginx.org/packages/mainline/${distro}", default => $repo_source, } apt::source { 'nginx': location => $mainline_repo_source, repos => 'nginx', key => {'id' => '573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62'}, release => $release, } } 'passenger': { $passenger_repo_source = $repo_source ? { undef => 'https://oss-binaries.phusionpassenger.com/apt/passenger', default => $repo_source, } apt::source { 'nginx': location => $passenger_repo_source, repos => 'main', key => {'id' => '16378A33A6EF16762922526E561F9B9CAC40B2F7'}, } - # From Ubuntu 18.04/Debian 9 libnginx-mod-http-passenger is needed - # libnginx-mod-http-passenger will install passenger as a dependency - if ( ($::operatingsystem == 'Ubuntu') and ($facts['os']['release']['major'] >='18')) or - ( ($::operatingsystem == 'Debian') and ($facts['os']['release']['major'] >='9')) { - package { 'libnginx-mod-http-passenger': - ensure => $passenger_package_ensure, - require => Exec['apt_update'], - } - } else { - package { 'passenger': - ensure => $passenger_package_ensure, - require => Exec['apt_update'], - } + package { $passenger_package_name: + ensure => $passenger_package_ensure, + require => Exec['apt_update'], } if $package_name != 'nginx-extras' { warning('You must set $package_name to "nginx-extras" to enable Passenger') } } default: { fail("\$package_source must be 'nginx-stable', 'nginx-mainline' or 'passenger'. It was set to '${package_source}'") } } } } diff --git a/manifests/package/redhat.pp b/manifests/package/redhat.pp index 2672839..6eca9f8 100644 --- a/manifests/package/redhat.pp +++ b/manifests/package/redhat.pp @@ -1,111 +1,112 @@ # Class: nginx::package::redhat # # This module manages NGINX package installation on RedHat based systems # # Parameters: # # There are no default parameters for this class. # # Actions: # # Requires: # # Sample Usage: # # This class file is not called directly class nginx::package::redhat { $package_name = $nginx::package_name $package_source = $nginx::package_source $package_ensure = $nginx::package_ensure $package_flavor = $nginx::package_flavor $passenger_package_ensure = $nginx::passenger_package_ensure + $passenger_package_name = $nginx::passenger_package_name $manage_repo = $nginx::manage_repo $purge_passenger_repo = $nginx::purge_passenger_repo #Install the CentOS-specific packages on that OS, otherwise assume it's a RHEL #clone and provide the Red Hat-specific package. This comes into play when not #on RHEL or CentOS and $manage_repo is set manually to 'true'. $_os = $facts['os']['name'] ? { 'centos' => 'centos', 'VirtuozzoLinux' => 'centos', default => 'rhel' } if $manage_repo { case $package_source { 'nginx', 'nginx-stable': { yumrepo { 'nginx-release': baseurl => "https://nginx.org/packages/${_os}/${facts['os']['release']['major']}/\$basearch/", descr => 'nginx repo', enabled => '1', gpgcheck => '1', priority => '1', gpgkey => 'https://nginx.org/keys/nginx_signing.key', before => Package['nginx'], } if $purge_passenger_repo { - yumrepo { 'passenger': + yumrepo { $passenger_package_name: ensure => absent, before => Package['nginx'], } } } 'nginx-mainline': { yumrepo { 'nginx-release': baseurl => "https://nginx.org/packages/mainline/${_os}/${facts['os']['release']['major']}/\$basearch/", descr => 'nginx repo', enabled => '1', gpgcheck => '1', priority => '1', gpgkey => 'https://nginx.org/keys/nginx_signing.key', before => Package['nginx'], } if $purge_passenger_repo { - yumrepo { 'passenger': + yumrepo { $passenger_package_name: ensure => absent, before => Package['nginx'], } } } 'passenger': { if ($facts['os']['name'] in ['RedHat', 'CentOS', 'VirtuozzoLinux']) and ($facts['os']['release']['major'] in ['6', '7']) { yumrepo { 'passenger': baseurl => "https://oss-binaries.phusionpassenger.com/yum/passenger/el/${facts['os']['release']['major']}/\$basearch", descr => 'passenger repo', enabled => '1', gpgcheck => '0', repo_gpgcheck => '1', priority => '1', gpgkey => 'https://packagecloud.io/phusion/passenger/gpgkey', before => Package['nginx'], } yumrepo { 'nginx-release': ensure => absent, before => Package['nginx'], } - package { 'passenger': + package { $passenger_package_name: ensure => $passenger_package_ensure, require => Yumrepo['passenger'], } } else { fail("${facts['os']['name']} version ${facts['os']['release']['major']} is unsupported with \$package_source 'passenger'") } } default: { fail("\$package_source must be 'nginx-stable', 'nginx-mainline', or 'passenger'. It was set to '${package_source}'") } } } package { 'nginx': ensure => $package_ensure, name => $package_name, } } diff --git a/manifests/params.pp b/manifests/params.pp index 2d26d54..ae3eaf0 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,234 +1,245 @@ # Class: nginx::params # ==================== # # nginx default settings and according to operating system # class nginx::params { ### Operating System Configuration ## This is my hacky... no hiera system. Oh well. :) $_module_defaults = { - 'conf_dir' => '/etc/nginx', - 'daemon_user' => 'nginx', - 'pid' => '/var/run/nginx.pid', - 'root_group' => 'root', - 'log_dir' => '/var/log/nginx', - 'log_user' => 'nginx', - 'log_group' => 'root', - 'log_mode' => '0750', - 'run_dir' => '/var/nginx', - 'package_name' => 'nginx', - 'manage_repo' => false, - 'mime_types' => { + 'conf_dir' => '/etc/nginx', + 'daemon_user' => 'nginx', + 'pid' => '/var/run/nginx.pid', + 'root_group' => 'root', + 'log_dir' => '/var/log/nginx', + 'log_user' => 'nginx', + 'log_group' => 'root', + 'log_mode' => '0750', + 'run_dir' => '/var/nginx', + 'package_name' => 'nginx', + 'passenger_package_name' => 'passenger', + 'manage_repo' => false, + 'mime_types' => { 'text/html' => 'html htm shtml', 'text/css' => 'css', 'text/xml' => 'xml', 'image/gif' => 'gif', 'image/jpeg' => 'jpeg jpg', 'application/javascript' => 'js', 'application/atom+xml' => 'atom', 'application/rss+xml' => 'rss', 'text/mathml' => 'mml', 'text/plain' => 'txt', 'text/vnd.sun.j2me.app-descriptor' => 'jad', 'text/vnd.wap.wml' => 'wml', 'text/x-component' => 'htc', 'image/png' => 'png', 'image/tiff' => 'tif tiff', 'image/vnd.wap.wbmp' => 'wbmp', 'image/x-icon' => 'ico', 'image/x-jng' => 'jng', 'image/x-ms-bmp' => 'bmp', 'image/svg+xml' => 'svg svgz', 'image/webp' => 'webp', 'application/font-woff' => 'woff', 'application/java-archive' => 'jar war ear', 'application/json' => 'json', 'application/mac-binhex40' => 'hqx', 'application/msword' => 'doc', 'application/pdf' => 'pdf', 'application/postscript' => 'ps eps ai', 'application/rtf' => 'rtf', 'application/vnd.apple.mpegurl' => 'm3u8', 'application/vnd.ms-excel' => 'xls', 'application/vnd.ms-fontobject' => 'eot', 'application/vnd.ms-powerpoint' => 'ppt', 'application/vnd.wap.wmlc' => 'wmlc', 'application/vnd.google-earth.kml+xml' => 'kml', 'application/vnd.google-earth.kmz' => 'kmz', 'application/x-7z-compressed' => '7z', 'application/x-cocoa' => 'cco', 'application/x-java-archive-diff' => 'jardiff', 'application/x-java-jnlp-file' => 'jnlp', 'application/x-makeself' => 'run', 'application/x-perl' => 'pl pm', 'application/x-pilot' => 'prc pdb', 'application/x-rar-compressed' => 'rar', 'application/x-redhat-package-manager' => 'rpm', 'application/x-sea' => 'sea', 'application/x-shockwave-flash' => 'swf', 'application/x-stuffit' => 'sit', 'application/x-tcl' => 'tcl tk', 'application/x-x509-ca-cert' => 'der pem crt', 'application/x-xpinstall' => 'xpi', 'application/xhtml+xml' => 'xhtml', 'application/xspf+xml' => 'xspf', 'application/zip' => 'zip', 'application/octet-stream' => 'bin exe dll deb dmg iso img msi msp msm', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', 'audio/midi' => 'mid midi kar', 'audio/mpeg' => 'mp3', 'audio/ogg' => 'ogg', 'audio/x-m4a' => 'm4a', 'audio/x-realaudio' => 'ra', 'video/3gpp' => '3gpp 3gp', 'video/mp2t' => 'ts', 'video/mp4' => 'mp4', 'video/mpeg' => 'mpeg mpg', 'video/quicktime' => 'mov', 'video/webm' => 'webm', 'video/x-flv' => 'flv', 'video/x-m4v' => 'm4v', 'video/x-mng' => 'mng', 'video/x-ms-asf' => 'asx asf', 'video/x-ms-wmv' => 'wmv', 'video/x-msvideo' => 'avi', }, } case $facts['os']['family'] { 'ArchLinux': { $_module_os_overrides = { 'pid' => false, 'daemon_user' => 'http', 'log_user' => 'http', 'log_group' => 'log', 'package_name' => 'nginx-mainline', } } 'Debian': { - # $facts['os']['distro']['codename'] is not yet well established, so we stick with the legact lsb facts for now - if ($facts['os']['name'] == 'ubuntu' and $facts['lsbdistcodename'] in ['lucid', 'precise', 'trusty', 'xenial', 'bionic']) # lint:ignore:legacy_facts - or ($facts['os']['name'] == 'debian' and $facts['os']['release']['major'] in ['6', '7', '8', '9', '10']) { + if ($facts['os']['name'] == 'ubuntu' and $facts['lsbdistcodename'] in ['bionic']) + or ($facts['os']['name'] == 'debian' and $facts['os']['release']['major'] in ['9', '10']) { + $_module_os_overrides = { + 'manage_repo' => true, + 'daemon_user' => 'www-data', + 'log_user' => 'root', + 'log_group' => 'adm', + 'log_mode' => '0755', + 'run_dir' => '/run/nginx', + 'passenger_package_name' => 'libnginx-mod-http-passenger', + } + } elsif ($facts['os']['name'] == 'ubuntu' and $facts['lsbdistcodename'] in ['lucid', 'precise', 'trusty', 'xenial']) + or ($facts['os']['name'] == 'debian' and $facts['os']['release']['major'] in ['6', '7', '8']) { $_module_os_overrides = { 'manage_repo' => true, 'daemon_user' => 'www-data', 'log_user' => 'root', 'log_group' => 'adm', 'log_mode' => '0755', 'run_dir' => '/run/nginx', } } else { $_module_os_overrides = { 'daemon_user' => 'www-data', 'log_user' => 'root', 'log_group' => 'adm', 'log_mode' => '0755', 'run_dir' => '/run/nginx', } } } 'DragonFly', 'FreeBSD': { $_module_os_overrides = { 'conf_dir' => '/usr/local/etc/nginx', 'daemon_user' => 'www', 'root_group' => 'wheel', 'log_group' => 'wheel', 'log_user' => 'root', } } 'Gentoo': { $_module_os_overrides = { 'package_name' => 'www-servers/nginx', } } 'RedHat': { if ($facts['os']['name'] in ['RedHat', 'CentOS', 'Oracle', 'virtuozzolinux'] and $facts['os']['release']['major'] in ['6', '7']) { $_module_os_overrides = { 'manage_repo' => true, 'log_group' => 'nginx', } } else { $_module_os_overrides = { 'log_group' => 'nginx', } } } 'Solaris': { case $facts['os']['name'] { 'SmartOS': { $_module_os_overrides = { 'conf_dir' => '/opt/local/etc/nginx', 'daemon_user' => 'www', 'log_user' => 'www', 'log_group' => 'root', } } default: { $_module_os_overrides = { 'daemon_user' => 'webservd', 'package_name' => undef, } } } } 'OpenBSD': { $_module_os_overrides = { 'daemon_user' => 'www', 'root_group' => 'wheel', 'log_dir' => '/var/www/logs', 'log_user' => 'www', 'log_group' => 'wheel', 'run_dir' => '/var/www', } } 'AIX': { $_module_os_overrides = { 'daemon_user' => 'nginx', 'root_group' => 'system', 'conf_dir' => '/opt/freeware/etc/nginx/', 'log_dir' => '/opt/freeware/var/log/nginx/', 'log_group' => 'system', 'run_dir' => '/opt/freeware/share/nginx/html', } } default: { ## For cases not covered in $::osfamily case $facts['os']['name'] { default: { $_module_os_overrides = {} } } } } $_module_parameters = merge($_module_defaults, $_module_os_overrides) ### END Operating System Configuration ### Referenced Variables $conf_dir = $_module_parameters['conf_dir'] $snippets_dir = "${conf_dir}/snippets" $log_dir = $_module_parameters['log_dir'] $log_user = $_module_parameters['log_user'] $log_group = $_module_parameters['log_group'] $log_mode = $_module_parameters['log_mode'] $run_dir = $_module_parameters['run_dir'] $temp_dir = '/tmp' $pid = $_module_parameters['pid'] $client_body_temp_path = "${run_dir}/client_body_temp" $daemon_user = $_module_parameters['daemon_user'] $global_owner = 'root' $global_group = $_module_parameters['root_group'] $global_mode = '0644' $http_access_log_file = 'access.log' $manage_repo = $_module_parameters['manage_repo'] $mime_types = $_module_parameters['mime_types'] $nginx_error_log_file = 'error.log' $root_group = $_module_parameters['root_group'] $package_name = $_module_parameters['package_name'] $proxy_temp_path = "${run_dir}/proxy_temp" $sites_available_owner = 'root' $sites_available_group = $_module_parameters['root_group'] $sites_available_mode = '0644' $super_user = true ### END Referenced Variables }