diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/base.pp | 10 | ||||
-rw-r--r-- | manifests/config/file.pp | 28 | ||||
-rw-r--r-- | manifests/config/global.pp | 2 | ||||
-rw-r--r-- | manifests/config/include.pp | 2 | ||||
-rw-r--r-- | manifests/debian/module.pp | 18 | ||||
-rw-r--r-- | manifests/init.pp | 3 | ||||
-rw-r--r-- | manifests/module.pp | 33 | ||||
-rw-r--r-- | manifests/ssl/base.pp | 5 | ||||
-rw-r--r-- | manifests/ssl/debian.pp | 9 | ||||
-rw-r--r-- | manifests/vhost.pp | 2 |
10 files changed, 86 insertions, 26 deletions
diff --git a/manifests/base.pp b/manifests/base.pp index 64a9d17..35fc42e 100644 --- a/manifests/base.pp +++ b/manifests/base.pp @@ -48,13 +48,15 @@ class apache::base { require => File['vhosts_dir','config_dir','include_dir','modules_dir','htpasswd_dir','web_dir','default_apache_index'] } + apache::config::include{ 'defaults.inc': } + apache::config::global{ 'git.conf': } + if !$apache::no_default_site { + apache::vhost::file { '0-default': } + } + service{'apache': ensure => running, name => 'apache2', enable => true, } - - apache::config::include{ 'defaults.inc': } - apache::config::global{ 'git.conf': } - apache::vhost::file { '0-default': } } diff --git a/manifests/config/file.pp b/manifests/config/file.pp index 76328b5..308da68 100644 --- a/manifests/config/file.pp +++ b/manifests/config/file.pp @@ -2,6 +2,7 @@ # by default we assume it's a global configuration file define apache::config::file( $ensure = present, + $target = false, $type = 'global', $source = 'absent', $content = 'absent', @@ -50,12 +51,35 @@ define apache::config::file( } } default: { - File["apache_${name}"]{ - content => $content, + case $content { + 'absent': { + $real_source = $source ? { + 'absent' => [ + "puppet://${server}/modules/site-apache/${confdir}/${fqdn}/${name}", + "puppet://${server}/modules/site-apache/${confdir}/${apache_cluster_node}/${name}", + "puppet://${server}/modules/site-apache/${confdir}/${operatingsystem}.${lsbdistcodename}/${name}", + "puppet://${server}/modules/site-apache/${confdir}/${operatingsystem}/${name}", + "puppet://${server}/modules/site-apache/${confdir}/${name}", + "puppet://${server}/modules/apache/${confdir}/${operatingsystem}.${lsbdistcodename}/${name}", + "puppet://${server}/modules/apache/${confdir}/${operatingsystem}/${name}", + "puppet://${server}/modules/apache/${confdir}/${name}" + ], + default => $source, + } + File["apache_${name}"]{ + source => $real_source, + } + } + default: { + File["apache_${name}"]{ + content => $content, + } + } } } } } + case $::operatingsystem { openbsd: { info("no package dependency on ${::operatingsystem} for ${name}") } default: { diff --git a/manifests/config/global.pp b/manifests/config/global.pp index 5bb075b..8b0389b 100644 --- a/manifests/config/global.pp +++ b/manifests/config/global.pp @@ -2,12 +2,14 @@ # wrapper for apache::config::file define apache::config::global( $ensure = present, + $target = false, $source = 'absent', $content = 'absent', $destination = 'absent' ){ apache::config::file { "${name}": ensure => $ensure, + target => $target, type => 'global', source => $source, content => $content, diff --git a/manifests/config/include.pp b/manifests/config/include.pp index b58073f..4d676f0 100644 --- a/manifests/config/include.pp +++ b/manifests/config/include.pp @@ -1,12 +1,14 @@ # deploy apache configuration file (includes for vhosts) define apache::config::include( $ensure = present, + $target = false, $source = 'absent', $content = 'absent', $destination = 'absent' ){ apache::config::file { "${name}": ensure => $ensure, + target => $target, type => 'include', source => $source, content => $content, diff --git a/manifests/debian/module.pp b/manifests/debian/module.pp index 2c0f510..4c100fa 100644 --- a/manifests/debian/module.pp +++ b/manifests/debian/module.pp @@ -13,7 +13,15 @@ define apache::debian::module( } case $ensure { - 'present' : { + 'absent','purged': { + exec { "/usr/sbin/a2dismod ${name}": + onlyif => "/bin/sh -c '[ -L ${modules_dir}-enabled/${name}.load ] \\ + && [ ${modules_dir}-enabled/${name}.load -ef ${modules_dir}-available/${name}.load ]'", + notify => Service['apache'], + require => Package['apache'], + } + } + default : { exec { "/usr/sbin/a2enmod ${name}": unless => "/bin/sh -c '[ -L ${modules_dir}-enabled/${name}.load ] \\ && [ ${modules_dir}-enabled/${name}.load -ef ${modules_dir}-available/${name}.load ]'", @@ -24,14 +32,6 @@ define apache::debian::module( }, } } - 'absent': { - exec { "/usr/sbin/a2dismod ${name}": - onlyif => "/bin/sh -c '[ -L ${modules_dir}-enabled/${name}.load ] \\ - && [ ${modules_dir}-enabled/${name}.load -ef ${modules_dir}-available/${name}.load ]'", - notify => Service['apache'], - require => Package['apache'], - } - } } } diff --git a/manifests/init.pp b/manifests/init.pp index 612149d..574c212 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -16,7 +16,8 @@ class apache( $cluster_node = '', $manage_shorewall = false, - $manage_munin = false + $manage_munin = false, + $no_default_site = false ) { case $::operatingsystem { centos: { include apache::centos } diff --git a/manifests/module.pp b/manifests/module.pp new file mode 100644 index 0000000..42639bb --- /dev/null +++ b/manifests/module.pp @@ -0,0 +1,33 @@ +define apache::module ( + $ensure = present, $source = '', + $destination = '', $module = '', $package_name = 'absent' ) +{ + + $real_module = $module ? { + '' => $name, + default => $module, + } + + case $operatingsystem { + 'centos': { + apache::centos::module { "$real_module": + ensure => $ensure, source => $source, + destination => $destination + } + } + 'gentoo': { + apache::gentoo::module { "$real_module": + ensure => $ensure, source => $source, + destination => $destination + } + } + 'debian','ubuntu': { + apache::debian::module { "$real_module": + ensure => $ensure, package_name => $package_name + } + } + default: { + err('Your operating system does not have a module deployment mechanism defined') + } + } +} diff --git a/manifests/ssl/base.pp b/manifests/ssl/base.pp index 4aabb40..ff9baa5 100644 --- a/manifests/ssl/base.pp +++ b/manifests/ssl/base.pp @@ -1,4 +1,7 @@ class apache::ssl::base { - ::apache::config::include{ 'ssl_defaults.inc': } + ::apache::config::include{ 'ssl_defaults.inc': } + + if !$apache_no_default_site { ::apache::vhost::file{ '0-default_ssl': } + } } diff --git a/manifests/ssl/debian.pp b/manifests/ssl/debian.pp index 10b1631..99dfe36 100644 --- a/manifests/ssl/debian.pp +++ b/manifests/ssl/debian.pp @@ -1,9 +1,4 @@ class apache::ssl::debian inherits apache::ssl::base { - line { 'apache_debian_ssl_port': - file => "${apache::debian::config_dir}/ports.conf", - line => "Listen 443", - ensure => present, - require => Package['apache'], - notify => Service['apache'], - } + apache::debian::module { 'ssl': ensure => present } + apache::config::global { 'ssl.conf': } } diff --git a/manifests/vhost.pp b/manifests/vhost.pp index 90af00d..dcb26a2 100644 --- a/manifests/vhost.pp +++ b/manifests/vhost.pp @@ -119,6 +119,4 @@ define apache::vhost( } default: { fail("no such vhost_mode: $vhost_mode defined for $name.") } } - } - |