diff options
author | mh <mh@immerda.ch> | 2008-11-30 13:23:41 +0000 |
---|---|---|
committer | mh <mh@immerda.ch> | 2008-11-30 13:23:41 +0000 |
commit | 734cf5b60fc6d4b18527303dca64acc538fec55c (patch) | |
tree | e6f2d06e96696c4f5ab334fa700e00ef5d11e863 /manifests/defines.pp | |
parent | 6a48d7417ad609c6ed457477ba661f098ee65219 (diff) |
merged with puzzle
Diffstat (limited to 'manifests/defines.pp')
-rw-r--r-- | manifests/defines.pp | 524 |
1 files changed, 0 insertions, 524 deletions
diff --git a/manifests/defines.pp b/manifests/defines.pp deleted file mode 100644 index d3a8776..0000000 --- a/manifests/defines.pp +++ /dev/null @@ -1,524 +0,0 @@ -# manifests/defines.pp - -# This file contains various defines to work with apache. -# They are separated into various categories: -# -# - common vhosts -# - vhost deploy -# - configuration defines -# - wrapper defines - -### common vhosts - -# vhost_mode: which option is choosed to deploy the vhost -# - template: generate it from a template (default) -# - file: deploy a vhost file (apache::vhost::file will be called directly) -# -define apache::vhost::static( - $domain = 'absent', - $domainalias = 'absent', - $path = 'absent', - $owner = root, - $user_owner = root, - $group = 0, - $mode = 0640, - $apache_user = apache, - $apache_group = 0, - $apache_mode = 0640, - $allow_override = 'None', - $options = 'absent', - $additional_options = 'absent', - $ssl_mode = 'false', - $vhost_mode = 'template', - $vhost_source = 'absent', - $vhost_destination = 'absent', - $htpasswd_file = 'absent', - $htpasswd_path = 'absent' -){ - apache::vhost::webhostdir{$name: - path => $path, - owner => $owner, - user_owner => $user_owner, - group => $group, - mode => $mode, - apache_user => $apache_user, - apache_group => $apache_group, - } - - apache::vhost{"${name}": - path => $path, - vhost_mode => $vhost_mode, - source => $vhost_source, - destination => $vhost_destination, - domain => $domain, - domainalias => $domainalias, - allow_override => $allow_override, - options => $options, - additional_options => $additional_options, - template_mode => 'static', - ssl_mode => $ssl_mode, - htpasswd_file => $htpasswd_file, - htpasswd_path => $htpasswd_path, - mod_security => 'false', - } -} - -define apache::vhost::php::standard( - $domain = 'absent', - $domainalias = 'absent', - $path = 'absent', - $owner = root, - $user_owner = root, - $group = 0, - $mode = 0640, - $apache_user = apache, - $apache_group = 0, - $apache_mode = 0640, - $allow_override = 'None', - $upload_tmp_dir = 'absent', - $session_save_path = 'absent', - $options = 'absent', - $additional_options = 'absent', - $mod_security = 'true', - $vhost_mode = 'template', - $vhost_source = 'absent', - $vhost_destination = 'absent', - $htpasswd_file = 'absent', - $htpasswd_path = 'absent' -){ - apache::vhost::webhostdir{$name: - path => $path, - owner => $owner, - user_owner => $user_owner, - group => $group, - mode => $mode, - apache_user => $apache_user, - apache_group => $apache_group, - } - - case $upload_tmp_dir { - 'absent': { - include apache::defaultphpdirs - $real_upload_tmp_dir = "/var/www/upload_tmp_dir/${name}" - } - default: { - $real_upload_tmp_dir = $upload_tmp_dir - } - } - file{"$upload_tmp_dir": - ensure => directory, - owner => $apache_user, group => $apache_group, mode => $apache_mode; - } - - case $session_save_path { - 'absent': { - include apache::defaultphpdirs - $real_session_save_path = "/var/www/session.save_path/${name}" - } - default: { - $real_session_save_path = $session_save_path - } - } - file{"$session_save_path": - ensure => directory, - owner => $apache_user, group => $apache_group, mode => $apache_mode; - } - - apache::vhost{"${name}": - path => $path, - template_mode => 'php', - vhost_mode => $vhost_mode, - source => $vhost_source, - destination => $vhost_destination, - domain => $domain, - domainalias => $domainalias, - allow_override => $allow_override, - options => $options, - additional_options => $additional_options, - php_upload_tmp_dir => $real_upload_tmp_dir, - php_session_save_path => $real_session_save_path, - ssl_mode => $ssl_mode, - htpasswd_file => $htpasswd_file, - htpasswd_path => $htpasswd_path, - mod_security => $mod_security, - } - -} - -### vhost deploy stuff -# these defines are used to deploy a vhost file - -# This define is used to wrap the other vhost defines. -# -# vhost_mode: which option is choosed to deploy the vhost -# - template: generate it from a template (default) -# - file: deploy a vhost file (apache::vhost::file will be called directly) -# -define apache::vhost( - $path = 'absent', - $template_mode = 'static', - $vhost_mode = 'template', - $source = 'absent', - $destination = 'absent', - $content = 'absent', - $domain = 'absent', - $domainalias = 'absent', - $allow_override = 'None', - $php_upload_tmp_dir = 'absent', - $php_session_save_path = 'absent', - $options = 'absent', - $additional_options = 'absent', - $template_mode = 'static', - $ssl_mode = 'false', - $htpasswd_file = 'absent', - $htpasswd_path = 'absent', - $mod_security = 'true' -) { - case $vhost_mode { - 'file': { - apache::vhost::file{"${name}": - source => $vhost_source, - destination => $vhost_destination, - htpasswd_file => $htpasswd_file, - htpasswd_path => $htpasswd_path, - } - } - 'template': { - apache::vhost::template{"${name}": - path => $path, - domain => $domain, - domainalias => $domainalias, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, - allow_override => $allow_override, - options => $options, - additional_options => $additional_options, - template_mode => $template_mode, - ssl_mode => $ssl_mode, - htpasswd_file => $htpasswd_file, - htpasswd_path => $htpasswd_path, - mod_security => 'false', - } - } - default: { fail("no such vhost_mode: ${vhost_mode} defined for ${name}.") } - } - -} - -# htpasswd_file: wether to deploy a passwd for this vhost or not -# - absent: ignore (default) -# - nodeploy: htpasswd file isn't deployed by this mechanism -# - else: try to deploy the file -# htpasswd_path: where to deploy the passwd file -# - absent: standardpath (default) -# - else: path to deploy -define apache::vhost::file( - $source = 'absent', - $destination = 'absent', - $content = 'absent', - $htpasswd_file = 'absent', - $htpasswd_path = 'absent' -){ - $vhosts_dir = $operatingsystem ? { - centos => "$apache::centos::config_dir/vhosts.d/", - gentoo => "$apache::gentoo::config_dir/vhosts.d/", - debian => "$apache::debian::config_dir/vhosts.d/", - ubuntu => "$apache::ubuntu::config_dir/vhosts.d/", - openbsd => "$apache::openbsd::config_dir/vhosts.d/", - default => '/etc/apache2/vhosts.d/', - } - $real_destination = $destination ? { - 'absent' => "${vhosts_dir}/${name}.conf", - default => $destination, - } - file{"${name}.conf": - path => $real_destination, - require => File[vhosts_dir], - notify => Service[apache], - owner => root, group => 0, mode => 0644; - } - case $content { - 'absent': { - $real_source = $source ? { - 'absent' => [ - "puppet://$server/files/apache/vhosts.d/${fqdn}/${name}.conf", - "puppet://$server/files/apache/vhosts.d/${apache_cluster_node}/${name}.conf", - "puppet://$server/files/apache/vhosts.d/${name}.conf", - "puppet://$server/apache/vhosts.d/${name}.conf", - "puppet://$server/apache/vhosts.d/${operatingsystem}.${lsbdistcodename}/${name}.conf", - "puppet://$server/apache/vhosts.d/${operatingsystem}/${name}.conf", - "puppet://$server/apache/vhosts.d/${name}.conf" - ], - default => "puppet://$server/$source", - } - File["${name}.conf"]{ - source => $real_source, - } - } - default: { - File["${name}.conf"]{ - content => $content, - } - } - } - case $htpasswd_file { - 'absent','nodeploy': { info("don't deploy a htpasswd file for ${name}") } - default: { - case $htpasswd_path { - 'absent': { - $real_htpasswd_path = $operatingsystem ? { - gentoo => "$apache::gentoo::config_dir/htpasswds/${name}", - debian => "$apache::debian::config_dir/htpasswds/${name}", - ubuntu => "$apache::ubuntu::config_dir/htpasswds/${name}", - openbsd => "$apache::openbsd::config_dir/htpasswds/${name}", - default => "/etc/apache2/htpasswds/${name}" - } - } - default: { $real_htpasswd_path = $htpasswd_path } - } - file{"${real_htpasswd_path}": - source => [ "puppet://$server/files/apache/htpasswds/${fqdn}/${name}", - "puppet://$server/files/apache/htpasswds/${apache_cluster_node}/${name}", - "puppet://$server/files/apache/htpasswds/${name}" ], - owner => root, group => 0, mode => 0644; - } - } - } -} - - -# template_mode: -# - php -> for a default php application -# - static -> for a static application (default) -# ssl_mode: wether this vhost supports ssl or not -# - false: don't enable ssl for this vhost (default) -# - true: enable ssl for this vhost -# - force: enable ssl and redirect non-ssl to ssl -define apache::vhost::template( - $path = 'absent', - $domain = 'absent', - $domainalias = 'absent', - $allow_override = 'None', - $php_upload_tmp_dir = 'absent', - $php_session_save_path = 'absent', - $options = 'absent', - $additional_options = 'absent', - $template_mode = 'static', - $ssl_mode = 'false', - $mod_security = 'true', - $htpasswd_file = 'absent', - $htpasswd_path = 'absent' -){ - $real_path = $path ? { - 'absent' => $operatingsystem ? { - openbsd => "/var/www/htdocs/${name}", - default => "/var/www/${name}" - }, - default => "${path}" - } - $documentroot = "${real_path}/www" - $logdir = "${real_path}/logs" - - $servername = $domain ? { - 'absent' => $name, - default => $domain - } - $serveralias = $domainalias ? { - 'absent' => '', - default => $domainalias - } - - case $htpasswd_path { - 'absent': { - $real_htpasswd_path = $operatingsystem ? { - gentoo => "$apache::gentoo::config_dir/htpasswds/${name}", - debian => "$apache::debian::config_dir/htpasswds/${name}", - ubuntu => "$apache::ubuntu::config_dir/htpasswds/${name}", - openbsd => "$apache::openbsd::config_dir/htpasswds/${name}", - default => "/etc/apache2/htpasswds/${name}" - } - } - default: { $real_htpasswd_path = $htpasswd_path } - } - apache::vhost::file{"$name": - content => template("apache/vhosts/${template_mode}/${operatingsystem}.erb"), - htpasswd_file => $htpasswd_file, - htpasswd_path => $htpasswd_path, - } -} - -### configuration defines -# These defines are used to configured the apache -# - -define apache::config::file( - $source = '', - $destination = '' -){ - $real_source = $source ? { - # get a whole bunch of possible sources if there is no specific source for that config-file - '' => [ - "puppet://$server/files/apache/conf.d/${fqdn}/${name}", - "puppet://$server/files/apache/conf.d/${apache_cluster_node}/${name}", - "puppet://$server/files/apache/conf.d/${name}", - "puppet://$server/apache/conf.d/${operatingsystem}.${lsbdistcodename}/${name}", - "puppet://$server/apache/conf.d/${operatingsystem}/${name}", - "puppet://$server/apache/conf.d/${name}" - ], - default => "puppet://$server/$source", - } - $real_destination = $destination ? { - '' => $operatingsystem ? { - centos => "$apache::centos::config_dir/conf.d/${name}", - gentoo => "$apache::gentoo::config_dir/${name}", - debian => "$apache::debian::config_dir/conf.d/${name}", - ubuntu => "$apache::ubuntu::config_dir/conf.d/${name}", - openbsd => "$apache::openbsd::config_dir/conf.d/${name}", - default => "/etc/apache2/${name}", - }, - default => $destination - } - file{"apache_${name}": - path => $real_destination, - source => $real_source, - notify => Service[apache], - owner => root, group => 0, mode => 0644; - } - - case $operatingsystem { - openbsd: { info("no package dependency on ${operatingsystem} for ${name}") } - default: { - File["apache_${name}"]{ - require => Package[apache], - } - } - } -} - -define apache::centos::module( - $source = '', - $destination = '' -){ - $modules_dir = "$apache::centos::config_dir/modules.d/" - $real_destination = $destination ? { - '' => "${modules_dir}/${name}.so", - default => $destination, - } - $real_source = $source ? { - '' => [ - "puppet://$server/files/apache/modules.d/${fqdn}/${name}.so", - "puppet://$server/files/apache/modules.d/${apache_cluster_node}/${name}.so", - "puppet://$server/files/apache/modules.d/${name}.so", - "puppet://$server/apache/modules.d/${operatingsystem}/${name}.so", - "puppet://$server/apache/modules.d/${name}.so" - ], - default => "puppet://$server/$source", - } - file{"modules_${name}.conf": - path => $real_destination, - source => $real_source, - require => [ File[modules_dir], Package[apache] ], - notify => Service[apache], - owner => root, group => 0, mode => 0755; - } -} - - -define apache::gentoo::module( - $source = '', - $destination = '' -){ - $modules_dir = "$apache::gentoo::config_dir/modules.d/" - $real_destination = $destination ? { - '' => "${modules_dir}/${name}.conf", - default => $destination, - } - $real_source = $source ? { - '' => [ - "puppet://$server/files/apache/modules.d/${fqdn}/${name}.conf", - "puppet://$server/files/apache/modules.d/${apache_cluster_node}/${name}.conf", - "puppet://$server/files/apache/modules.d/${name}.conf", - "puppet://$server/apache/modules.d/${operatingsystem}/${name}.conf", - "puppet://$server/apache/modules.d/${name}.conf" - ], - default => "puppet://$server/$source", - } - file{"modules_${name}.conf": - path => $real_destination, - source => $real_source, - require => [ File[modules_dir], Package[apache] ], - notify => Service[apache], - owner => root, group => 0, mode => 0644; - } -} - - -### wrapper defines -# These defines are mostly wrappers for the common setup. -# They are mainly called by the other defines - - -define apache::vhost::webhostdir( - $path = 'absent', - $owner = root, - $user_owner = root, - $group = 0, - $mode = 0640, - $apache_user = apache, - $apache_group = 0 -){ - $real_path = $path ? { - 'absent' => $operatingsystem ? { - openbsd => "/var/www/htdocs/${name}", - default => "/var/www/${name}" - }, - default => "${path}" - } - $documentroot = "${real_path}/www" - $logdir = "${real_path}/logs" - - case $apache_user { - apache: { - case $apache_default_user { - '': { - $real_apache_user = $operatingsystem ? { - openbsd => 'www', - default => $apache_user - } - } - default: { $real_apache_user = $apache_default_user } - } - } - default: { $real_apache_user = $apache_default_user } - } - - case $apache_group { - apache: { - case $apache_default_group { - '': { - $real_apache_group = $operatingsystem ? { - openbsd => 'www', - default => $apache_group - } - } - default: { $real_apache_group = $apache_default_group } - } - } - default: { $real_apache_group = $apache_default_group } - } - - file{"$real_path": - ensure => directory, - owner => $owner, group => $real_apache_group, mode => '0750'; - } - file{"$documentroot": - ensure => directory, - owner => $user_owner, group => $real_apache_group, mode => $mode; - } - - # the logdir must be writeable by the apache and the user - file{"$logdir": - ensure => directory, - owner => $real_apache_user, group => $group, mode => 775; - } -} |