mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Add additional Puppet samples
This commit is contained in:
		
							
								
								
									
										378
									
								
								samples/Puppet/apacheinit.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										378
									
								
								samples/Puppet/apacheinit.pp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,378 @@ | |||||||
|  | # Class: apache | ||||||
|  | # | ||||||
|  | # This class installs Apache | ||||||
|  | # | ||||||
|  | # Parameters: | ||||||
|  | # | ||||||
|  | # Actions: | ||||||
|  | #   - Install Apache | ||||||
|  | #   - Manage Apache service | ||||||
|  | # | ||||||
|  | # Requires: | ||||||
|  | # | ||||||
|  | # Sample Usage: | ||||||
|  | # | ||||||
|  | class apache ( | ||||||
|  |   $apache_name            = $::apache::params::apache_name, | ||||||
|  |   $service_name           = $::apache::params::service_name, | ||||||
|  |   $default_mods           = true, | ||||||
|  |   $default_vhost          = true, | ||||||
|  |   $default_charset        = undef, | ||||||
|  |   $default_confd_files    = true, | ||||||
|  |   $default_ssl_vhost      = false, | ||||||
|  |   $default_ssl_cert       = $::apache::params::default_ssl_cert, | ||||||
|  |   $default_ssl_key        = $::apache::params::default_ssl_key, | ||||||
|  |   $default_ssl_chain      = undef, | ||||||
|  |   $default_ssl_ca         = undef, | ||||||
|  |   $default_ssl_crl_path   = undef, | ||||||
|  |   $default_ssl_crl        = undef, | ||||||
|  |   $default_ssl_crl_check  = undef, | ||||||
|  |   $default_type           = 'none', | ||||||
|  |   $ip                     = undef, | ||||||
|  |   $service_enable         = true, | ||||||
|  |   $service_manage         = true, | ||||||
|  |   $service_ensure         = 'running', | ||||||
|  |   $purge_configs          = true, | ||||||
|  |   $purge_vhost_dir        = undef, | ||||||
|  |   $purge_vdir             = false, | ||||||
|  |   $serveradmin            = 'root@localhost', | ||||||
|  |   $sendfile               = 'On', | ||||||
|  |   $error_documents        = false, | ||||||
|  |   $timeout                = '120', | ||||||
|  |   $httpd_dir              = $::apache::params::httpd_dir, | ||||||
|  |   $server_root            = $::apache::params::server_root, | ||||||
|  |   $conf_dir               = $::apache::params::conf_dir, | ||||||
|  |   $confd_dir              = $::apache::params::confd_dir, | ||||||
|  |   $vhost_dir              = $::apache::params::vhost_dir, | ||||||
|  |   $vhost_enable_dir       = $::apache::params::vhost_enable_dir, | ||||||
|  |   $mod_dir                = $::apache::params::mod_dir, | ||||||
|  |   $mod_enable_dir         = $::apache::params::mod_enable_dir, | ||||||
|  |   $mpm_module             = $::apache::params::mpm_module, | ||||||
|  |   $lib_path               = $::apache::params::lib_path, | ||||||
|  |   $conf_template          = $::apache::params::conf_template, | ||||||
|  |   $servername             = $::apache::params::servername, | ||||||
|  |   $manage_user            = true, | ||||||
|  |   $manage_group           = true, | ||||||
|  |   $user                   = $::apache::params::user, | ||||||
|  |   $group                  = $::apache::params::group, | ||||||
|  |   $keepalive              = $::apache::params::keepalive, | ||||||
|  |   $keepalive_timeout      = $::apache::params::keepalive_timeout, | ||||||
|  |   $max_keepalive_requests = $::apache::params::max_keepalive_requests, | ||||||
|  |   $logroot                = $::apache::params::logroot, | ||||||
|  |   $logroot_mode           = $::apache::params::logroot_mode, | ||||||
|  |   $log_level              = $::apache::params::log_level, | ||||||
|  |   $log_formats            = {}, | ||||||
|  |   $ports_file             = $::apache::params::ports_file, | ||||||
|  |   $docroot                = $::apache::params::docroot, | ||||||
|  |   $apache_version         = $::apache::version::default, | ||||||
|  |   $server_tokens          = 'OS', | ||||||
|  |   $server_signature       = 'On', | ||||||
|  |   $trace_enable           = 'On', | ||||||
|  |   $allow_encoded_slashes  = undef, | ||||||
|  |   $package_ensure         = 'installed', | ||||||
|  |   $use_optional_includes  = $::apache::params::use_optional_includes, | ||||||
|  | ) inherits ::apache::params { | ||||||
|  |   validate_bool($default_vhost) | ||||||
|  |   validate_bool($default_ssl_vhost) | ||||||
|  |   validate_bool($default_confd_files) | ||||||
|  |   # true/false is sufficient for both ensure and enable | ||||||
|  |   validate_bool($service_enable) | ||||||
|  |   validate_bool($service_manage) | ||||||
|  |   validate_bool($use_optional_includes) | ||||||
|  |  | ||||||
|  |   $valid_mpms_re = $apache_version ? { | ||||||
|  |     '2.4'   => '(event|itk|peruser|prefork|worker)', | ||||||
|  |     default => '(event|itk|prefork|worker)' | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if $mpm_module { | ||||||
|  |     validate_re($mpm_module, $valid_mpms_re) | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if $allow_encoded_slashes { | ||||||
|  |     validate_re($allow_encoded_slashes, '(^on$|^off$|^nodecode$)', "${allow_encoded_slashes} is not permitted for allow_encoded_slashes. Allowed values are 'on', 'off' or 'nodecode'.") | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   # NOTE: on FreeBSD it's mpm module's responsibility to install httpd package. | ||||||
|  |   # NOTE: the same strategy may be introduced for other OSes. For this, you | ||||||
|  |   # should delete the 'if' block below and modify all MPM modules' manifests | ||||||
|  |   # such that they include apache::package class (currently event.pp, itk.pp, | ||||||
|  |   # peruser.pp, prefork.pp, worker.pp). | ||||||
|  |   if $::osfamily != 'FreeBSD' { | ||||||
|  |     package { 'httpd': | ||||||
|  |       ensure => $package_ensure, | ||||||
|  |       name   => $apache_name, | ||||||
|  |       notify => Class['Apache::Service'], | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   validate_re($sendfile, [ '^[oO]n$' , '^[oO]ff$' ]) | ||||||
|  |  | ||||||
|  |   # declare the web server user and group | ||||||
|  |   # Note: requiring the package means the package ought to create them and not puppet | ||||||
|  |   validate_bool($manage_user) | ||||||
|  |   if $manage_user { | ||||||
|  |     user { $user: | ||||||
|  |       ensure  => present, | ||||||
|  |       gid     => $group, | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   validate_bool($manage_group) | ||||||
|  |   if $manage_group { | ||||||
|  |     group { $group: | ||||||
|  |       ensure  => present, | ||||||
|  |       require => Package['httpd'] | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   validate_apache_log_level($log_level) | ||||||
|  |  | ||||||
|  |   class { '::apache::service': | ||||||
|  |     service_name   => $service_name, | ||||||
|  |     service_enable => $service_enable, | ||||||
|  |     service_manage => $service_manage, | ||||||
|  |     service_ensure => $service_ensure, | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   # Deprecated backwards-compatibility | ||||||
|  |   if $purge_vdir { | ||||||
|  |     warning('Class[\'apache\'] parameter purge_vdir is deprecated in favor of purge_configs') | ||||||
|  |     $purge_confd = $purge_vdir | ||||||
|  |   } else { | ||||||
|  |     $purge_confd = $purge_configs | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   # Set purge vhostd appropriately | ||||||
|  |   if $purge_vhost_dir == undef { | ||||||
|  |     $purge_vhostd = $purge_confd | ||||||
|  |   } else { | ||||||
|  |     $purge_vhostd = $purge_vhost_dir | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   Exec { | ||||||
|  |     path => '/bin:/sbin:/usr/bin:/usr/sbin', | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   exec { "mkdir ${confd_dir}": | ||||||
|  |     creates => $confd_dir, | ||||||
|  |     require => Package['httpd'], | ||||||
|  |   } | ||||||
|  |   file { $confd_dir: | ||||||
|  |     ensure  => directory, | ||||||
|  |     recurse => true, | ||||||
|  |     purge   => $purge_confd, | ||||||
|  |     notify  => Class['Apache::Service'], | ||||||
|  |     require => Package['httpd'], | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if ! defined(File[$mod_dir]) { | ||||||
|  |     exec { "mkdir ${mod_dir}": | ||||||
|  |       creates => $mod_dir, | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |     # Don't purge available modules if an enable dir is used | ||||||
|  |     $purge_mod_dir = $purge_configs and !$mod_enable_dir | ||||||
|  |     file { $mod_dir: | ||||||
|  |       ensure  => directory, | ||||||
|  |       recurse => true, | ||||||
|  |       purge   => $purge_mod_dir, | ||||||
|  |       notify  => Class['Apache::Service'], | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if $mod_enable_dir and ! defined(File[$mod_enable_dir]) { | ||||||
|  |     $mod_load_dir = $mod_enable_dir | ||||||
|  |     exec { "mkdir ${mod_enable_dir}": | ||||||
|  |       creates => $mod_enable_dir, | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |     file { $mod_enable_dir: | ||||||
|  |       ensure  => directory, | ||||||
|  |       recurse => true, | ||||||
|  |       purge   => $purge_configs, | ||||||
|  |       notify  => Class['Apache::Service'], | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |   } else { | ||||||
|  |     $mod_load_dir = $mod_dir | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if ! defined(File[$vhost_dir]) { | ||||||
|  |     exec { "mkdir ${vhost_dir}": | ||||||
|  |       creates => $vhost_dir, | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |     file { $vhost_dir: | ||||||
|  |       ensure  => directory, | ||||||
|  |       recurse => true, | ||||||
|  |       purge   => $purge_vhostd, | ||||||
|  |       notify  => Class['Apache::Service'], | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if $vhost_enable_dir and ! defined(File[$vhost_enable_dir]) { | ||||||
|  |     $vhost_load_dir = $vhost_enable_dir | ||||||
|  |     exec { "mkdir ${vhost_load_dir}": | ||||||
|  |       creates => $vhost_load_dir, | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |     file { $vhost_enable_dir: | ||||||
|  |       ensure  => directory, | ||||||
|  |       recurse => true, | ||||||
|  |       purge   => $purge_vhostd, | ||||||
|  |       notify  => Class['Apache::Service'], | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |   } else { | ||||||
|  |     $vhost_load_dir = $vhost_dir | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   concat { $ports_file: | ||||||
|  |     owner   => 'root', | ||||||
|  |     group   => $::apache::params::root_group, | ||||||
|  |     mode    => '0644', | ||||||
|  |     notify  => Class['Apache::Service'], | ||||||
|  |     require => Package['httpd'], | ||||||
|  |   } | ||||||
|  |   concat::fragment { 'Apache ports header': | ||||||
|  |     ensure  => present, | ||||||
|  |     target  => $ports_file, | ||||||
|  |     content => template('apache/ports_header.erb') | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if $::apache::conf_dir and $::apache::params::conf_file { | ||||||
|  |     case $::osfamily { | ||||||
|  |       'debian': { | ||||||
|  |         $pidfile              = "\${APACHE_PID_FILE}" | ||||||
|  |         $error_log            = 'error.log' | ||||||
|  |         $scriptalias          = '/usr/lib/cgi-bin' | ||||||
|  |         $access_log_file      = 'access.log' | ||||||
|  |       } | ||||||
|  |       'redhat': { | ||||||
|  |         $pidfile              = 'run/httpd.pid' | ||||||
|  |         $error_log            = 'error_log' | ||||||
|  |         $scriptalias          = '/var/www/cgi-bin' | ||||||
|  |         $access_log_file      = 'access_log' | ||||||
|  |       } | ||||||
|  |       'freebsd': { | ||||||
|  |         $pidfile              = '/var/run/httpd.pid' | ||||||
|  |         $error_log            = 'httpd-error.log' | ||||||
|  |         $scriptalias          = '/usr/local/www/apache24/cgi-bin' | ||||||
|  |         $access_log_file      = 'httpd-access.log' | ||||||
|  |       } 'gentoo': { | ||||||
|  |         $pidfile              = '/run/apache2.pid' | ||||||
|  |         $error_log            = 'error.log' | ||||||
|  |         $error_documents_path = '/usr/share/apache2/error' | ||||||
|  |         $scriptalias          = '/var/www/localhost/cgi-bin' | ||||||
|  |         $access_log_file      = 'access.log' | ||||||
|  |  | ||||||
|  |         ::portage::makeconf { 'apache2_modules': | ||||||
|  |           content => $default_mods, | ||||||
|  |         } | ||||||
|  |         file { [ | ||||||
|  |           '/etc/apache2/modules.d/.keep_www-servers_apache-2', | ||||||
|  |           '/etc/apache2/vhosts.d/.keep_www-servers_apache-2' | ||||||
|  |         ]: | ||||||
|  |           ensure  => absent, | ||||||
|  |           require => Package['httpd'], | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       default: { | ||||||
|  |         fail("Unsupported osfamily ${::osfamily}") | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     $apxs_workaround = $::osfamily ? { | ||||||
|  |       'freebsd' => true, | ||||||
|  |       default   => false | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     # Template uses: | ||||||
|  |     # - $pidfile | ||||||
|  |     # - $user | ||||||
|  |     # - $group | ||||||
|  |     # - $logroot | ||||||
|  |     # - $error_log | ||||||
|  |     # - $sendfile | ||||||
|  |     # - $mod_dir | ||||||
|  |     # - $ports_file | ||||||
|  |     # - $confd_dir | ||||||
|  |     # - $vhost_dir | ||||||
|  |     # - $error_documents | ||||||
|  |     # - $error_documents_path | ||||||
|  |     # - $apxs_workaround | ||||||
|  |     # - $keepalive | ||||||
|  |     # - $keepalive_timeout | ||||||
|  |     # - $max_keepalive_requests | ||||||
|  |     # - $server_root | ||||||
|  |     # - $server_tokens | ||||||
|  |     # - $server_signature | ||||||
|  |     # - $trace_enable | ||||||
|  |     file { "${::apache::conf_dir}/${::apache::params::conf_file}": | ||||||
|  |       ensure  => file, | ||||||
|  |       content => template($conf_template), | ||||||
|  |       notify  => Class['Apache::Service'], | ||||||
|  |       require => Package['httpd'], | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     # preserve back-wards compatibility to the times when default_mods was | ||||||
|  |     # only a boolean value. Now it can be an array (too) | ||||||
|  |     if is_array($default_mods) { | ||||||
|  |       class { '::apache::default_mods': | ||||||
|  |         all  => false, | ||||||
|  |         mods => $default_mods, | ||||||
|  |       } | ||||||
|  |     } else { | ||||||
|  |       class { '::apache::default_mods': | ||||||
|  |         all => $default_mods, | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     class { '::apache::default_confd_files': | ||||||
|  |       all => $default_confd_files | ||||||
|  |     } | ||||||
|  |     if $mpm_module { | ||||||
|  |       class { "::apache::mod::${mpm_module}": } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     $default_vhost_ensure = $default_vhost ? { | ||||||
|  |       true  => 'present', | ||||||
|  |       false => 'absent' | ||||||
|  |     } | ||||||
|  |     $default_ssl_vhost_ensure = $default_ssl_vhost ? { | ||||||
|  |       true  => 'present', | ||||||
|  |       false => 'absent' | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     ::apache::vhost { 'default': | ||||||
|  |       ensure          => $default_vhost_ensure, | ||||||
|  |       port            => 80, | ||||||
|  |       docroot         => $docroot, | ||||||
|  |       scriptalias     => $scriptalias, | ||||||
|  |       serveradmin     => $serveradmin, | ||||||
|  |       access_log_file => $access_log_file, | ||||||
|  |       priority        => '15', | ||||||
|  |       ip              => $ip, | ||||||
|  |       logroot_mode    => $logroot_mode, | ||||||
|  |       manage_docroot  => $default_vhost, | ||||||
|  |     } | ||||||
|  |     $ssl_access_log_file = $::osfamily ? { | ||||||
|  |       'freebsd' => $access_log_file, | ||||||
|  |       default   => "ssl_${access_log_file}", | ||||||
|  |     } | ||||||
|  |     ::apache::vhost { 'default-ssl': | ||||||
|  |       ensure          => $default_ssl_vhost_ensure, | ||||||
|  |       port            => 443, | ||||||
|  |       ssl             => true, | ||||||
|  |       docroot         => $docroot, | ||||||
|  |       scriptalias     => $scriptalias, | ||||||
|  |       serveradmin     => $serveradmin, | ||||||
|  |       access_log_file => $ssl_access_log_file, | ||||||
|  |       priority        => '15', | ||||||
|  |       ip              => $ip, | ||||||
|  |       logroot_mode    => $logroot_mode, | ||||||
|  |       manage_docroot  => $default_ssl_vhost, | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user