From 1cf84e2ef338dc77de2c208fd40fbef743f4a7c7 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Thu, 14 May 2015 15:10:31 -0400 Subject: Fix module management on Debian, closes #7 Manage files and symlinks directly instead of using a2enmod/a2dismod, which are interactive utilities anyway. --- manifests/debian/module.pp | 57 ++++++++++++++++++++++++++-------------------- manifests/module.pp | 8 ++++--- 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/manifests/debian/module.pp b/manifests/debian/module.pp index 252948f..fc872b7 100644 --- a/manifests/debian/module.pp +++ b/manifests/debian/module.pp @@ -1,7 +1,9 @@ # install/remove apache module on debian/ubuntu systems define apache::debian::module( $ensure = present, - $package_name = 'absent' + $package_name = 'absent', + $conf_source = '', + $conf_content = '', ){ $modules_dir = "${apache::debian::config_dir}/mods" @@ -11,31 +13,36 @@ define apache::debian::module( 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: { -- cgit v1.2.3 From e092c5a13af891738fe563e8cc7d6813aad3e3ea Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Thu, 14 May 2015 15:14:46 -0400 Subject: Lint manifests/debian/module.pp --- manifests/debian/module.pp | 74 +++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/manifests/debian/module.pp b/manifests/debian/module.pp index fc872b7..ed25515 100644 --- a/manifests/debian/module.pp +++ b/manifests/debian/module.pp @@ -1,48 +1,48 @@ # install/remove apache module on debian/ubuntu systems define apache::debian::module( - $ensure = present, - $package_name = 'absent', - $conf_source = '', - $conf_content = '', + $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'] ], - } - $required_packages = [ 'apache', $package_name ] - } - else { - $required_packages = [ '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' ] + } - 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] ]; - } + 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, - } + if $conf_content != '' { + File["${modules_dir}-available/${name}.conf"] { + content => $conf_content, } - elsif $conf_source != '' { - File["${modules_dir}-available/${name}.conf"] { - source => $conf_source, - } + } + elsif $conf_source != '' { + File["${modules_dir}-available/${name}.conf"] { + source => $conf_source, } + } } -- cgit v1.2.3