summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/config/file.pp51
-rw-r--r--manifests/config/global.pp2
-rw-r--r--manifests/config/include.pp2
3 files changed, 34 insertions, 21 deletions
diff --git a/manifests/config/file.pp b/manifests/config/file.pp
index 697b69a..ca741de 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',
@@ -29,28 +30,36 @@ define apache::config::file(
notify => Service[apache],
owner => root, group => 0, mode => 0644;
}
- 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,
- }
+
+ if ($ensure == 'link') and ($target != false) {
+ File["apache_${name}"] {
+ target => $target,
}
- default: {
- File["apache_${name}"]{
- content => $content,
+ }
+ else {
+ 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,
+ }
}
}
}
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,