diff options
Diffstat (limited to 'manifests/debian')
-rw-r--r-- | manifests/debian/module.pp | 73 |
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, + } + } +} |