diff options
-rw-r--r-- | manifests/defines/vhost_varieties.pp | 389 |
1 files changed, 184 insertions, 205 deletions
diff --git a/manifests/defines/vhost_varieties.pp b/manifests/defines/vhost_varieties.pp index c4223be..0bf2907 100644 --- a/manifests/defines/vhost_varieties.pp +++ b/manifests/defines/vhost_varieties.pp @@ -11,11 +11,11 @@ # - apache::vhost::modperl TODO # - apache::vhost::modpython TODO # - apache::vhost::modrails TODO +# - apache::vhost::webapp (abstract) # vhost_mode: which option is chosen 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( $ensure = present, $domain = 'absent', @@ -71,9 +71,9 @@ define apache::vhost::static( } } -# run_mode: +# run_mode: # - normal: nothing special (*default*) -# - itk: apache is running with the itk module +# - itk: apache is running with the itk module # and run_uid and run_gid are used as vhost users # run_uid: the uid the vhost should run as with the itk module # run_gid: the gid the vhost should run as with the itk module @@ -82,6 +82,7 @@ define apache::vhost::php::standard( $domain = 'absent', $domainalias = 'absent', $path = 'absent', + $template_mode = 'php', $owner = root, $group = 0, $documentroot_owner = apache, @@ -111,7 +112,7 @@ define apache::vhost::php::standard( php_upload_tmp_dir => $php_upload_tmp_dir, php_session_save_path => $php_session_save_path, documentroot_owner => $documentroot_owner, - documentroot_group => $documentroot_group, + documentroot_group => $documentroot_group, documentroot_mode => $documentroot_mode, run_mode => $run_mode, run_uid => $run_uid, @@ -132,7 +133,7 @@ define apache::vhost::php::standard( apache::vhost{$name: ensure => $ensure, path => $path, - template_mode => 'php', + template_mode => $template_mode, vhost_mode => $vhost_mode, vhost_source => $vhost_source, vhost_destination => $vhost_destination, @@ -155,9 +156,9 @@ define apache::vhost::php::standard( } } -# run_mode: +# run_mode: # - normal: nothing special (*default*) -# - itk: apache is running with the itk module +# - itk: apache is running with the itk module # and run_uid and run_gid are used as vhost users # run_uid: the uid the vhost should run as with the itk module # run_gid: the gid the vhost should run as with the itk module @@ -192,42 +193,47 @@ define apache::vhost::php::joomla( $config_webwriteable = false, $manage_directories = true ){ - include apache::joomla - apache::vhost::phpdirs{"${name}": - ensure => $ensure, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, - documentroot_owner => $documentroot_owner, - documentroot_group => $documentroot_group, - documentroot_mode => $documentroot_mode, - run_mode => $run_mode, - run_uid => $run_uid, - } - - $real_path = $path ? { + $documentroot = $path ? { 'absent' => $operatingsystem ? { - openbsd => "/var/www/htdocs/${name}", - default => "/var/www/vhosts/${name}" + openbsd => "/var/www/htdocs/${name}/www", + default => "/var/www/vhosts/${name}/www" }, - default => "${path}" + default => "${path}/www" } - $documentroot = "${real_path}/www" - # create and/or put correct permissions - apache::vhost::webdir{$name: + # create vhost configuration file + apache::vhost::php::webapp{$name: ensure => $ensure, - path => $real_path, + domain => $domain, + domainalias => $domainalias, + path => $path, + template_mode => 'php_joomla', owner => $owner, group => $group, documentroot_owner => $documentroot_owner, documentroot_group => $documentroot_group, documentroot_mode => $documentroot_mode, - } - - if ($ensure != 'absent') and $manage_directories { - apache::file::rw{ [ "$documentroot/administrator/backups", + run_mode => $run_mode, + run_uid => $run_uid, + run_gid => $run_gid, + allow_override => $allow_override, + php_upload_tmp_dir => $php_upload_tmp_dir, + php_session_save_path => $php_session_save_path, + do_includes => $do_includes, + options => $options, + additional_options => $additional_options, + default_charset => $default_charset, + mod_security => $mod_security, + ssl_mode => $ssl_mode, + vhost_mode => $vhost_mode, + vhost_source => $vhost_source, + vhost_destination => $vhost_destination, + htpasswd_file => $htpasswd_file, + htpasswd_path => $htpasswd_path, + manage_directories => $manage_directories, + managed_directories => [ "$documentroot/administrator/backups", "$documentroot/administrator/components", "$documentroot/administrator/language", "$documentroot/administrator/modules", @@ -240,60 +246,16 @@ define apache::vhost::php::joomla( "$documentroot/plugins", "$documentroot/templates", "$documentroot/cache", - "$documentroot/administrator/cache" ]: - owner => $documentroot_owner, - group => $documentroot_group, - } - } - - # create vhost configuration file - apache::vhost{$name: - ensure => $ensure, - path => $path, - template_mode => 'php_joomla', - vhost_mode => $vhost_mode, - vhost_source => $vhost_source, - vhost_destination => $vhost_destination, - domain => $domain, - domainalias => $domainalias, - run_mode => $run_mode, - run_uid => $run_uid, - run_gid => $run_gid, - allow_override => $allow_override, - do_includes => $do_includes, - options => $options, - additional_options => $additional_options, - default_charset => $default_charset, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, - ssl_mode => $ssl_mode, - htpasswd_file => $htpasswd_file, - htpasswd_path => $htpasswd_path, - mod_security => $mod_security, + "$documentroot/administrator/cache" ], + manage_config => $manage_config, + config_webwriteable => $config_webwriteable, + config_file => 'configuration.php', } - if $manage_config { - apache::vhost::file::documentrootfile{"joomlaconfigurationfile_${name}": - documentroot => $documentroot, - filename => 'configuration.php', - thedomain => $name, - owner => $documentroot_owner, - group => $documentroot_group, - } - if $config_webwriteable { - Apache::Vhost::File::Documentrootfile["joomlaconfigurationfile_${name}"]{ - mode => 0660, - } - } else { - Apache::Vhost::File::Documentrootfile["joomlaconfigurationfile_${name}"]{ - mode => 0440, - } - } - } } -# run_mode: +# run_mode: # - normal: nothing special (*default*) -# - itk: apache is running with the itk module +# - itk: apache is running with the itk module # and run_uid and run_gid are used as vhost users # run_uid: the uid the vhost should run as with the itk module # run_gid: the gid the vhost should run as with the itk module @@ -331,87 +293,48 @@ define apache::vhost::php::wordpress( include apache::joomla - apache::vhost::phpdirs{"${name}": - ensure => $ensure, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, - documentroot_owner => $documentroot_owner, - documentroot_group => $documentroot_group, - documentroot_mode => $documentroot_mode, - run_mode => $run_mode, - run_uid => $run_uid, - } - - $real_path = $path ? { + $documentroot = $path ? { 'absent' => $operatingsystem ? { - openbsd => "/var/www/htdocs/${name}", - default => "/var/www/vhosts/${name}" + openbsd => "/var/www/htdocs/${name}/www", + default => "/var/www/vhosts/${name}/www" }, - default => "${path}" + default => "${path}/www" } - $documentroot = "${real_path}/www" - # create and/or put correct permissions - apache::vhost::webdir{$name: + # create vhost configuration file + apache::vhost::php::webapp{$name: ensure => $ensure, - path => $real_path, + domain => $domain, + domainalias => $domainalias, + path => $path, + template_mode => 'php_wordpress', owner => $owner, group => $group, documentroot_owner => $documentroot_owner, documentroot_group => $documentroot_group, documentroot_mode => $documentroot_mode, - } - - if ($ensure != 'absent') and $manage_directories { - apache::file::rw{ "$documentroot/wp-content": - owner => $documentroot_owner, - group => $documentroot_group, - } - } - - # create vhost configuration file - apache::vhost{$name: - ensure => $ensure, - path => $path, - template_mode => 'php_wordpress', - vhost_mode => $vhost_mode, - vhost_source => $vhost_source, - vhost_destination => $vhost_destination, - domain => $domain, - domainalias => $domainalias, run_mode => $run_mode, run_uid => $run_uid, run_gid => $run_gid, allow_override => $allow_override, + php_upload_tmp_dir => $php_upload_tmp_dir, + php_session_save_path => $php_session_save_path, do_includes => $do_includes, options => $options, additional_options => $additional_options, default_charset => $default_charset, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, + mod_security => $mod_security, ssl_mode => $ssl_mode, + vhost_mode => $vhost_mode, + vhost_source => $vhost_source, + vhost_destination => $vhost_destination, htpasswd_file => $htpasswd_file, htpasswd_path => $htpasswd_path, - mod_security => $mod_security, - } - - if $manage_config { - apache::vhost::file::documentrootfile{"wordpressconfigurationfile_${name}": - documentroot => $documentroot, - filename => 'wp-config.php', - thedomain => $name, - owner => $documentroot_owner, - group => $documentroot_group, - } - if $config_webwriteable { - Apache::Vhost::File::Documentrootfile["wordpressconfigurationfile_${name}"]{ - mode => 0660, - } - } else { - Apache::Vhost::File::Documentrootfile["wordpressconfigurationfile_${name}"]{ - mode => 0440, - } - } + manage_directories => $manage_directories, + managed_directories => "$documentroot/wp-content", + manage_config => $manage_config, + config_webwriteable => $config_webwriteable, + config_file => 'wp-config.php', } } @@ -452,93 +375,54 @@ define apache::vhost::php::simplemachine( $config_webwriteable = false, $manage_directories = true ){ - apache::vhost::phpdirs{"${name}": - ensure => $ensure, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, - documentroot_owner => $documentroot_owner, - documentroot_group => $documentroot_group, - documentroot_mode => $documentroot_mode, - run_mode => $run_mode, - run_uid => $run_uid, - } - - $real_path = $path ? { + $documentroot = $path ? { 'absent' => $operatingsystem ? { - openbsd => "/var/www/htdocs/${name}", - default => "/var/www/vhosts/${name}" + openbsd => "/var/www/htdocs/${name}/www", + default => "/var/www/vhosts/${name}/www" }, - default => "${path}" + default => "${path}/www" } - $documentroot = "${real_path}/www" - # create and/or put correct permissions - apache::vhost::webdir{$name: + # create vhost configuration file + apache::vhost::php::webapp{$name: ensure => $ensure, - path => $real_path, + domain => $domain, + domainalias => $domainalias, + path => $path, + template_mode => 'php_simplemachine', owner => $owner, group => $group, documentroot_owner => $documentroot_owner, documentroot_group => $documentroot_group, documentroot_mode => $documentroot_mode, - } - - if ($ensure != 'absent') and $manage_directories { - apache::file::rw{ "$documentroot/attachements": - owner => $documentroot_owner, - group => $documentroot_group, - } - } - - # create vhost configuration file - apache::vhost{$name: - ensure => $ensure, - path => $path, - template_mode => 'php_simplemachine', - vhost_mode => $vhost_mode, - vhost_source => $vhost_source, - vhost_destination => $vhost_destination, - domain => $domain, - domainalias => $domainalias, run_mode => $run_mode, run_uid => $run_uid, run_gid => $run_gid, allow_override => $allow_override, + php_upload_tmp_dir => $php_upload_tmp_dir, + php_session_save_path => $php_session_save_path, do_includes => $do_includes, options => $options, additional_options => $additional_options, default_charset => $default_charset, - php_upload_tmp_dir => $php_upload_tmp_dir, - php_session_save_path => $php_session_save_path, + mod_security => $mod_security, ssl_mode => $ssl_mode, + vhost_mode => $vhost_mode, + vhost_source => $vhost_source, + vhost_destination => $vhost_destination, htpasswd_file => $htpasswd_file, htpasswd_path => $htpasswd_path, - mod_security => $mod_security, - } - - if $manage_config { - apache::vhost::file::documentrootfile{"simplemachine_configurationfile_${name}": - documentroot => $documentroot, - filename => 'Settings.php', - thedomain => $name, - owner => $documentroot_owner, - group => $documentroot_group, - } - if $config_webwriteable { - Apache::Vhost::File::Documentrootfile["simplemachine_configurationfile_${name}"]{ - mode => 0660, - } - } else { - Apache::Vhost::File::Documentrootfile["simplemachine_configurationfile_${name}"]{ - mode => 0440, - } - } + manage_directories => $manage_directories, + managed_directories => "$documentroot/attachements", + manage_config => $manage_config, + config_webwriteable => $config_webwriteable, + config_file => 'Settings.php', } } -# run_mode: +# run_mode: # - normal: nothing special (*default*) -# - itk: apache is running with the itk module +# - itk: apache is running with the itk module # and run_uid and run_gid are used as vhost users # run_uid: the uid the vhost should run as with the itk module # run_gid: the gid the vhost should run as with the itk module @@ -571,7 +455,7 @@ define apache::vhost::modperl( ){ # cgi_bin path case $cgi_binpath { - 'absent': { + 'absent': { $real_path = $path ? { 'absent' => $operatingsystem ? { openbsd => "/var/www/htdocs/${name}", @@ -579,7 +463,7 @@ define apache::vhost::modperl( }, default => "${path}" } - $real_cgi_binpath = "${real_path}/cgi-bin" + $real_cgi_binpath = "${real_path}/cgi-bin" } default: { $real_cgi_binpath = $cgi_binpath } } @@ -626,3 +510,98 @@ define apache::vhost::modperl( mod_security => $mod_security, } } + +# run_mode: +# - normal: nothing special (*default*) +# - itk: apache is running with the itk module +# and run_uid and run_gid are used as vhost users +# run_uid: the uid the vhost should run as with the itk module +# run_gid: the gid the vhost should run as with the itk module +define apache::vhost::php::webapp( + $ensure = present, + $domain = 'absent', + $domainalias = 'absent', + $path = 'absent', + $template_mode, + $owner = root, + $group = 0, + $documentroot_owner = apache, + $documentroot_group = 0, + $documentroot_mode = 0750, + $run_mode = 'normal', + $run_uid = 'absent', + $run_gid = 'absent', + $allow_override = 'None', + $php_upload_tmp_dir = 'absent', + $php_session_save_path = 'absent', + $do_includes = false, + $options = 'absent', + $additional_options = 'absent', + $default_charset = 'absent', + $mod_security = true, + $ssl_mode = false, + $vhost_mode = 'template', + $vhost_source = 'absent', + $vhost_destination = 'absent', + $htpasswd_file = 'absent', + $htpasswd_path = 'absent', + $manage_config = true, + $config_file, + $config_webwriteable = false, + $manage_directories = true, + $managed_directories +){ + if ($ensure != 'absent') { + if $manage_directories { + apache::file::rw{ $managed_directories : + owner => $documentroot_owner, + group => $documentroot_group, + } + } + + if $manage_config { + apache::vhost::file::documentrootfile{"configurationfile_${name}": + documentroot => $documentroot, + filename => $config_file, + thedomain => $name, + owner => $documentroot_owner, + group => $documentroot_group, + } + if $config_webwriteable { + Apache::Vhost::File::Documentrootfile["configurationfile_${name}"]{ + mode => 0660, + } + } else { + Apache::Vhost::File::Documentrootfile["configurationfile_${name}"]{ + mode => 0440, + } + } + } + } + + # create vhost configuration file + apache::vhost::php{$name: + ensure => $ensure, + path => $path, + template_mode => $template_mode, + vhost_mode => $vhost_mode, + vhost_source => $vhost_source, + vhost_destination => $vhost_destination, + domain => $domain, + domainalias => $domainalias, + run_mode => $run_mode, + run_uid => $run_uid, + run_gid => $run_gid, + allow_override => $allow_override, + do_includes => $do_includes, + options => $options, + additional_options => $additional_options, + default_charset => $default_charset, + php_upload_tmp_dir => $php_upload_tmp_dir, + php_session_save_path => $php_session_save_path, + ssl_mode => $ssl_mode, + htpasswd_file => $htpasswd_file, + htpasswd_path => $htpasswd_path, + mod_security => $mod_security, + } +} |