From 430750fdeff3e58944fd20b84db8f2c70245053b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 2 Jun 2023 20:33:40 +0200 Subject: Add decomissioning option. --- manifests/init.pp | 66 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 2063849..ff09d9e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -32,6 +32,8 @@ # by the dav_ext module. # @param $dav_access # Default access rules for the dav methods. +# @param ensure +# Set to absent to remove configuration define webdav_server ( String $nginx_server, String $file_path, @@ -45,7 +47,8 @@ define webdav_server ( Hash[String,String] $dav_access = { 'user' => 'rw', 'group' => 'rw', - } + }, + Enum['present', 'absent'] $ensure = 'present', ) { # ensure_packages(['nginx-mainline-mod-dav-ext']) @@ -55,36 +58,51 @@ define webdav_server ( $modname = 'ngx_http_dav_ext_module' # This assumes that the directory exists, and that # nginx::include_modules_enabled => true - file { "/etc/nginx/modules-enabled/${modname}.conf": - ensure => file, - content => @("EOF") - load_module /usr/lib/nginx/modules/${modname}.so; - | EOF + $fname = "/etc/nginx/modules-enabled/${modname}.conf" + if $ensure == 'present' { + file { $fname: + ensure => file, + content => @("EOF") + load_module /usr/lib/nginx/modules/${modname}.so; + | EOF + } + } else { + file { $fname: + ensure => absent, + } } $lines = $users.map |$pair| { $pair.join(':') }.join("\n") - file { - default: - owner => $owner, - group => $group, - ; - $file_path: - ensure => 'directory', - mode => '0770', - recurse => 'false', - ; - $passwd_file: - ensure => 'file', - mode => '0660', - content => @("EOF") - # File managed by puppet - ${lines} - | EOF - ; + if $ensure == 'present' { + file { + default: + owner => $owner, + group => $group, + ; + $file_path: + ensure => 'directory', + mode => '0770', + recurse => 'false', + ; + $passwd_file: + ensure => 'file', + mode => '0660', + content => @("EOF") + # File managed by puppet + ${lines} + | EOF + ; + } + } else { + file { [$file_path, $passwd_file]: + ensure => absent, + } } + nginx::resource::location { $location: + ensure => $ensure, server => $nginx_server, location_alias => $file_path, ssl => true, -- cgit v1.2.3