summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/base.pp10
-rw-r--r--manifests/config/file.pp28
-rw-r--r--manifests/config/global.pp2
-rw-r--r--manifests/config/include.pp2
-rw-r--r--manifests/debian/module.pp18
-rw-r--r--manifests/init.pp3
-rw-r--r--manifests/module.pp33
-rw-r--r--manifests/ssl/base.pp5
-rw-r--r--manifests/ssl/debian.pp9
-rw-r--r--manifests/vhost.pp2
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.") }
}
-
}
-