summaryrefslogtreecommitdiff
path: root/manifests/debian/module.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/debian/module.pp')
-rw-r--r--manifests/debian/module.pp73
1 files changed, 40 insertions, 33 deletions
diff --git a/manifests/debian/module.pp b/manifests/debian/module.pp
index 252948f..ed25515 100644
--- a/manifests/debian/module.pp
+++ b/manifests/debian/module.pp
@@ -1,41 +1,48 @@
# install/remove apache module on debian/ubuntu systems
define apache::debian::module(
- $ensure = present,
- $package_name = 'absent'
+ $ensure = present,
+ $package_name = 'absent',
+ $conf_source = '',
+ $conf_content = '',
){
- $modules_dir = "${apache::debian::config_dir}/mods"
+ $modules_dir = "${apache::debian::config_dir}/mods"
- if ($package_name != 'absent') {
- package { $package_name:
- ensure => $ensure,
- notify => Service['apache'],
- require => [ File['modules_dir'], Package['apache'] ],
- }
+ if ($package_name != 'absent') {
+ package { $package_name:
+ ensure => $ensure,
+ notify => Service['apache'],
+ require => [ File['modules_dir'], Package['apache'] ],
}
+ $required_packages = [ 'apache', $package_name ]
+ }
+ else {
+ $required_packages = [ 'apache' ]
+ }
- case $ensure {
- '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 ]'",
- notify => Service['apache'],
- require => [
- File['modules_dir'],
- $package_name ? {
- 'absent' => Package['apache'],
- default => Package[['apache',$package_name]],
- }
- ],
- }
- }
+ file {
+ "${modules_dir}-enabled/${name}.load":
+ ensure => "../mods-available/${name}.load",
+ notify => Service['apache'],
+ require => [ File['modules_dir'], Package[$required_packages] ];
+ "${modules_dir}-enabled/${name}.conf":
+ ensure => "../mods-available/${name}.conf",
+ notify => Service['apache'],
+ require => [ File['modules_dir'], Package[$required_packages] ];
+ "${modules_dir}-available/${name}.conf":
+ ensure => file,
+ notify => Service['apache'],
+ require => [ File['modules_dir'], Package[$required_packages] ];
+ }
+
+ if $conf_content != '' {
+ File["${modules_dir}-available/${name}.conf"] {
+ content => $conf_content,
}
-}
+ }
+ elsif $conf_source != '' {
+ File["${modules_dir}-available/${name}.conf"] {
+ source => $conf_source,
+ }
+ }
+}