summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah <micah@riseup.net>2015-10-09 19:58:43 +0000
committerMicah <micah@riseup.net>2015-10-09 19:58:43 +0000
commitb57be4fc99274f850e7fe818cd8bbd7e70dba705 (patch)
tree56830f9df598064751f9ea56da1be10459d6d9e7
parent240fa02355ed56838e5662d971fd693b79e94fee (diff)
parente092c5a13af891738fe563e8cc7d6813aad3e3ea (diff)
Merge branch 'fix_debian_moduledir' into 'master'
Fix module management on Debian, closes #7 Manage files and symlinks directly instead of using a2enmod/a2dismod, which are interactive utilities anyway. See merge request !3
-rw-r--r--manifests/debian/module.pp73
-rw-r--r--manifests/module.pp8
2 files changed, 45 insertions, 36 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,
+ }
+ }
+}
diff --git a/manifests/module.pp b/manifests/module.pp
index 42639bb..cbcf2d0 100644
--- a/manifests/module.pp
+++ b/manifests/module.pp
@@ -1,7 +1,8 @@
define apache::module (
$ensure = present, $source = '',
- $destination = '', $module = '', $package_name = 'absent' )
-{
+ $destination = '', $module = '', $package_name = 'absent',
+ $conf_content = '', $conf_source = '',
+) {
$real_module = $module ? {
'' => $name,
@@ -23,7 +24,8 @@ define apache::module (
}
'debian','ubuntu': {
apache::debian::module { "$real_module":
- ensure => $ensure, package_name => $package_name
+ ensure => $ensure, package_name => $package_name,
+ conf_content => $conf_content, conf_source => $conf_source
}
}
default: {